IIoT-Edge-Entwicklung – Verwenden von WebSockets
Anmerkung der Redaktion:Das Industrial Internet of Things (IIoT) verspricht tiefe Einblicke in industrielle Abläufe und verbessert die Effizienz vernetzter Maschinen und Systeme. Groß angelegte IIoT-Anwendungen verlassen sich auf mehrschichtige Architekturen, um Daten von einer Vielzahl von Sensoren zu sammeln, Daten zuverlässig und sicher in die Cloud zu verschieben und Analysen durchzuführen, die für die Bereitstellung dieser Erkenntnisse und Effizienz erforderlich sind. In Industrial Internet Application Development bieten die Autoren eine detaillierte Untersuchung der IIoT-Architektur und diskutieren Ansätze zur Erfüllung der breiten Anforderungen, die mit diesen Systemen verbunden sind.
Angepasst an die Entwicklung von industriellen Internetanwendungen, von Alena Traukina, Jayant Thomas, Prashant Tyagi, Kishore Reddipalli.
Kapitel 3. IIoT Edge-Entwicklung (Fortsetzung)
Von Alena Traukina, Jayant Thomas, Prashant Tyagi, Kishore Reddipalli
Protokolle auf Anwendungsebene – WebSocket
In diesem Abschnitt werden wir versuchen, eine einfache IoT-App zum Senden von Daten von einem XD-80-Lichtsensormodul an ein Empfängergerät mithilfe eines Raspberry Pi-Hubs und des WebSocket-Protokolls zu erstellen:
Datenfluss von einem XD-80-Sensor zu einem Empfängergerät
WebSocket wird am häufigsten verwendet, wenn eine schnelle Übertragung von Echtzeitdaten ermöglicht werden muss. Das Protokoll ermöglicht eine bidirektionale Interaktion zwischen einem Client und einem Server sowie das Streamen mehrerer Nachrichten über dieselbe TCP-Verbindung, was den Kommunikationsaufwand verringert.
In der folgenden Tabelle finden Sie eine genauere Beschreibung des Protokolls, um zu verstehen, ob es für Ihre Anforderungen geeignet ist:
Schlüssel Wert Open SourceJaDie OSI-SchichtAnwendungDatentypenStringEinschränkungenNicht geeignet für große Mengen binärer DatenMögliche OperationenDaten senden/empfangenLatenzSehr geringVerwendungEchtzeitkommunikationSicherheitJaKomprimierungJaTabelle 3:WebSocket-Protokollspezifikationen
Zum Erstellen der Anwendung benötigen wir Folgendes.
Erforderliche Software:
- Node.js 6+ (https:/ /nodejs.org/en/download/ )
- RPIO (https://www.npmjs.com/package/rpio )
- WebSocket (https://www.npmjs.com/package/ws )
- Docker (https://docs.docker.com/engine/installation/ )
Erforderliche Hardware:
- Raspberry Pi 3 (Modell B)
- Ein Netzteil (2A/5V)
- Eine microSD-Karte (8 GB+) und ein SD-Adapter
- Ein XD-80-Lichtsensormodul
- Ein Steckbrett und ein Satz Dupont-Kabel
- Ein Ethernet-Kabel für eine kabelgebundene Netzwerkverbindung
Gerät zusammenbauen
Bevor Sie eine Anwendung erstellen, müssen Sie einen XD-80-Sensor über ein Steckbrett mit einem Raspberry Pi verbinden.
Vorbereiten einer SD-Karte
Um eine SD-Karte vorzubereiten, befolgen Sie die beschriebene Reihenfolge der Aktionen:
- Laden Sie das neueste Raspbian LITE-Image herunter (verfügbar unter https://raspberrypi.org/downloads/raspbian/ ).
- Schließen Sie Ihre SD-Karte an einen Computer an und verwenden Sie Etcher (https://io/ ) um das Raspbian .img Datei auf die SD-Karte.
- Aktivieren Sie SSH mit dem folgenden Befehl:
cd /Volumes/boot
ssh berühren
- Um WLAN zu aktivieren, erstellen Sie conf mit folgendem Inhalt:
network={
ssid=”YOUR_SSID”
psk=”YOUR_WIFI_PASSWORD”
}
- Erstellen Sie das /home/pi/sensor
- Erstellen Sie das /home/pi/sensor/package.json Datei mit folgendem Inhalt:
{
"Name":"Sensor",
"Version":"1.0.0",
"Beschreibung":"",
"main":"index.js",
"scripts":{
"start":"node index.js",
"test":"echo "Error:kein Test angegeben“ &&exit 1″
},
"Autor":"",
"Lizenz":"ISC",
"Abhängigkeiten":{ "rpio":"^0.9.16",
"ws":"^2.3.1"
}
}
- Erstellen Sie das /home/pi/sensor/index.js Datei mit folgendem Inhalt, ersetzt REMOTE-SERVER-ADDRESS.com mit echtem Wert:
var WebSocket =require('ws');
var rpio =require('rpio');
var ws;
var receiver ='ws://REMOTE-SERVER-ADDRESS.com:8080';
rpio.open(11, rpio.INPUT);
var EstablishConnection =function () {
ws =new WebSocket(receiver);
ws.on('close', EstablishConnection);
ws.on('error', EstablishConnection);
};
establishConnection();
var sendStatus =function () {
var status =rpio.read(11) ===0;
console.log('light status:' + status);
var data =JSON.stringify({
device:'raspberry',
timestamp:Date.now(),
>:});
try { ws.send(data); }
catch (e) {console.log('failed to send data to ' + receiver);}
setTimeout(sendStatus, 1000);
};
sendStatus();
- Erstellen Sie den /home/pi/sensor/Dockerfile Datei mit folgendem Inhalt:
FROM hypriot/rpi-node:boron-onbuild
Internet der Dinge-Technologie
- Hyperkonnektivität erfordert eine breitere Perspektive
- Edge Computing:5 potenzielle Fallstricke
- Aussichten für die Entwicklung des industriellen IoT
- Upgrade von Industrie 4.0 mit Edge Analytics
- Top 10 der IIoT-Plattformen
- IIoT-Trends und zu beobachtende Herausforderungen
- Verändern Edge Computing und IIoT unser Denken über Daten?
- Was ist IIoT?
- Der Rand ist jetzt das Zentrum des Geschehens
- Verwenden von KI und ML zum Extrahieren umsetzbarer Erkenntnisse in Edge-Anwendungen