Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Tecnología de Internet de las cosas

Integración fluida de sensores Modbus usando EdgeX Foundry en Raspberry Pi

Integración fluida de sensores Modbus usando EdgeX Foundry en Raspberry Pi

Los despliegues de Internet Industrial de las Cosas (IIoT) dependen cada vez más de pasarelas de borde para conectar periféricos Modbus con analíticas en la nube. Construir una pasadera propietaria puede ser costoso y lento. Este caso de estudio demuestra cómo un marco de código abierto —EdgeX Foundry— puede desplegarse en una Raspberry Pi para conectar un sensor Modbus de temperatura-humedad, transmitir datos a la nube y activar actuaciones en tiempo real con mínimo esfuerzo.

Por qué Modbus y EdgeX

Modbus es un protocolo abierto y ligero que funciona sobre enlaces RS-485 económicos. Usa registros simples (enteros sin signo de 16 bits) para valores analógicos y bobinas para estados binarios, lo que lo hace ideal para dispositivos industriales. EdgeX Foundry, un middleware de borde de código abierto, actúa como puente entre sensores físicos y sistemas TI, proporcionando gestión de dispositivos, transformación de datos y conectividad cloud lista para usar.

Pila de hardware

Figura 1: Integración fluida de sensores Modbus usando EdgeX Foundry en Raspberry Pi Figura 1. EdgeX Foundry – middleware de borde de código abierto

Figura 2: Integración fluida de sensores Modbus usando EdgeX Foundry en Raspberry Pi Figura 2. Diagrama de bloques de alto nivel del despliegue EdgeX

Integración paso a paso

  1. Configurar la Raspberry Pi
    • Instalar Ubuntu 20.04 LTS con Docker y docker-compose.
    • Clonar el repositorio EdgeX Foundry y lanzar la pila vía docker-compose.
  2. Simular el dispositivo Modbus
    • Usar ModbusPal (GPL) para emular hasta 247 esclavos Modbus.
    • Configurar un esclavo con registros de retención para temperatura (dirección 2) y humedad (dirección 3). Cada registro mapea a un entero de 16 bits que se escalará a °C y %HR.
    • Iniciar ModbusPal sobre TCP o serial (USB-RS485) para verificar comunicación.
  3. Subir el perfil del dispositivo

    Enviar una petición POST a https://localhost:48081/api/v1/deviceprofile/uploadfile con el archivo YAML que contiene el perfil (ver abajo). La respuesta devuelve un ID de perfil único.

  4. Registrar el dispositivo

    Enviar el siguiente JSON a https://localhost:48081/api/v1/device para crear la entrada del sensor. La sección protocols.modbus-rtu apunta a /dev/ttyUSB0 a 9600 baudios.

    { "name": "TemperatureHumiditySensor", "description": "Industrial Grade Temperature & Humidity Transmitter SHT20", "adminState": "UNLOCKED", "operatingState": "ENABLED", "protocols": { "modbus-rtu": { "Address": "/dev/ttyUSB0", "BaudRate": "9600", "DataBits": "8", "StopBits": "1", "Parity": "N", "UnitID": "1" } }, "labels": ["TemperatureHumiditySensor","modbusRTU"], "service": {"name": "edgex-device-modbus"}, "profile": {"name": "TemperatureHumiditySensor"}, "autoEvents": [ {"frequency": "5s", "onChange": false, "resource": "TemperatureDegC"}, {"frequency": "5s", "onChange": false, "resource": "HumidityPercentRH"} ] }
  5. Verificar flujo de datos
    • El servicio de dispositivo de EdgeX extrae datos cada 5 s y escribe en el servicio central, que los almacena en Redis.
    • Los servicios de aplicación reenvían los datos a IBM Cloud (o cualquier nube elegida).
    • Entradas de log de ejemplo muestran los paquetes de petición/respuesta Modbus.
  6. Actuar LEDs con motor de reglas Kuiper
    • Definir reglas: si temperatura > 30 °C encender LED rojo; si < 30 °C apagarlo; similar para LED azul a 28 °C.
    • Kuiper envía comandos al core-command de EdgeX, que actualiza el servicio de dispositivo GPIO.
    • Salidas GPIO verificadas vía /sys/class/gpio/gpio12/value y /sys/class/gpio/gpio14/value.

Fragmentos clave de configuración

Perfil de dispositivo (YAML)

