Entwicklung eines Kommunikationsschrank-Überwachungssystems auf AWS

Im vorherigen Beitrag wurde ein Algorithmus zur Auswahl eines Steuerungssystems für verschiedene Aufgaben des "Internet der Dinge" vorgeschlagen. Für mittelgroße Lösungen erwies sich die Verwendung von Cloud-IoT-Plattformen als optimal.



In diesem Artikel erfahren Sie, wie wir ein Überwachungs- und Verwaltungssystem implementiert haben, das auf der Amazon WEB Services (AWS) -Plattform basiert. Ein Kommunikationsschrank, der einem kleinen „Smart House“ ähnelt, wird als Kontrollobjekt betrachtet. In einem solchen Schrank können zellulare oder feste Kommunikationsgeräte, Stadt-WLAN, Videoüberwachung, Lichtsteuerung usw. sowie Stromversorgungs- und Klimatisierungsgeräte installiert werden. Verwenden eines Smart-Home- Controllers Schrank, eine Reihe von Sensoren und ein System der obersten Ebene, kann der Bediener den Zustand der Ausrüstung, das Mikroklima sowie Sicherheit und Brandschutz überwachen. 





Aufgabe



Betrachten wir die Schaffung eines zweistufigen Systems, dessen Strukturdiagramm unten dargestellt ist.





Auf der unteren Ebene sollten Steuerungen mit Sensoren, Aktoren und digitalen Geräten verwendet werden.



Untergeordnete Systemfunktionen und Steuerungsanforderungen



Funktionen  Controller-Anforderungen
Netz- oder DC-Notstromversorgung Stromversorgung für 220VAC oder 18..72VDC

(für Schränke mit Notstromversorgung )
Kommunikation mit dem Top-Level-System Ethernet-Port und / oder 2G / LTE-Modul. Unterstützt Protokolle: MQTT / TLS, WEB, Befehlszeilenschnittstelle (CLI), SNMP v.1-3, Syslog, Radius-Autorisierung.
, , RS485, RS232, CAN, USB, Ethernet .
- : , , , , .



,
- DHT , ; 0..20 , NAMUR. ;1-Wire Maxim Integrated.
, , ( ) U = 230, Imax > 5A( )




  • IoT ,
  • ,
  • B2B , B2C « »,
  • ,
  • ;
  • WEB , 
  • ,
  • .




Heute wurden weltweit mehr als 600 IoT-Plattformen entwickelt, und diese Zahl wächst ständig . Gleichzeitig war die Amazon WEB Services (AWS) -Plattform 2019 bei Entwicklern am beliebtesten . Die beherrschende Stellung von AWS bestimmte unsere Wahl dieser Plattform als Grundlage für unser ST-Eye-System. Die Entscheidung wurde auch durch den schnellen technischen Support und die Verfügbarkeit einer großen Menge an Referenzinformationen beeinflusst. Die Mitarbeiter von AWS tauschten Best Practices aus und halfen bei der Auswahl der effektivsten Technologien.



Nachfolgend finden Sie die Architektur und Beschreibung des ST-Eye-Systems.



ST-Eye IoT-Systemarchitektur auf der AWS-Plattform





Kommunikationsebene mit Controllern



