Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Tecnologia da Internet das Coisas

Integração Transparente de Sensor Modbus Usando EdgeX Foundry no Raspberry Pi

Integração Transparente de Sensor Modbus Usando EdgeX Foundry no Raspberry Pi

Implantações de Industrial Internet of Things (IIoT) dependem cada vez mais de gateways de borda para conectar periféricos Modbus com análises em nuvem. Construir gateway proprietário pode ser caro e lento. Este case study demonstra como framework open-source – EdgeX Foundry – pode ser implantado em Raspberry Pi para conectar sensor Modbus de temperatura-umidade, transmitir dados para nuvem e acionar atuações em tempo real com esforço mínimo.

Por que Modbus e EdgeX?

Modbus é protocolo aberto e leve que roda sobre links RS-485 baratos. Usa registradores simples (inteiros sem sinal de 16 bits) para valores analógicos e coils para estados binários, tornando-o ideal para dispositivos industriais. EdgeX Foundry, middleware de borda open-source, atua como ponte entre sensores físicos e sistemas de TI, fornecendo gerenciamento de dispositivos, transformação de dados e conectividade com nuvem out of the box.

Stack de Hardware

Figura 1: Integração Transparente de Sensor Modbus Usando EdgeX Foundry no Raspberry Pi Figura 1. EdgeX Foundry – middleware de borda open-source

Figura 2: Integração Transparente de Sensor Modbus Usando EdgeX Foundry no Raspberry Pi Figura 2. Diagrama de blocos de alto nível da implantação EdgeX

Integração Passo a Passo

  1. Configure o Raspberry Pi
  2. Simule dispositivo Modbus
    • Use ModbusPal (GPL) para emular até 247 slaves Modbus.
    • Configure slave com holding registers para temperatura (endereço 2) e umidade (endereço 3). Cada register mapeia para inteiro de 16 bits que será escalado para °C e %UR.
    • Inicie ModbusPal sobre TCP ou serial (USB-RS485) para verificar comunicação.
  3. Carregue perfil do dispositivo

    Envie requisição POST para https://localhost:48081/api/v1/deviceprofile/uploadfile com arquivo YAML contendo perfil (veja abaixo). Resposta retorna ID único do perfil.

  4. Registre o dispositivo

    Poste JSON seguinte para https://localhost:48081/api/v1/device para criar entrada do sensor. Seção protocols.modbus-rtu aponta para /dev/ttyUSB0 a 9600 baud.

    { "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. Verifique fluxo de dados
    • Serviço de dispositivo EdgeX puxa dados a cada 5 s e escreve no core service, que armazena no Redis.
    • Serviços de aplicação encaminham dados para IBM Cloud (ou nuvem de escolha).
    • Entradas de log mostram pacotes de request/response Modbus.
  6. Atue LEDs com motor de regras Kuiper
    • Defina regras: se temperatura > 30 °C ligue LED vermelho; se < 30 °C desligue; similar para azul LED a 28 °C.
    • Kuiper empurra comandos para EdgeX core-command, que então atualiza serviço de dispositivo GPIO.
    • Saídas GPIO verificadas via /sys/class/gpio/gpio12/value e /sys/class/gpio/gpio14/value.

Snippets de Configuração-Chave

Perfil do 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]

configuração TOML device-modbus (trecho)

[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

Fluxo ponta-a-ponta mostra dados de temperatura e umidade em tempo real chegando na IBM Cloud, acionando mudanças de status de LED baseadas em regras, demonstrando capacidades completas do EdgeX em Raspberry Pi de baixo custo.

Conclusão

EdgeX Foundry permite implantação rápida de soluções IIoT baseadas em Modbus com overhead mínimo de desenvolvimento. Ao abstrair gerenciamento de dispositivos, armazenamento de dados e conectividade com nuvem, liberta engenheiros para focar em lógica de domínio e análises.

Acrônimos

AcronymExpansion
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

Tecnologia da Internet das Coisas

  1. Guia para Iniciantes: Terminologia de Open Source
  2. Cisco Revela Roteadores Industriais Catalyst 5G para Conectar Redes Corporativas e de Borda
  3. AT&T e Tech Mahindra Lançam Acumos: Plataforma Open-Source de IA para Implantação Rápida
  4. Elevando a Excelência na Manufatura com Indústria 4.0: A Ascensão da Qualidade 4.0
  5. Protegendo Software Open-Source na IoT: Mitigando Riscos de Software
  6. Elevando Indústria 4.0: Aproveitando Edge Analytics para Manufatura Mais Inteligente e Rápida
  7. IIC e OpenFog Fundem-se para Impulsionar Inovação em Edge Computing
  8. Ferramentas de Desenvolvimento IoT Open Source vs. Suportadas por Fornecedores: Escolhendo a Stack Certa para sua Empresa
  9. Por Que Código Aberto Impulsiona Inovação na Borda — eBook Essencial
  10. Open Source Impulsiona Ascensão de IoT e Edge Computing