name: TemperatureHumiditySensor manufacturer: ROBOKITS model: RKI-4879 labels: - SHT20 description: Industrial Grade Temperature & Humidity Transmitter SHT20 Sensor High Precision Monitoring Modbus RS485 deviceResources: - name: TemperatureDegC description: Room Temperature in Degrees Celsius. attributes: { primaryTable: INPUT_REGISTERS, startingAddress: 2, rawType: INT16 } properties: value: { type: Float32, readWrite: R, scale: 0.1, floatEncoding: eNotation } units: { type: String, readWrite: R, defaultValue: degrees celsius } - name: HumidityPercentRH description: Room Humidity in %RH. attributes: { primaryTable: INPUT_REGISTERS, startingAddress: 3, rawType: INT16 } properties: value: { type: Float32, readWrite: R, scale: 0.1, floatEncoding: eNotation } units: { type: String, readWrite: R, defaultValue: %RH } deviceCommands: - name: TemperatureDegC get: [{ index: 1, operation: get, deviceResource: TemperatureDegC }] - name: HumidityPercentRH get: [{ index: 2, operation: get, deviceResource: HumidityPercentRH }] coreCommands: - name: TemperatureDegC get: path: /api/v1/device/{deviceId}/TemperatureDegC responses: - code: 200 description: Get the temperature in degrees C expectedValues: [TemperatureDegC] - name: HumidityPercentRH get: path: /api/v1/device/{deviceId}/HumidityPercentRH responses: - code: 200 description: Get the humidity in %RH expectedValues: [HumidityPercentRH]

Configuración TOML device-modbus (extracto)

[DeviceList] Name = "TemperatureHumiditySensor" Profile = "TemperatureHumiditySensor" Description = "Industrial Grade Temperature & Humidity Transmitter SHT20" labels = ["TemperatureHumiditySensor","modbusRTU"] [DeviceList.Protocols.modbus-rtu] Address = "/dev/ttyUSB0" BaudRate = 9600 DataBits = 8 StopBits = 1 Parity = "N" UnitID = 1 [[DeviceList.AutoEvents]] Frequency = "5s" OnChange = false Resource = "TemperatureDegC" [[DeviceList.AutoEvents]] Frequency = "5s" OnChange = false Resource = "HumidityPercentRH"

Resultados

El flujo extremo a extremo muestra datos de temperatura y humedad en tiempo real llegando a IBM Cloud, activando cambios de estado de LED basados en reglas, y demostrando las capacidades completas de EdgeX en una Raspberry Pi de bajo coste.

Conclusión

EdgeX Foundry permite despliegue rápido de soluciones IIoT basadas en Modbus con sobrecarga mínima de desarrollo. Al abstraer gestión de dispositivos, almacenamiento de datos y conectividad cloud, libera a ingenieros para centrarse en lógica de dominio y analíticas.

Acrónimos

AcrónimoExpansión
AOFAppend Only File
APIApplication Program Interface
AWSAmazon Web Services
BACnetBuilding Automation and Control Network
BLEBluetooth Low Energy
CURLClient Uniform Resource Locator
GPIOGeneral Purpose Input Output
HTTPHypertext Transfer Protocol
IBMInternational Business Machines
IIoTIndustrial Internet of Things
IoTInternet of Things
ITInformation Technology
LEDLight Emitting Diode
LTSLong Term Support
M2MMan to Machine
MQTTMessage Queuing Telemetry Transport
RDBRedis Database
RedisREmote DIctionary Server
RESTRepresentational State Transfer
RS-485Recommended Standard – 485
SCADASupervisory Control and Data Acquisition
SQLStructured Query Language
TCP/IPTransmission Control Protocol/Internet Protocol

Tecnología de Internet de las cosas

  1. Domina la inferencia Edge AI: Guía práctica para insights accionables
  2. Guía para principiantes sobre terminología de código abierto
  3. Cisco Presenta Routers Industriales Catalyst 5G para Conectar Empresa y Edge sin Fisuras
  4. AT&T y Tech Mahindra lanzan Acumos: plataforma open-source de IA para despliegue rápido
  5. Elevando la excelencia en manufactura con Industria 4.0: El auge de Calidad 4.0
  6. Asegurar Software Open-Source en IoT: Mitigar Riesgos de Software
  7. Elevando la Industria 4.0: Aprovechando analítica en el edge para manufactura más inteligente y rápida
  8. IIC y OpenFog se fusionan para impulsar innovación en edge computing
  9. Open-Source vs. Herramientas IoT Vendor-Supported: Elegir el stack correcto para tu empresa
  10. Por Qué el Open Source Impulsa la Innovación en el Edge: eBook Esencial
  11. El Open Source Impulsa el Auge del IoT y Edge Computing