Objektcontroller stellen über TLS eine Verbindung zum AWS IoT-Core-Dienst her. Die für die Verbindung verwendete Serveradresse enthält eine eindeutige Kennung für das Konto. Die Authentifizierung erfolgt über das x509-Protokoll. Jedes Gerät verwendet ein eigenes Zertifikat. Zusätzlich zu seinem eigenen Zertifikat verfügt der Controller über ein CA-Zertifikat für die Serverauthentifizierung. Die Erstellung und Verteilung von Zertifikaten erfolgt über die AWS-Plattform. Nach erfolgreicher Authentifizierung wird das MQTT-Protokoll verwendet, das zum De-facto-Standard im IoT geworden ist... Das MQTT-Protokoll basiert auf der Interaktion von Clients untereinander auf Pub / Sub-Basis. Clients veröffentlichen Nachrichten in Kanälen (Themen) und abonnieren vorhandene Themen anderer Clients. Dies wird von einem Zwischendienst bereitgestellt - einem Broker, der eine Liste von Themen und eine Liste von Abonnenten für jedes der verfügbaren Themen speichert. Der IoT-Core-Dienst bietet verschiedene Standardthemen zum Abonnieren und Veröffentlichen. Sie können andere Themen erstellen. Sie sind in der AWS-Region und im Konto verfügbar. Beispielsweise abonnieren Controller Themen der direkten Steuerung, und die WEB-Anwendung veröffentlicht Befehle für sie. Aufgrund des geringen Ressourcenbedarfs von MQTT ist die Reaktionszeit des Controllers auf den Befehl des Bedieners minimal (in unserem System - nicht mehr als 0,5 Sekunden bei Verwendung einer Office-Ethernet-Verbindung). IoT-Core ist jeweils ein verwalteter DienstRedundanz und Skalierung werden ohne Benutzereingriff durchgeführt.



Eine der Schlüsselfunktionen des IoT-Core-Dienstes ist das virtuelle Schattenabbild des Geräts. Sie können den letzten bekannten Status des Geräts abrufen und anzeigen, auch wenn das Gerät nicht über das Netzwerk verfügbar ist. Diese Funktion ist für die Arbeit mit GSM-Geräten oder batteriebetriebenen Geräten unverzichtbar, da diese möglicherweise lange Zeit offline sind. Shadow ist ein JSON-Objekt, das zwei Hauptfelder enthält: gemeldet und gewünscht. Jedes Feld enthält Schlüssel-Wert-Paare, die den Ausgabe- und / oder Geräteparametern entsprechen. Wenn die gewünschten Geräteparameter geändert werden, wird das Delta-Feld generiert, das die Differenz zwischen dem gewünschten und dem gemeldeten Feld enthält. Das Gerät abonniert das Thema $ aws / things / thingName / shadow / update / deltaund aktualisiert seinen internen Status, wenn sich Parameter im Delta-Feld befinden. Shadow enthält Datum und Uhrzeit des letzten Updates. Auf diese Weise erhält die übergeordnete Anwendung Informationen darüber, wie lange es her ist, dass die Steuerung das letzte Mal Kontakt aufgenommen hat.



Der IoT-Core-Dienst bietet auch ein flexibles Regelsystem für die Interaktion mit anderen Diensten. In unserer Anwendung werden IoT-Core-Regeln verwendet, um beispielsweise Benachrichtigungen zu senden und Geräte zu aktivieren. Benachrichtigungen werden auf der Workstation des Administrators konfiguriert. Verfügbare SMS-Benachrichtigungen, E-Mail, Push.



Das Aktualisieren von Software in IoT-Geräten stellt strenge Anforderungen. Die Update-Quelle und der Container mit der neuen Firmware müssen auf Authentizität und Kompatibilität mit dem Controller überprüft werden. Andernfalls kann sich der Controller nach dem Update in einen "Baustein" verwandeln. Der Job-Mechanismus wird verwendet, um Firmware über Funk (FOTA) oder Gerätekonfiguration durchzuführen. Die Steuerung empfängt eine Reihe von Befehlen und zusätzlichen Daten über ein spezielles Thema und führt die Befehle dann nacheinander aus. Beispielsweise wird Firmware über einen Link vom AWS S3-Cloud-Speicher heruntergeladen und die Signatur überprüft.



Datenverarbeitungsschicht



