Développement IIoT en périphérie avec WebSockets : connectivité temps réel sécurisée
Chapitre 3. Développement IIoT en périphérie (suite)
Par Alena Traukina, Jayant Thomas, Prashant Tyagi, Kishore Reddipalli
Protocoles au niveau application – WebSocket
Dans cette section, nous allons essayer de construire une application IoT simple pour envoyer des données d'un module capteur de lumière XD-80 à un périphérique récepteur, en utilisant un hub Raspberry Pi et le protocole WebSocket :
WebSocket est le plus largement utilisé lorsqu'il faut permettre un transfert rapide de données en temps réel. Le protocole permet une interaction bidirectionnelle entre un client et un serveur, et le streaming de multiples messages en utilisant la même connexion TCP, ce qui réduit la surcharge de communication.
Dans le tableau suivant, vous trouverez une description plus détaillée du protocole pour comprendre s'il convient à vos besoins :
| Clé | Valeur |
|---|---|
| Open source | Oui |
| Couche OSI | Application |
| Types de données | Chaîne |
| Limitations | Non adapté aux grandes quantités de données binaires |
| Opérations possibles | Envoyer/recevoir des données |
| Latence | Très faible |
| Usage | Communication temps réel |
| Sécurité | Oui |
| Compression | Oui |
Tableau 3 : Spécifications du protocole WebSocket
Matériel et logiciel requis
Logiciels requis :
- 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/)
Matériel requis :
- Raspberry Pi 3 (modèle B)
- Adaptateur d'alimentation (2A/5V)
- Carte microSD (8 Go+) et adaptateur SD
- Module capteur de lumière XD-80
- Plaque d'essai (breadboard) et jeux de câbles Dupont
- Câble Ethernet pour connexion réseau filaire
Assemblage du dispositif
Avant de construire l'application, vous devez connecter un capteur XD-80 à un Raspberry Pi via une plaque d'essai.
Préparation de la carte SD
- Téléchargez la dernière image Raspbian LITE (disponible sur https://raspberrypi.org/downloads/raspbian/).
- Connectez votre carte SD à un ordinateur et utilisez Etcher (https://www.balena.io/etcher/) pour flasher le fichier image .img de Raspbian sur la carte SD.
- Activez SSH en utilisant la commande suivante :
cd /Volumes/boot
touch ssh
- Pour activer le Wi-Fi, créez un fichier
wpa_supplicant.confavec le contenu suivant :
network={
ssid="VOTRE_SSID"
psk="VOTRE_MOT_DE_PASSE_WIFI"
}
nano NOM_FICHIER et de suivre les instructions affichées.- Créez le répertoire
/home/pi/sensor - Créez le fichier
/home/pi/sensor/package.jsonavec le contenu suivant :
{
"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"
}
}
- Créez le fichier
/home/pi/sensor/index.jsavec le contenu suivant, en remplaçantADRESSE-SERVEUR-DISTANT.compar une valeur réelle :
var WebSocket = require('ws');
var rpio = require('rpio');
var ws;
var receiver = 'ws://ADRESSE-SERVEUR-DISTANT.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();
- Créez le fichier
/home/pi/sensor/Dockerfileavec le contenu suivant :
FROM hypriot/rpi-node:boron-onbuild
Technologie de l'Internet des objets
- Naviguer dans l'Internet de tout : meilleures pratiques pour une hyperconnectivité réussie
- Edge Computing : 5 pièges potentiels — et comment les surmonter
- Élever l'Industrie 4.0 : exploiter l'analytics de bord pour une manufacture plus intelligente, plus rapide
- Le guide définitif des 10 meilleures plateformes IoT industrielles (2024)
- Tendances et Défis de l'IIoT : Surcharge de Données, Mutations Manufacturières et Gap de Compétences
- Edge Computing et IIoT : Transformer la stratégie des données industrielles
- Internet industriel des objets (IIoT) : définition, portée et impact industriel
- Edge Computing : Le Nouveau Cœur Battant de l'Ère du Cloud
- Débloquer des insights exploitables en périphérie avec l'IA et le ML