Mejora del desarrollo edge IIoT con WebSockets: conectividad segura en tiempo real

Adaptado de Industrial Internet Application Development, por Alena Traukina, Jayant Thomas, Prashant Tyagi, Kishore Reddipalli.
Capítulo 3. Desarrollo Edge IIoT (Continuación)
Por Alena Traukina, Jayant Thomas, Prashant Tyagi, Kishore Reddipalli
Protocolos a nivel de aplicación – WebSocket
En esta sección, intentaremos construir una aplicación IoT simple para enviar datos desde un módulo de sensor de luz XD-80 a un dispositivo receptor, usando un hub Raspberry Pi y el protocolo WebSocket:

WebSocket se usa ampliamente cuando se necesita permitir la transferencia rápida de datos en tiempo real. El protocolo permite la interacción bidireccional entre un cliente y un servidor, y el streaming de múltiples mensajes usando la misma conexión TCP, lo que reduce la sobrecarga de comunicaciones.
En la siguiente tabla encontrará una descripción más detallada del protocolo para entender si es adecuado para sus necesidades:
| Clave | Valor |
|---|---|
| Open source | Sí |
| Capa OSI | Aplicación |
| Tipos de datos | Cadena (String) |
| Limitaciones | No apto para grandes cantidades de datos binarios |
| Operaciones posibles | Enviar/recibir datos |
| Latencia | Muy baja |
| Uso | Comunicación en tiempo real |
| Seguridad | Sí |
| Compresión | Sí |
Tabla 3: Especificaciones del protocolo WebSocket
Para construir la aplicación necesitaremos lo siguiente.
Software requerido:
- 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/)
Hardware requerido:
- Raspberry Pi 3 (modelo B)
- Adaptador de alimentación (2A/5V)
- Tarjeta microSD (8 GB+) y adaptador SD
- Módulo sensor de luz XD-80
- Protoboard y set de cables dupont
- Cable Ethernet para conexión de red cableada
Ensamblaje del dispositivo
Antes de construir la aplicación, debe conectar un sensor XD-80 a una Raspberry Pi mediante una protoboard.
Preparación de la tarjeta SD
Para preparar la tarjeta SD, siga la secuencia de acciones descrita:
- Descargue la imagen más reciente de Raspbian LITE (disponible en https://raspberrypi.org/downloads/raspbian/).
- Conecte su tarjeta SD a un ordenador y use Etcher (https://www.balena.io/etcher/) para flashear el archivo
.imgde Raspbian en la tarjeta SD. - Habilite SSH usando el siguiente comando:
cd /Volumes/boot
touch ssh - Para habilitar Wi‑Fi, cree
confcon el siguiente contenido:
network={
ssid="YOUR_SSID"
psk="YOUR_WIFI_PASSWORD"
} 
Para crear un archivo en una consola Linux, puede usar el editor GNU nano, preinstalado en la mayoría de distribuciones. Solo necesita ejecutar el comando nano NOMBRE_ARCHIVO y seguir las instrucciones mostradas.
- Cree el directorio
/home/pi/sensor - Cree el archivo
/home/pi/sensor/package.jsoncon el siguiente contenido:
{
"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" }
} - Cree el archivo
/home/pi/sensor/index.jscon el siguiente contenido, reemplazandoREMOTE-SERVER-ADDRESS.compor un valor real:
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(); - Cree el archivo
/home/pi/sensor/Dockerfilecon el siguiente contenido:
FROM hypriot/rpi-node:boron-onbuild
Tecnología de Internet de las cosas
- Internet Industrial de las Cosas (IIoT): Definición, alcance e impacto industrial
- Navegando el Internet de Todo: Mejores prácticas para hiperconectividad exitosa
- Edge Computing: 5 Riesgos Potenciales — y Cómo Superarlos
- Perspectiva Futura: Avanzando Industrial IoT para Excelencia en Producción
- Elevando la Industria 4.0: Aprovechando analítica en el edge para manufactura más inteligente y rápida
- La Guía Definitiva del Top 10 de Plataformas Industrial IoT (2024)
- Tendencias y Desafíos del IIoT: Sobrecarga de Datos, Cambios en Manufactura y Brecha de Habilidades
- Edge Computing e IIoT: Transformando la Estrategia de Datos Industriales
- Edge Computing: El Nuevo Latido de la Era Cloud
- Desbloqueando insights accionables en el Edge con IA y ML
- Impulsando la innovación: cómo el edge computing está transformando la industria automotriz