Zur Verarbeitung von Daten aus dem IoT-Core-Service an AWS wird das IoT-Analytics-Subsystem verwendet. Mit dem Kanalblock können Sie mithilfe von SQL-ähnlichen Regeln eine Datenquelle auswählen, z. B. einzelne Nachrichtenfelder von Geräten. Die über den Kanal eintreffenden Rohdaten können im internen Speicher des Dienstes oder in S3 gespeichert werden. Mit der Pipeline- Komponente können Sie Daten vorverarbeiten, filtern oder ergänzen. Basierend auf einigen Daten können Sie beispielsweise eine Anforderung an eine Datenbank (DB) oder einen externen Dienst stellen und Informationen aus der Antwort hinzufügen. Die vorverarbeiteten Daten werden in der Datenspeicherdatenbank gespeichert . Diese Datenbank ist vom Zeitreihendatenbanktyp ( TSDB)) und wurde entwickelt, um mit Daten zu arbeiten, die von zeitbezogenen Sensoren stammen. Mit diesen Daten ist es möglich, die Änderung in jedem Parameter des Systems während des gesamten Beobachtungszeitraums zu verfolgen. Im Gegensatz zu anderen Datenbanktypen bietet TSDB Tools wie Richtlinien zum Aufbewahren / Löschen von Daten, einen Abfrageplaner und flexible Aggregationsfunktionen.



Datenproben werden anschließend auf Datensätze im Datenspeicher ( Datensätze) angewendet). Sie können in Form von SQL-Abfragen implementiert und vom Scheduler im IoT-Analytics-Subsystem und, falls komplexere Logik erforderlich ist, im Docker-Container ausgeführt werden. Nachbearbeitungsergebnisse werden im Service-Speicher gespeichert und sind 90 Tage lang über den WEB-Anwendungs- und Datenvisualisierungsdienst (Quicksight) verfügbar. Nach dem Ablaufdatum werden die Daten mit einer Lambda-Funktion in den Kühlraum von S3 übertragen.



Visualisierungsebene (WEB App)



Auf der obersten Ebene des Systems wird ein WEB-Portal implementiert, das durch mehrere automatisierte Workstations (AWS) dargestellt wird, insbesondere einen Administrator, Analysten / Manager und Dispatcher.



Betrachten Sie die Workstation des Dispatchers. Das Hauptfenster sieht aus wie eine Tabelle, in der Daten zu Objektgruppen zusammengefasst sind.





Jedes Objekt kann sich in einem von fünf Zuständen befinden: Normal, Fehler / Alarm, Verletzung, Servicemodus und keine Kommunikation. In jeder Zelle in der Tabelle können Sie zu einer Liste relevanter Objekte mit detaillierteren Informationen navigieren: 





Durch Klicken auf das entsprechende Gerät in der Liste können Sie die Seite zur Überwachung und Steuerung öffnen.



Die WEB-Anwendung verwendet das TLS-Protokoll als Transportmittel, um eine Verbindung zu AWS herzustellen. Die Authentifizierung funktioniert mit dem Signature V4-Algorithmus und verwendet den Cognito-Mikroservice. Der Anwendungscode wird im S3-Store gehostet. Das Portal verwendet den Continuous Integration-Mechanismus. Neue Versionen werden automatisch getestet und bei Erfolg auf die Plattform angewendet. Der Beanstalk-Dienst wird zur Versionskontrolle und automatischen Bereitstellung verwendet.



Substitution importieren



Die russische Gesetzgebung für Regierungsanwendungen (B2G) enthält Beschränkungen für die Verwendung von Servern außerhalb Russlands, z. B. 187-. Der fortschrittlichste russische Cloud-Dienst ist Yandex.Cloud, zu dem auch die IoT-Plattform gehört. Zu Beginn der Arbeiten an unserem System waren einige der in AWS verfügbaren Komponenten noch nicht bei Yandex erhältlich. Um eine vollständige Lösung zu erstellen, benötigten Sie insbesondere ein eigenes Backend, um mit der WEB-Anwendung und dem MQTT-Broker zu interagieren. Auf der anderen Seite hat Yandex bereits umfangreiche Analyse- und Datenbank-Tools, Tools für die Anwendungsbereitstellung und Cloud-Speicher (Object Storage) angeboten. Der Datalens-Service zur Datenvisualisierung (analog zu AWS Quicksight) sowie die ClickHouse-Datenbank, die sich perfekt zum Speichern von Zeitreihendaten eignet, sind bereits verfügbar.



Yandex leistet einen großen Beitrag zur Entwicklung von Open Source in der Welt und versucht auch, seine Produkte mit vorhandenen Lösungen kompatibel zu machen. So können Sie beispielsweise mit Object Storage Yandex mithilfe des Dienstprogramms aws-cli mithilfe von Befehlen für AWS S3 arbeiten.



