WebSocketでIIoTエッジ開発を強化:安全でリアルタイムな接続性
編集者注:産業用IoT(IIoT)は産業運用への深い洞察を提供し、接続された機械とシステムの効率を向上させることを約束します。大規模IIoTアプリケーションは、幅広いセンサーからデータを収集し、データを確実かつ安全にクラウドに移動し、その洞察と効率を提供するために必要な分析を実行するために、階層型アーキテクチャに依存しています。『産業用インターネットアプリケーション開発』では、著者らがIIoTアーキテクチャを詳細に検証し、これらのシステムに関連する幅広い要件を満たすアプローチについて議論しています。
『産業用インターネットアプリケーション開発』より抜粋、Alena Traukina、Jayant Thomas、Prashant Tyagi、Kishore Reddipalli著。
第3章. IIoTエッジ開発(続き)
Alena Traukina、Jayant Thomas、Prashant Tyagi、Kishore Reddipalli著
アプリケーション層プロトコル – WebSocket
このセクションでは、Raspberry PiハブとWebSocketプロトコルを使用して、XD-80光センサーモジュールから受信デバイスへデータを送信するシンプルなIoTアプリの構築を試みます:

XD-80センサーから受信デバイスへのデータフロー
WebSocketは、リアルタイムデータの高速転送を可能にする必要がある場合に最も広く使用されます。このプロトコルはクライアントとサーバー間の双方向通信を可能にし、同じTCP接続を使用して複数のメッセージをストリーミングできるため、通信オーバーヘッドを削減します。
以下の表で、プロトコルのより詳細な説明を見て、あなたのニーズに適しているかどうかを判断できます:
| キー | 値 |
|---|---|
| オープンソース | はい |
| OSI層 | アプリケーション |
| データタイプ | 文字列 |
| 制限 | 大量のバイナリデータには不向き |
| 可能な操作 | データ送信/受信 |
| レイテンシ | 非常に低い |
| 用途 | リアルタイム通信 |
| セキュリティ | あり |
| 圧縮 | あり |
表3: WebSocketプロトコル仕様
アプリケーション構築には以下が必要です。
必要なソフトウェア:
- 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/)
必要なハードウェア:
- Raspberry Pi 3(モデルB)
- 電源アダプター(2A/5V)
- microSDカード(8GB以上)とSDアダプター
- XD-80光センサーモジュール
- ブレッドボードとデュポンケーブルセット
- 有線ネットワーク接続用Ethernetケーブル
デバイスの組み立て
アプリケーション構築前に、ブレッドボードを介してXD-80センサーをRaspberry Piに接続する必要があります。
SDカードの準備
SDカードを準備するには、以下の手順に従ってください:
- 最新のRaspbian LITEイメージをダウンロード(https://raspberrypi.org/downloads/raspbian/ で入手可能)。
- SDカードをコンピューターに接続し、Etcher(https://www.balena.io/etcher/)を使用してRaspbian
.imgファイルをSDカードに書き込みます。 - 以下のコマンドでSSHを有効化:
cd /Volumes/boot
touch ssh
- Wi-Fiを有効化するには、以下の内容で
confを作成:
network={
ssid="YOUR_SSID"
psk="YOUR_WIFI_PASSWORD"
}
Linuxコンソールでファイルを作成するには、ほとんどのLinuxディストリビューションにプリインストールされているGNU nanoエディターを使用できます。nano ファイル名 コマンドを実行し、表示される指示に従うだけです。
/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": { "rpio": "^0.9.16", "ws": "^2.3.1" }
}
/home/pi/sensor/index.jsファイルを以下の内容で作成し、REMOTE-SERVER-ADDRESS.comを実際の値に置き換え:
var WebSocket = require('ws');
var rpio = require('rpio');
var ws;
var receiver = 'ws://REMOTE-SERVER-ADDRESS.com:8080';
rpio.open(11, rpio.INPUT);
var establishConnection = function () {
ws = new WebSocket(receiver);
ws.on('close', establishConnection);
ws.on('error', establishConnection);
};
establishConnection();
var sendStatus = function () {
var status = rpio.read(11) === 0;
console.log('light status: ' + status);
var data = JSON.stringify({
device: 'raspberry',
timestamp: Date.now(),
light: status
});
try { ws.send(data); }
catch (e) {console.log('failed to send data to ' + receiver);}
setTimeout(sendStatus, 1000);
};
sendStatus();
/home/pi/sensor/Dockerfileファイルを以下の内容で作成:
FROM hypriot/rpi-node:boron-onbuild
モノのインターネットテクノロジー
- 産業用IoT(IIoT):定義、範囲、産業への影響
- モノのインターネット(IoE)をナビゲート:ハイパーコネクティビティ成功のためのベストプラクティス
- エッジコンピューティング:5つの落とし穴とその克服法
- 将来展望:生産卓越性に向けた産業用IoTの推進
- インダストリー4.0を昇華:エッジアナリティクスでよりスマートで速い製造を実現
- 決定版:トップ10産業用IoTプラットフォームガイド(2024年版)
- IIoTのトレンドと課題:データ過多、製造シフト、スキルギャップ
- エッジ・コンピューティングとIIoT:産業データ戦略の変革
- エッジコンピューティング:クラウド時代の新たな鼓動
- AIとMLで実用的なエッジインサイトを引き出す
- イノベーションを加速:エッジコンピューティングが自動車業界をどう変革するか