Cet article explique comment nous avons mis en œuvre un système de surveillance et de gestion basé sur la plateforme Amazon WEB Services (AWS). Une armoire de communication ressemblant à une petite «Smart House» est considérée comme un objet de contrôle. À l'intérieur d' une telle armoire peuvent être installés des équipements de communication cellulaires ou fixes, le WiFi de la ville, la vidéosurveillance, le contrôle de l'éclairage, etc., ainsi que des dispositifs d'alimentation et de climatisation. Utilisation d'un contrôleur de
Tâche
Considérons la création d'un système à deux niveaux, dont le schéma structurel est présenté ci-dessous.
Au niveau inférieur, des contrôleurs avec des capteurs, des actionneurs et des appareils numériques doivent être utilisés.
Fonctions système de niveau inférieur et exigences du contrôleur
Les fonctions | Exigences du contrĂ´leur |
Alimentation secteur ou alimentation de secours CC | Alimentation pour 220VAC, ou 18..72VDC
(pour les armoires avec un système d'alimentation de secours) |
Communication avec le système de niveau supérieur | Port Ethernet et / ou module 2G / LTE Prend en charge les protocoles: MQTT / TLS, WEB, interface de ligne de commande (CLI), SNMP v.1-3, Syslog, autorisation Radius. |
, , | RS485, RS232, CAN, USB, Ethernet . |
- : , , , , .
, |
- DHT , ; 0..20 , NAMUR. ;1-Wire Maxim Integrated. |
, , ( ) | U = 230, Imax > 5A( ) |
- IoT ,
- ,
- B2B , B2C « »,
- ,
- ;
- WEB ,
- ,
- .
Aujourd'hui, plus de 600 plateformes IoT ont été développées dans le monde et ce nombre ne cesse de croître . Dans le même temps , la plate-forme Amazon WEB Services (AWS) était la plus populaire parmi les développeurs en 2019. La position dominante d'AWS a déterminé notre choix de cette plate-forme comme base de notre système ST-Eye. La décision a également été influencée par un soutien technique rapide et la disponibilité d'une grande quantité d'informations de référence. Les membres d'AWS ont partagé les meilleures pratiques et ont aidé à choisir les technologies les plus efficaces.
Voici l'architecture et la description du système ST-Eye.
Architecture du système ST-Eye IoT sur la plate-forme AWS
Niveau de communication avec les contrĂ´leurs
Les contrôleurs d'objets se connectent au service AWS IoT-Core à l'aide de TLS. L'adresse du serveur utilisée pour la connexion contient un identifiant unique pour le compte. L'authentification est effectuée à l'aide du protocole x509. Chaque appareil utilise son propre certificat unique. En plus de son propre certificat, le contrôleur dispose d'un certificat CA pour l'authentification du serveur. La création et la distribution des certificats se font via la plateforme AWS. Après une authentification réussie, le protocole MQTT est utilisé, qui est devenu le standard de facto dans l'IoT... Le protocole MQTT est basé sur l'interaction des clients les uns avec les autres selon le principe pub / sub. Les clients publient des messages sur des canaux (sujets) et s'abonnent aux sujets existants d'autres clients. Ceci est fourni par un service intermédiaire - un courtier, qui stocke une liste de sujets et des listes d'abonnés pour chacun des sujets disponibles. Le service IoT-Core fournit plusieurs rubriques standard pour l'abonnement et la publication, vous pouvez créer d'autres rubriques. Ils seront disponibles dans la région et le compte AWS. Par exemple, les contrôleurs s'abonnent à des rubriques de contrôle direct et l'application WEB leur publie des commandes. En raison des faibles besoins en ressources de MQTT, le temps de réponse du contrôleur à la commande de l'opérateur est minime (dans notre système - pas plus de 0,5 seconde lors de l'utilisation d'une connexion Ethernet de bureau). IoT-Core est un service géré, respectivement,la redondance et la mise à l'échelle sont effectuées sans intervention de l'utilisateur.
L'une des fonctions clés du service IoT-Core est l'image virtuelle fantôme de l'appareil. Il vous permet d'obtenir le dernier état connu de l'appareil et de l'afficher même lorsque l'appareil n'est pas disponible sur le réseau. Cette fonction est indispensable pour travailler avec des appareils GSM ou des appareils alimentés par batterie, car ils peuvent être hors ligne pendant une longue période. Shadow est un objet JSON contenant deux champs principaux: signalé et désiré. Chaque champ contient des paires clé-valeur correspondant aux paramètres de sortie et / ou de périphérique. Lorsque les paramètres de périphérique souhaités sont modifiés, le champ delta est généré contenant la différence entre les champs souhaités et rapportés. L'appareil s'abonne au sujet $ aws / things / thingName / shadow / update / deltaet met à jour son état interne s'il y a des paramètres dans le champ delta. Shadow contient la date et l'heure de la dernière mise à jour. Ainsi, l'application de niveau supérieur reçoit des informations sur la durée depuis laquelle le contrôleur a contacté la dernière fois.
Le service IoT-Core fournit également un système flexible de règles pour interagir avec d'autres services. Dans notre application, les règles IoT-Core sont utilisées, par exemple, pour envoyer des notifications et activer des appareils. Les notifications sont configurées sur le poste de travail de l'administrateur. Notifications SMS disponibles, e-mail, push.
Le processus de mise à jour du logiciel dans les appareils IoT a des exigences strictes. L'authenticité et la compatibilité de la source de mise à jour et du conteneur avec le nouveau micrologiciel avec le contrôleur doivent être vérifiées. Sinon, le contrôleur peut se transformer en "brique" après la mise à jour. Le mécanisme de tâche est utilisé pour effectuer un micrologiciel en direct (FOTA) ou une configuration de périphérique. Le contrôleur reçoit un ensemble de commandes et de données supplémentaires via une rubrique spéciale, puis exécute les commandes de manière séquentielle. Par exemple, il télécharge le micrologiciel à partir du stockage cloud AWS S3 à l'aide du lien et vérifie sa signature.
Couche de traitement des données
Pour traiter les données provenant du service IoT-Core vers AWS, le sous-système IoT-Analytics est utilisé. Le bloc de canal , à l'aide de règles de type SQL, vous permet de sélectionner une source de données, par exemple, des champs de message individuels provenant d'appareils. Les données brutes arrivant via le canal peuvent être stockées dans la mémoire interne du service ou dans S3. Le composant de pipeline vous permet de prétraiter, de filtrer les données ou de les compléter. Par exemple, sur la base de certaines données, vous pouvez faire une demande à une base de données (DB) ou à un service externe et ajouter des informations à partir de la réponse. Les données prétraitées sont enregistrées dans la base de données de la banque de données . Cette base de données est de type base de données chronologique ( TSDB) et est conçu pour fonctionner avec des données provenant de capteurs à référence temporelle. En utilisant ces données, il est possible de suivre l'évolution de chaque paramètre du système pendant toute la période d'observation. Contrairement à d'autres types de bases de données, TSDB fournit des outils tels que des politiques de rétention / suppression de données, un planificateur de requêtes et des fonctions d'agrégation flexibles.
Les échantillons de données sont ensuite appliqués aux enregistrements du magasin de données ( jeux de données). Ils peuvent être mis en œuvre sous la forme de requêtes SQL et exécutés par le planificateur dans le sous-système IoT-Analytics et, si une logique plus complexe est requise, dans le conteneur Docker. Les résultats du post-traitement sont stockés dans le stockage du service et sont disponibles pendant 90 jours à partir de l'application WEB et du service de visualisation des données (Quicksight). Après la date d'expiration, les données sont transférées vers une chambre froide sur S3 à l'aide d'une fonction Lambda.
Niveau de visualisation (application WEB)
Au niveau supérieur du système, un portail WEB est implémenté, représenté par plusieurs postes de travail automatisés (AWS), en particulier un administrateur, un analyste / gestionnaire et un répartiteur.
Considérez le poste de travail du répartiteur. Sa fenêtre principale ressemble à un tableau, qui résume les données sur des groupes d'objets.
Chaque objet peut être dans l'un des cinq états suivants: normal, problème / alarme, violation, mode service et pas de communication. Chaque cellule du tableau vous permet de naviguer vers une liste d'objets pertinents avec des informations plus détaillées:
En cliquant sur l'appareil correspondant dans la liste, vous pouvez ouvrir la page pour sa surveillance et son contrĂ´le.
L'application WEB utilise le protocole TLS comme moyen de transport pour se connecter à AWS. L'authentification fonctionne sur l'algorithme Signature V4 et utilise le microservice Cognito. Le code d'application est hébergé dans le stockage S3. Le portail utilise le mécanisme d'intégration continue. Les nouvelles versions sont automatiquement testées et, si elles réussissent, sont appliquées à la plateforme. Le service Beanstalk est utilisé pour le contrôle de version et le déploiement automatique.
Substitution d'importations
La législation russe pour les applications gouvernementales (B2G) a des restrictions sur l'utilisation de serveurs en dehors de la Russie, par exemple 187-. Le service cloud russe le plus avancé est Yandex.Cloud, dont fait partie la plateforme IoT. Au début des travaux sur notre système, certains des composants disponibles dans AWS n'étaient pas encore disponibles auprès de Yandex. En particulier, pour créer une solution complète, vous aviez besoin de votre propre backend pour interagir avec l'application WEB et le courtier MQTT. D'autre part, Yandex a déjà proposé des outils d'analyse et de base de données riches, des outils de déploiement d'applications et un stockage en nuage (Object Storage). Le service Datalens pour la visualisation des données (analogue à AWS Quicksight) est déjà disponible, ainsi que la base de données ClickHouse, qui est parfaite pour stocker des données de séries chronologiques.
Yandex apporte une grande contribution au développement de l'Open Source dans le monde, et tente également de rendre ses produits compatibles avec les solutions existantes. Ainsi, par exemple, vous pouvez travailler avec Object Storage Yandex à l'aide de l'utilitaire aws-cli à l'aide de commandes pour AWS S3.
SĂ©lection des contrĂ´leurs d'objets
Le marché des contrôleurs d'objets est assez vaste. Le nombre d'options et de fabricants parmi lesquels choisir va à des dizaines et les modèles à des centaines. En règle générale, lors de la création de systèmes de contrôle, des contrôleurs sont utilisés avec lesquels ils savent déjà travailler ou que le fournisseur du système de niveau supérieur recommande. Cet état de fait est le seul possible en utilisant des systèmes de haut niveau développés pour certains équipements ( plates-formes logicielles spécifiques au matériel ) et en travaillant avec des contrôleurs utilisant des protocoles d'échange fermés.
Lorsque vous utilisez des systèmes de haut niveau fonctionnant sur des protocoles ouverts (les plates-formes Cloud IoT sont justes), vous pouvez économiser de l'argent en choisissant l'équipement optimal pour les exigences du projet. Un exemple de ces exigences est donné ci-dessus dans le paragraphe «Fonctions système de bas niveau et exigences du contrôleur».
Pour les solutions B2G conformes à PP-878, il est préférable de se concentrer sur les contrôleurs russes. Pour certaines régions, il devient de plus en plus important d'utiliser des équipements basés sur la base d'éléments russes.
Tout le monde ne connaît pas la possibilité de concevoir des contrôleurs personnalisés. Cela peut être rentable grâce à l'utilisation d'une base d'éléments bon marché et à la mise en œuvre du nombre requis de blocs fonctionnels pour un projet spécifique. De plus, le complexe d'équipements de l'installation sera composé d'un nombre minimum d'appareils (parfois un seul), ce qui signifie qu'il y aura moins de travaux d'assemblage, d'installation et de mise en service.
Le développement personnalisé du contrôleur peut être rentable en raison du coût inférieur de l'équipement, de la réduction des travaux d'installation et de mise en service.
Pour la tâche décrite, nous avons utilisé le contrôleur GiC(Generic Internet Controller) propriétaire. Il est équipé du nombre requis d'interfaces réseau, de ports d'E / S, d'une alimentation intégrée, prend en charge les protocoles MQTT, WEB, SNMP, ModBUS et peut interroger divers appareils numériques: compteurs, systèmes d'alimentation, climatiseurs (la liste ne cesse de s'allonger).
Conclusion
Ci-dessus, nous avons décrit comment notre système de gestion est conçu sur AWS. Les technologies cloud facilitent ce type de développement, mais on ne peut toujours pas dire que ce soit une question de quelques clics. Si votre tâche est similaire à la nôtre, veuillez nous contacter.
Dans les plateformes IoT, il vaut la peine d'attendre l'apparition de modèles préconfigurés pour les systèmes Smart Home, ASKUE, NMS, ACS, etc. Cela simplifiera davantage la création de solutions complètes, abaissera le seuil d'entrée dans cette entreprise et attirera une audience supplémentaire vers les technologies cloud.
Les plates-formes IoT utilisent des protocoles d'échange ouverts avec les contrôleurs. Cela donne aux utilisateurs la liberté de choisir l'équipement de leur site. Il existe une possibilité de développement personnalisé de contrôleurs (notre spécialisation ). L'utilisation de contrôleurs personnalisés peut réduire le budget du projet.
Pour les projets gouvernementaux et les projets liés aux infrastructures d'information critiques, il est préférable de se concentrer sur les systèmes et l'équipement des installations russes, car le marché de ces systèmes a déjà été formé et se développe.