Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Teknologi Internet of Things

Integrasi Sensor Modbus Lancar Menggunakan EdgeX Foundry pada Raspberry Pi

Integrasi Sensor Modbus Lancar Menggunakan EdgeX Foundry pada Raspberry Pi

Penerapan Internet of Things Industri (IIoT) semakin mengandalkan gateway tepi untuk menghubungkan periferal yang mendukung Modbus dengan analitik cloud. Membangun gateway milik sendiri dapat mahal dan lambat. Studi kasus ini menunjukkan bagaimana framework sumber terbuka—EdgeX Foundry—dapat diterapkan pada Raspberry Pi untuk menghubungkan sensor suhu-kelembaban Modbus, mengalirkan data ke cloud, dan memicu aksi waktu nyata dengan usaha minimal.

Mengapa Modbus dan EdgeX?

Modbus adalah protokol terbuka dan ringan yang berjalan melalui tautan RS-485 yang murah. Ini menggunakan register sederhana (bilangan bulat tak bertanda 16-bit) untuk nilai analog dan coil untuk status biner, menjadikannya ideal untuk perangkat industri. EdgeX Foundry, middleware tepi sumber terbuka, bertindak sebagai jembatan antara sensor fisik dan sistem TI, menyediakan manajemen perangkat, transformasi data, dan konektivitas cloud secara langsung.

Stack Perangkat Keras

Gambar 1: Integrasi Sensor Modbus Lancar Menggunakan EdgeX Foundry pada Raspberry Pi
Gambar 1. EdgeX Foundry – middleware tepi sumber terbuka

Gambar 2: Integrasi Sensor Modbus Lancar Menggunakan EdgeX Foundry pada Raspberry Pi
Gambar 2. Diagram blok tingkat tinggi penerapan EdgeX

Integrasi Langkah demi Langkah

  1. Siapkan Raspberry Pi
    • Instal Ubuntu 20.04 LTS dengan Docker dan docker-compose.
    • Kloning repositori EdgeX Foundry dan jalankan stack melalui docker-compose.
  2. Simulasikan perangkat Modbus
    • Gunakan ModbusPal (GPL) untuk mengemulasi hingga 247 hamba Modbus.
    • Konfigurasikan hamba dengan register simpan untuk suhu (alamat 2) dan kelembaban (alamat 3). Setiap register memetakan ke bilangan bulat 16-bit yang akan diskalakan ke °C dan %RH.
    • Mulai ModbusPal melalui TCP atau serial (USB-RS485) untuk memverifikasi komunikasi.
  3. Unggah profil perangkat

    Kirim permintaan POST ke https://localhost:48081/api/v1/deviceprofile/uploadfile dengan file YAML yang berisi profil (lihat di bawah). Respons mengembalikan ID profil unik.

  4. Daftarkan perangkat

    Posting JSON berikut ke https://localhost:48081/api/v1/device untuk membuat entri sensor. Bagian protocols.modbus-rtu menunjuk ke /dev/ttyUSB0 pada 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. Verifikasi aliran data
    • Layanan perangkat EdgeX menarik data setiap 5 detik dan menulis ke layanan inti, yang menyimpannya di Redis.
    • Layanan aplikasi meneruskan data ke IBM Cloud (atau cloud pilihan Anda).
    • Contoh entri log menunjukkan paket permintaan/respons Modbus.
  6. Aktifkan LED dengan mesin aturan Kuiper
    • Definisikan aturan: jika suhu > 30 °C nyalakan LED merah; jika < 30 °C matikan; demikian pula untuk LED biru pada 28 °C.
    • Kuiper mendorong perintah ke EdgeX core-command, yang kemudian memperbarui layanan perangkat GPIO.
    • Output GPIO diverifikasi melalui /sys/class/gpio/gpio12/value dan /sys/class/gpio/gpio14/value.

Cuplikan Konfigurasi Kunci

Profil perangkat (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]

Konfigurasi TOML device-modbus (cuplikan)

[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"

Hasil

Alur akhir ke akhir menunjukkan data suhu dan kelembaban waktu nyata yang tiba di IBM Cloud, memicu perubahan status LED berdasarkan aturan, dan menunjukkan kemampuan penuh EdgeX pada Raspberry Pi dengan biaya rendah.

Kesimpulan

EdgeX Foundry memungkinkan penerapan cepat solusi IIoT berbasis Modbus dengan overhead pengembangan minimal. Dengan mengabstraksi manajemen perangkat, penyimpanan data, dan konektivitas cloud, ini membebaskan insinyur untuk fokus pada logika domain dan analitik.

Singkatan

SingkatanPengembangan
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

Teknologi Internet of Things

  1. Panduan Pemula untuk Terminologi Open-Source
  2. Cisco Perkenalkan Router Industri Catalyst 5G untuk Menghubungkan Jaringan Perusahaan dan Tepi
  3. AT&T dan Tech Mahindra Meluncurkan Acumos: Platform AI Open-Source untuk Deploy Cepat
  4. Meningkatkan Keunggulan Manufaktur dengan Industry 4.0: Kebangkitan Quality 4.0
  5. Mengamankan Perangkat Lunak Open-Source di IoT: Mengurangi Risiko Perangkat Lunak
  6. Meningkatkan Industri 4.0: Memanfaatkan Analitik Edge untuk Manufaktur yang Lebih Cerdas dan Cepat
  7. IIC dan OpenFog Digabungkan untuk Mendorong Inovasi Komputasi Edge
  8. Alat Pengembangan IoT Open-Source vs. Didukung Vendor: Memilih Stack yang Tepat untuk Perusahaan Anda
  9. Mengapa Open Source Mendorong Inovasi di Edge – eBook Esensial
  10. Sumber Terbuka Membangkitkan Pertumbuhan IoT dan Edge Computing