ModbusでIIoTエッジ開発:Raspberry Piで安全なセンサーデータフローを構築
編集者注:産業用IoT(IIoT)は産業運用への深い洞察を解き放ち、接続されたシステム全体の効率を向上させます。大規模IIoT導入は階層型アーキテクチャに依存し、多様なセンサーからデータを収集し、安全にクラウドに送信し、現実的な価値を生み出す分析を実行します。この章では、シリアル通信のための軽量で実証済みのソリューションであるModbusプロトコルに焦点を当て、IIoTエッジ開発を掘り下げます。
『産業用インターネットアプリケーション開発』より抜粋、Alena Traukina、Jayant Thomas、Prashant Tyagi、Kishore Reddipalli著。
第3章. IIoTエッジ開発(続き)
産業用M2Mプロトコル — Modbus
このセクションでは、Modbus TCP(Modbusのアプリケーション層バリアント)を使用して、Raspberry Piハブから受信デバイス(PCまたはクラウド)へセンサーデータを送信するコンパクトなIoTアプリケーションを構築します。

センサーシミュレーターから受信デバイスへのデータフロー
Modbusは制約のあるハードウェアを持つデバイスに最適です:シンプルで、オープンソース、広くサポートされています。以下は、Modbusがあなたの要件を満たすかどうかを判断するのに役立つ簡潔な仕様スナップショットです。
| キー | 値 |
|---|---|
| オープンソース | はい* |
| OSI層 | トランスポートまたはアプリケーション |
| データタイプ | 整数、浮動小数点、文字列、ブール |
| 制限 | • 大容量バイナリオブジェクト不可 • マスターがデバイスをポーリングして変更検知* • リンクあたり最大254デバイス* • 連続伝送のみ |
| 操作 | レジスタ&コイルの読み書き、診断 |
| レイテンシ | 高い |
| 用途 | SMS、GPRS、有線、無線、メッシュ |
| セキュリティ | なし |
| 圧縮 | なし |
*印の値は実装によって異なります。
ビルディングブロック
- 必要なソフトウェア:
- 必要なハードウェア:
- Raspberry Pi 3 Model B
- 2A/5V電源アダプター
- 8GB以上 microSDカードとアダプター
- 有線ネットワーク用Ethernetケーブル
SDカードの準備
- Raspberry Piダウンロードから最新のRaspbian Liteイメージをダウンロード。
- SDカードをコンピューターに挿入し、Etcher(https://www.balena.io/etcher/)でイメージを書き込み。
- ブートパーティションに
sshという空ファイルを作成してSSHを有効化:cd /Volumes/boot touch ssh
- Wi-Fiを有効化するには、
network.confを以下の内容で作成:
network={ ssid="YOUR_SSID" psk="YOUR_WIFI_PASSWORD" }
nano でLinuxコンソールのファイルを編集します。
- プロジェクトディレクトリを作成:
/home/pi/hub。 /home/pi/hub/package.jsonに追加:
{ "name": "hub", "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": { "modbus": "0.0.16", "request": "^2.81.0" } }
/home/pi/hub/index.jsにModbusクライアントを実装してサーバーにデータ送信。プレースホルダーを実際のアドレスに置き換え:const modbus = require('modbus'); const request = require('request'); // 例:センサーレジスタを読み取りリモートサーバーにPOST // (ここに実際のロジックを挿入)
/home/pi/hub/Dockerfileを作成:FROM hypriot/rpi-node:boron-onbuild RUN apt-get update && apt-get install -y libmodbus5
- センサープロジェクトディレクトリを作成:
/home/pi/sensor。
/home/pi/sensor/package.jsonに追加:{ "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": { "modbus": "0.0.16" } }
/home/pi/sensor/index.jsにセンサーシミュレーターとModbus TCPクライアントを実装。REMOTE-HUB-ADDRESS.comをハブのIPまたはホスト名に置き換え:const modbus = require('modbus'); // 例:センサー読み取りをシミュレートしModbusに書き込み // (ここに実際のロジックを挿入)/home/pi/sensor/Dockerfileを作成:FROM hypriot/rpi-node:boron-onbuild RUN apt-get update && apt-get install -y libmodbus5
ソリューションのデプロイ
Dockerイメージをビルドし、レジストリにプッシュし、Raspberry Piでコンテナを実行。ハブとセンサーコンテナがローカルネットワークで通信できることを確認。デプロイ後、センサーシミュレーターはModbus TCP経由でハブにデータを公開し、ハブがクラウドエンドポイントに転送します。
このガイドに従うことで、実世界の産業シナリオにおけるModbusの力を示す、堅牢で低オーバーヘッドのIIoTエッジスタックが構築できます。
モノのインターネットテクノロジー
- 産業用IoT(IIoT):定義、範囲、産業への影響
- DocBox CEOが語る、データ中心で相互運用可能なヘルスケアIoTソリューションの構築
- モノのインターネット(IoE)をナビゲート:ハイパーコネクティビティ成功のためのベストプラクティス
- エッジコンピューティング:5つの落とし穴とその克服法
- 将来展望:生産卓越性に向けた産業用IoTの推進
- インダストリー4.0を昇華:エッジアナリティクスでよりスマートで速い製造を実現
- 決定版:トップ10産業用IoTプラットフォームガイド(2024年版)
- IIoTのトレンドと課題:データ過多、製造シフト、スキルギャップ
- エッジ・コンピューティングとIIoT:産業データ戦略の変革
- AIとMLで実用的なエッジインサイトを引き出す
- イノベーションを加速:エッジコンピューティングが自動車業界をどう変革するか