Objektcontroller auswählen



Der Markt für Objektcontroller ist ziemlich groß. Die Anzahl der Optionen und Hersteller, aus denen Sie auswählen können, geht an Dutzende und Modelle an Hunderte. In der Regel werden beim Erstellen von Steuerungssystemen Steuerungen verwendet, mit denen bereits gearbeitet werden kann oder die vom Lieferanten des Top-Level-Systems empfohlen werden. Dieser Zustand ist nur möglich, wenn Systeme der obersten Ebene verwendet werden, die für bestimmte Geräte ( hardwarespezifische Softwareplattformen ) entwickelt wurden, und wenn Steuerungen mit geschlossenen Austauschprotokollen verwendet werden.



Wenn Sie Systeme der obersten Ebene verwenden, die mit offenen Protokollen arbeiten (Cloud-IoT-Plattformen sind solche), können Sie Geld sparen, indem Sie die optimale Ausrüstung für die Projektanforderungen auswählen. Ein Beispiel für solche Anforderungen finden Sie oben im Abschnitt „Systemfunktionen und Steuerungsanforderungen auf niedriger Ebene“.



Bei B2G-Lösungen gemäß PP-878 ist es besser, sich auf russische Steuerungen zu konzentrieren. In einigen Bereichen wird es immer wichtiger, Geräte auf der Basis russischer Elemente zu verwenden.



Nicht jeder ist mit der Designoption für benutzerdefinierte Controller vertraut. Dies kann sich durch die Verwendung einer kostengünstigen Elementbasis und die Implementierung der erforderlichen Anzahl von Funktionsblöcken für ein bestimmtes Projekt auszahlen. Darüber hinaus besteht der Gerätekomplex in der Anlage aus einer Mindestanzahl von Geräten (manchmal nur einem), was bedeutet, dass weniger Montage-, Installations- und Inbetriebnahmearbeiten erforderlich sind.



Die kundenspezifische Entwicklung der Steuerung kann sich aufgrund der geringeren Gerätekosten, der geringeren Installations- und Inbetriebnahmearbeiten auszahlen.



Für die beschriebene Aufgabe haben wir den GiC- Controller verwendet(Generic Internet Controller) proprietär. Es ist mit der erforderlichen Anzahl von Netzwerkschnittstellen, E / A-Ports und einem eingebauten Netzteil ausgestattet, unterstützt die Protokolle MQTT, WEB, SNMP und ModBUS und kann verschiedene digitale Geräte abfragen: Messgeräte, Stromversorgungssysteme, Klimaanlagen (die Liste wird ständig erweitert).



Fazit



Oben haben wir beschrieben, wie unser Managementsystem auf AWS aufgebaut ist. Cloud-Technologien erleichtern diese Art der Entwicklung, aber es kann immer noch nicht gesagt werden, dass dies nur ein paar Klicks sind. Wenn Ihre Aufgabe unserer ähnlich ist, kontaktieren Sie uns bitte.



Auf IoT-Plattformen lohnt es sich, auf das Erscheinen vorkonfigurierter Vorlagen für Smart Home-Systeme, AMR, NMS, ACS usw. zu warten. Dies wird die Erstellung von Komplettlösungen weiter vereinfachen, die Schwelle für den Einstieg in dieses Geschäft senken und ein zusätzliches Publikum für Cloud-Technologien gewinnen.



IoT-Plattformen verwenden offene Austauschprotokolle mit Controllern. Dies gibt Benutzern die Freiheit, ihre Standortausrüstung zu wählen. Es besteht die Möglichkeit der kundenspezifischen Entwicklung von Steuerungen (unsere Spezialisierung ). Durch die Verwendung benutzerdefinierter Controller kann das Projektbudget reduziert werden.



Bei Regierungsprojekten und Projekten im Zusammenhang mit kritischer Informationsinfrastruktur ist es besser, sich auf russische Systeme und Anlagenausrüstung zu konzentrieren, da der Markt für solche Systeme bereits gebildet wurde und sich entwickelt.



All Articles