Desarrollo de borde IIoT - Uso de WebSockets
Nota del editor:La Internet industrial de las cosas (IIoT) promete proporcionar una visión profunda de las operaciones industriales y mejorar la eficiencia de las máquinas y los sistemas conectados. Las aplicaciones IIoT a gran escala se basan en arquitecturas en capas para recopilar datos de una amplia gama de sensores, mover datos de manera confiable y segura a la nube y realizar los análisis necesarios para brindar esa información y eficiencia. En Desarrollo de aplicaciones de Internet industrial, los autores proporcionan un examen detallado de la arquitectura IIoT y discuten enfoques para cumplir con los requisitos generales asociados con estos sistemas.
Adaptado de Desarrollo de aplicaciones de Internet industrial, por Alena Traukina, Jayant Thomas, Prashant Tyagi, Kishore Reddipalli.
Capítulo 3. Desarrollo de bordes de IIoT (continuación)
Por Alena Traukina, Jayant Thomas, Prashant Tyagi, Kishore Reddipalli
Protocolos de nivel de aplicación:WebSocket
En esta sección, intentaremos crear una aplicación de IoT simple para enviar datos desde un módulo de sensor de luz XD-80 a un dispositivo receptor, utilizando un concentrador Raspberry Pi y el protocolo WebSocket:
Flujo de datos desde un sensor XD-80 a un dispositivo receptor
WebSocket se utiliza más ampliamente en el caso de que se necesite permitir una transferencia rápida de datos en tiempo real. El protocolo permite la interacción bidireccional entre un cliente y un servidor, y la transmisión de varios mensajes utilizando la misma conexión TCP, lo que reduce la sobrecarga de comunicaciones.
En la siguiente tabla, puede encontrar una descripción más detallada del protocolo para comprender si es adecuado para sus necesidades:
Clave Valor Código abiertoSíLa capa OSIAplicaciónTipos de datosStringLimitacionesNo apto para grandes cantidades de datos binariosOperaciones posiblesEnviar / recibir datosLatencyMuy bajoUsoComunicación en tiempo realSeguridadSíCompresiónSíTabla 3:Especificaciones del protocolo WebSocket
Para construir la aplicación, necesitaremos lo siguiente.
Software necesario:
- 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 necesario:
- Raspberry Pi 3 (modelo B)
- Un adaptador de corriente (2A / 5V)
- Una tarjeta microSD (8 GB +) y un adaptador SD
- Un módulo de sensor de luz XD-80
- Una placa de pruebas y un juego de cables dupont
- Un cable Ethernet para una conexión de red por cable
Montaje de un dispositivo
Antes de crear una aplicación, debe conectar un sensor XD-80 a una Raspberry Pi a través de una placa de pruebas.
Preparando una tarjeta SD
Para preparar una tarjeta SD, siga la secuencia de acciones descrita:
- Descargue la última imagen de Raspbian LITE (disponible en https://raspberrypi.org/downloads/raspbian/ ).
- Conecte su tarjeta SD a una computadora y use Etcher ( https:// io / ) para flashear el Raspbian . img archivo a la tarjeta SD.
- Habilite SSH con el siguiente comando:
cd / Volumes / boot
toque ssh
- Para habilitar Wi-Fi, cree conf con el siguiente contenido:
red ={
ssid =”YOUR_SSID”
psk =”YOUR_WIFI_PASSWORD”
}
- Cree el / home / pi / sensor
- Cree el / home / pi / sensor / package.json archivo con el siguiente contenido:
{
“nombre”:“sensor”,
“versión”:“1.0.0”,
“descripción”:“”,
"main":"index.js",
"scripts":{
"start":"node index.js",
"test":"echo" Error:ninguna prueba especificada ”&&exit 1 ″
},
“ autor ”:“ ”,
“ licencia ”:“ ISC ”,
“ dependencias ”:{“ rpio ”:"^ 0.9.16",
"ws":"^ 2.3.1"
}
}
- Cree el / home / pi / sensor / index.js archivo con el siguiente contenido, reemplazando REMOTE-SERVER-ADDRESS.com con un valor real:
var WebSocket =require ('ws');
var rpio =require ('rpio');
var ws;
var receptor ='ws://REMOTE-SERVER-ADDRESS.com:8080';
rpio.open (11, rpio.INPUT);
var establecerConnection =function () {
ws =new WebSocket (receptor);
ws.on ('cerrar', establecer conexión);
ws.on ('error', establecer conexión);
};
EstablezcaConnección ();
var sendStatus =function () {
var status =rpio.read (11) ===0;
console.log ('light status:'+ estado);
var data =JSON.stringify ({
dispositivo:' raspberry ',
marca de tiempo:Date.now (),
luz:estado
});
probar {ws.send (datos); }
catch (e) {console.log ('falló al enviar datos a' + receptor);}
setTimeout (sendStatus, 1000);
};
SendStatus ();
- Cree el / home / pi / sensor / Dockerfile archivo con el siguiente contenido:
DE hypriot / rpi-node:boron-onbuild
Tecnología de Internet de las cosas
- La hiperconectividad exige una perspectiva más amplia
- Computación perimetral:5 trampas potenciales
- Perspectivas para el desarrollo de IoT industrial
- Actualización de Industry 4.0 con análisis de borde
- Las 10 mejores plataformas de IIoT
- Tendencias de IIoT y desafíos a seguir
- ¿La computación perimetral y el IIoT están cambiando la forma en que pensamos sobre los datos?
- ¿Qué es IIoT?
- El borde es ahora el centro de la acción
- Uso de IA y ML para extraer información procesable en aplicaciones perimetrales
- Automoción en el borde