IIoT Edge Ontwikkeling met WebSockets: Veilige, Real-time Connectiviteit
Opmerking van de redacteur: Het Industrial Internet of Things (IIoT) belooft diepe inzicht in industriële operaties en de efficiëntie van verbonden machines en systemen te verbeteren. Grootschalige IIoT-toepassingen vertrouwen op gelaagde architecturen om data van een breed scala aan sensoren te verzamelen, data betrouwbaar en veilig naar de cloud te verplaatsen, en de analyse uit te voeren die nodig is om die inzichten en efficiëntie te leveren. In Industrial Internet Application Development bieden de auteurs een gedetailleerde examen van de IIoT-architectuur en bespreken ze benaderingen voor het voldoen aan de brede vereisten van deze systemen.
Geaccepteerd uit Industrial Internet Application Development, door Alena Traukina, Jayant Thomas, Prashant Tyagi, Kishore Reddipalli.
Hoofdstuk 3. IIoT Edge Ontwikkeling (Vervolg)
Door Alena Traukina, Jayant Thomas, Prashant Tyagi, Kishore Reddipalli
Applicatie-level protocollen – WebSocket
In deze sectie proberen we een simpele IoT-app te bouwen voor het verzenden van data van een XD-80 lichtsensormodule naar een ontvangapparaat, gebruikmakend van een Raspberry Pi hub en het WebSocket protocol:

Dataflow van een XD-80 sensor naar een ontvangapparaat
WebSocket wordt het meest gebruikt wanneer men snelle overdracht van real-time data wil inschakelen. Het protocol staat tweeweg interactie tussen een client en een server toe, en het streamen van meerdere berichten over dezelfde TCP-verbinding, wat de communicatie-overhead verlaagt.
In de volgende tabel vindt u een gedetailleerdere beschrijving van het protocol om te begrijpen of het geschikt is voor uw behoeften:
| Sleutel | Waarde |
|---|---|
| Open source | Ja |
| OSI laag | Applicatie |
| Datatypes | String |
| Beperkingen | Niet geschikt voor grote hoeveelheden binaire data |
| Mogelijke operaties | Data versturen/ontvangen |
| Latentie | Zeer laag |
| Gebruik | Real-time communicatie |
| Beveiliging | Ja |
| Compressie | Ja |
Tabel 3: WebSocket protocol specificaties
Benodigde software en hardware
Benodigde 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/)
Benodigde hardware:
- Raspberry Pi 3 (model B)
- Voeding (2A/5V)
- MicroSD kaart (8 GB+) en SD adapter
- XD-80 lichtsensormodule
- Breadboard en set Dupont kabels
- Ethernet kabel voor bedrade netwerkverbinding
Een apparaat samenstellen
Voordat u een applicatie bouwt, moet u een XD-80 sensor verbinden met een Raspberry Pi via een breadboard.
Een SD-kaart voorbereiden
- Download de meest recente Raspbian LITE image (beschikbaar op https://raspberrypi.org/downloads/raspbian/).
- Sluit uw SD-kaart aan op een computer en gebruik Etcher (https://www.balena.io/etcher/) om de Raspbian
.imgfile naar de SD-kaart te flashen. - Schakel SSH in met het volgende commando:
cd /Volumes/boot
touch ssh
- Om Wi-Fi in te schakelen, maak
wpa_supplicant.confaan met de volgende inhoud:
network={
ssid="JOUW_SSID"
psk="JOUW_WIFI_WACHTWOORD"
}
Om een bestand aan te maken in een Linux-console, kunt u de GNU nano editor gebruiken. Deze is voorgeïnstalleerd in de meeste Linux-distributies. U hoeft alleen het commando nano BESTANDSNAAM uit te voeren en de getoonde instructies te volgen.
- Maak de map
/home/pi/sensor - Maak het bestand
/home/pi/sensor/package.jsonaan met de volgende inhoud:
{
"name": "sensor",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"rpio": "^0.9.16",
"ws": "^2.3.1"
}
}
- Maak het bestand
/home/pi/sensor/index.jsaan met de volgende inhoud, vervangREMOTE-SERVER-ADDRESS.comdoor een echte waarde:
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(),
light: status
});
try { ws.send(data); }
catch (e) {console.log('failed to send data to ' + receiver);}
setTimeout(sendStatus, 1000);
};
sendStatus();
- Maak het bestand
/home/pi/sensor/Dockerfileaan met de volgende inhoud:
FROM hypriot/rpi-node:boron-onbuild
Internet of Things-technologie
- Industrial Internet of Things (IIoT): definitie, scope en industriële impact
- Navigeren in het Internet of Everything: best practices voor succesvolle hyperconnectiviteit
- Edge Computing: 5 Potentiële Valkuilen – en Hoe Ze Te Overwinnen
- Toekomstperspectief: Industrial IoT voortgang voor productie-excellentie
- Industrie 4.0 verhogen: Edge-analytics benutten voor slimmere, snellere productie
- De Definitieve Gids naar de Top 10 Industriële IoT-platforms (2024)
- IIoT Trends & Uitdagingen: Data Overload, Productieshifts en het Vaardigheden Tekort
- Edge Computing & IIoT: Transformatie van industriële datastrategie
- Edge Computing: De Nieuwe Hartklop van de Cloud-tijdperk
- Actionable Edge-inzichten Ontgrendelen met AI & ML
- Innovatie aan het Sturen: Hoe Edge Computing de Auto-industrie Transformeert