Il existe de nombreuses solutions IoT SCADA pour les usines et autres besoins de fabrication. Pourtant, il y a des cas (et beaucoup) où vous devez développer votre propre système SCADA pour couvrir les besoins spécifiques de votre projet.
Article original -
Bibliothèque de tableaux de bord IoT: visualisez SCADA en un clin d'œil [Bibliothèque IoT gratuite]Nous utilisons souvent un cadre Qt génial pour implémenter des solutions IoT complexes. Pour un tas de projets SCADA et de type SCADA, nous avons rencontré le besoin d'un outil rapide pour développer des tableaux de bord d'appareils. C'est pourquoi nous avons développé une bibliothèque Qt non officielle super légère. La bibliothèque est open source, personnalisable et gratuite sous licence MIT. Nous partageons également un petit ensemble de widgets développés.
Profitez et utilisez Qt;)
LISEZ -
MOI : Cette bibliothèque est créée pour les projets de bureau, mobiles et intégrés développés sur Qt. Pour l'utiliser, vous devez connaître Qt / C ++ et QML.
Présentation de QSimpleScada
Laissez-nous vous présenter une bibliothèque astucieuse pour vos projets IoT. Nous avons créé QSimpleScada pour accélérer et simplifier la visualisation de toutes les données, afin que nous (et vous) puissions nous concentrer sur le développement d'algorithmes d'automatisation qui vibrent.
Il a été principalement créé pour accélérer et, par conséquent, réduire le
coût de la solution IoT.Qu'est-ce que QSimpleScada?
C'est une bibliothèque qui gère complètement la connexion et l'édition des widgets. En utilisant QSimpleScada, vous pouvez facilement créer une visualisation des données IoT à l'aide de votre souris et d'un petit code. Une fois que vous êtes satisfait de la mise en page, enregistrez le fichier .xml généré et utilisez-le dans votre projet.
La bibliothèque est créée avec Qt / C ++ et le widget de base est basé sur C ++. Il existe une interface pour QML, vous pouvez donc créer indépendamment des widgets individuels sur QML (comme lors de la création d'interfaces utilisateur QML classiques) et les télécharger sur votre application à tout moment.
Pourquoi en ai-je besoin?
Eh bien, vous le faites si vous êtes un développeur Qt ou une entreprise et:
- Ayez des délais stricts et des évaluations de données complexes pour votre projet
- Besoin de prototyper souvent des projets IoT mobiles / intégrés / de bureau
- Besoin d'un outil unique pour divers projets Qt
- Je ne veux pas / je n'ai pas le temps / les ressources pour développer des tableaux de bord à partir de zéro
Si aucun des éléments ci-dessus ne vous concerne, vous ne le faites pas.
Pourquoi créer des tableaux de bord IoT?
Eh bien, cela peut sembler un peu redondant, alors n'hésitez pas à ignorer cette section si cette question vous semble évidente. Sinon, il y a plusieurs raisons de visualiser les informations que vous avez obtenues de l'Internet des objets.
C'est le composant HMI (Human-Machine Interface) de base pour littéralement tout IoT ou système de contrôle. Bien mieux qu'une approche textuelle si vous voulez que les utilisateurs voient des données pertinentes en déplacement. Cela s'applique aux projets SCADA classiques et SCADA-ish.
Par exemple, sur notre UBreez, nous avons utilisé QSimpleScada pour visualiser les relevés d'air. Comparez l'affichage vous-même. Alors, qu'est-ce qui a l'air plus net et plus clair même avec de nombreux widgets de capteur?

À l'aide de tableaux de bord, vous pouvez immédiatement mettre en évidence tout écart par rapport aux normes, localiser où un dysfonctionnement se produit, suivre l'emplacement en direct, voir les tendances et toute autre information précieuse. Il fait gagner du temps aux utilisateurs sur la compréhension des données que le système SCADA collecte, et ils peuvent réagir et décider comment agir plus rapidement.
Utilisation de QSimpleScada
Voici les étapes pour intégrer la version 0.9.x de QSimpleScada dans votre projet:
Étape 1: installer
Via le gestionnaire de packages:Si vous construisez des solutions avisées à l'aide de Qt, vous utilisez probablement le gestionnaire de paquets qpm, donc aucune discussion supplémentaire n'est requise. Si vous ne le faites pas (encore), téléchargez-le ici
https://www.qpm.ioPour installer via qpm, exécutez:
qpm
install com.indeema.qsimplescada
Et ajoutez:
include (../vendor/vendor.pri)
Vers le fichier * .pro de votre projet.
En bonus, essayez notre preset de widgets:
qpm
install com.indeema.eeiot
De github:Pour cloner le référentiel, accédez à:
https://github.com/IndeemaSoftware/QSimpleScadaPour ajouter également des widgets préconfigurés, clonez:
https://github.com/IndeemaSoftware/EEIoTEt ajoutez:
include($$PWD/com/indeema/QSimpleScada/com_indeema_QSimpleScada.pri)
include($$PWD/com/indeema/eeiot/com_indeema_eeiot.pri)
Vers le fichier * .pro.
Utilisation de la version binaire:https://github.com/IndeemaSoftware/QSimpleScada/releasesÉtape 2: configurer
Une fois que vous avez téléchargé et installé la bibliothèque sur votre projet:
1. Créez un nouvel appareil qui va être représenté sur votre tableau de bord. Donnez-lui un nom et une adresse IP:
QScadaDeviceInfo *lDeviceInfo = new QScadaDeviceInfo();
lDeviceInfo->setName("Test Device");
lDeviceInfo->setIp(QHostAddress("127.0.0.1"));
2. Créez une classe de contrôleur qui gérera tous les périphériques ultérieurs et toutes les cartes connectées aux périphériques:
QScadaBoardController *</code><code>mController</code><code> = new QScadaBoardController(); mController->appendDevice(lDeviceInfo)
3. Appelez la méthode initBoardForDeviceIp pour créer une nouvelle carte pour le périphérique déjà ajouté. S'il n'y a aucun périphérique sur IP spécifique, la carte ne sera pas créée.
mController->initBoardForDeviceIp("127.0.0.1");
4. Définissez le mode modifiable de votre contrôleur pour permettre la création, le déplacement et le redimensionnement des contrôleurs.
mController->setEditingMode(true);
Si le mode d'édition est activé, la fenêtre modale comportera un fond pointillé:

5. Ajoutez une disposition de grille sur votre widget, puis ajoutez votre contrôleur à ce widget:
QGridLayout *
mainLayout
= new QGridLayout(ui->centralWidget);
mainLayout->addWidget(
mController
);
Travailler avec des widgetsNous avons également développé une bibliothèque EEIoT avec un ensemble de widgets préconfigurés. Vous pouvez le télécharger sur
https://github.com/IndeemaSoftware/EEIoT et l'essayer en tant que début.
Pour utiliser une collection de widgets:
Appelez la fonction avec url aux ressources QML pour indiquer au contrôleur l'emplacement des widgets QML:
QMLConfig::instance.appendQMLPath(:/com/indeema/eeiot/EEIoT/);
Le singletone QMLConfig est situé dans «qscadaconfig.h»
Ici, nous utilisons EEIoT en tant que groupe pour tous les widgets à l'intérieur. Vous pouvez configurer un ou plusieurs groupes.
Notez que si vous créez deux dossiers avec le même nom dans des emplacements différents, le second (créé plus tard) effacera le premier.
Vous pouvez accéder à toutes les propriétés dynamiques qui forment QML (mentionnées dans une liste de métadonnées) à partir de QSimpleScada, afin de pouvoir créer vos propres tableaux de bord complexes rapidement et facilement.
Étape 3: utiliser
Vous pouvez utiliser notre simple éditeur pour créer votre premier tableau de bord
https://github.com/IndeemaSoftware/QSimpleScadaSampleEnsuite, configurez QScadaBoardController dans votre application sans aucun appareil ni carte et appelez:
mController->openProject(QString <file>)
où <fichier> est un chemin complet vers votre fichier de projet (* .irp)
Par exemple:
mController->openProject(QString :/com/indeema/eeiot/EEIoT/)
Voir QSimpleScada en action
Visitez notre profil GitHub pour explorer des applications simples qui montrent le travail de la bibliothèque QSimpleScada:
Il s'agit d'une application simple qui visualise les données météorologiques de 3 widgets:
- La température
- Humidité
- La pression
QSimpleScada et EEIoT sont utilisés pour gérer l'affichage et la connectivité du tableau de bord. Toutes les données météo en temps réel que nous recevons de l'API Openweathermap. Vous pouvez télécharger le code sur
https://github.com/IndeemaSoftware/QSimpleScadaSamplePour voir les lectures actuelles de votre ville:
Entrez votre ville suivie de la virgule et du code de pays comme suit:
Kiev, uaet cliquez sur le bouton
Envoyer .
Cela mettra à jour la température, l'humidité et la pression pour votre région.

Un autre exemple de la façon d'utiliser QSimpleScada est l'application Builder qui nous donne la possibilité de créer nos tableaux de bord et de les enregistrer dans des fichiers * .irp. Un éditeur de tableau de bord simple qui utilise QSimpleScada pour créer le tableau de bord nécessaire avec les widgets EEIoT et enregistrer la configuration du tableau de bord pour une utilisation ultérieure. Dans l'exemple, nous avons créé un tableau de bord utilisé dans l'application Météo mentionnée ci-dessus.
Le code est également disponible sur
https://github.com/IndeemaSoftware/QSimpleScadaSamplePlus d'outils pour vous
Nous constatons que l'introduction de l'Internet des objets a un impact sur chaque industrie et redéfinit notre approche de l'utilisation de la technologie. Nous avons abordé ce sujet en détail dans
6 applications prometteuses pour l' article
IoT industriel , et c'est avec plaisir que nous faisons progresser l'automatisation qu'apporte la 4e révolution industrielle.
Compréhension et contexte
Si tous les projets étaient figés, le monde du développement serait une utopie. Pourtant, plus l'objectif initial et les exigences sont clairs et mieux toute l'équipe les comprend, plus le projet est rationalisé. Pour approfondir vos connaissances sur les spécificités et les pièges typiques qui suivent les projets IoT, lisez:
Spoiler : trouvez les modèles de documentation liés au projet, afin de pouvoir communiquer les exigences et les transformer en spécifications exploitables avec moins d'effort.
Estimer le coût et le temps
Il est presque impossible de bien comprendre le temps et les ressources dont vous aurez besoin. Donc, pour vous avant-bras avec une idée générale de la complexité (calculée en temps et en coût), voici une calculatrice spécifique à l'IoT:

Outils de développement
Partageant notre boîte à outils pour un développement plus rapide et plus efficace du projet IoT, nous téléchargeons nos projets open source liés à Qt et IoT sur
https://github.com/IndeemaSoftware avec Q au début des titres de repo. Vous pouvez également y trouver un tas d'outils pour le développement de React, Android et iOS.

Récapitulatif
Chez Indeema, nous sommes habitués à des délais serrés et à des projets difficiles. Et, déterminés à créer des solutions avisées, nous avons progressivement réalisé que:
- La compréhension vient en premier.
Soyez curieux. Clarifiez chaque exigence, quelle que soit votre évidence. Assurez-vous de bien comprendre. Parce que vous pouvez concevoir une architecture logique et évolutive, écrire du code propre et impressionnant, sans pour autant transmettre le résultat souhaité. Le diable est dans les détails (alors assurez-vous de ne laisser aucun détail inaperçu).
- Réinventer le vélo est inutile.
Chaque projet comporte des défis uniques et nécessite des réflexions originales. Et il n'est pas nécessaire de tout développer à partir de zéro. Pourquoi? Parce que vous ne perdrez que le temps dont vous disposez pour trouver et implémenter des fonctionnalités, des modules et une architecture vraiment difficiles.
- La qualité y est une norme .
Soyez responsable de votre travail. Vous vous engagez à faire l'avenir. Si vous êtes développeur, testez votre code par rapport aux spécifications, aux meilleures pratiques, au bon sens, à la stabilité du projet, etc. Et la même chose s'applique à tout autre rôle.
Merci d'avoir lu et j'espère que vous avez apprécié cet article. Abonnez-vous pour les mises à jour et faites-nous savoir ce qui vous intéresse.