続いて、Node-REDの設定を進めていきます。
目的:PLC や Raspberry Pi からのデータをクラウドVPSで受信・可視化したい
Step 1:VPSのNode-REDに MQTT ブローカを導入
Raspberry PiやPLCからMQTTでデータを送信
Mosquittoインストール(VPS上で実行):
sudo apt update
sudo apt install -y mosquitto mosquitto-clients
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
ファイアウォール許可:MQTTは1883を使用する
sudo ufw allow 1883/tcp
mosquitto.confに以下の記述を追記しておかないと接続状態にならないので注意
以下のファイルを開く
sudo nano /etc/mosquitto/mosquitto.conf
以下を追記して、Ctrl+o , Ctrl + x
listener 1883
allow_anonymous true
mosquittoの再起動
sudo systemctl restart mosquitto
ーーーーーーーーーーーーーーーーーーーーーーーここから補足ーーーーーーーーーーーーーー
✅ Mosquitto(MQTTブローカ)の役割
一言でいうと:
「センサやPLCなどから送られたデータを受け取り、それを必要な相手に配信する」メッセンジャー
MQTTの構成図とMosquittoの位置づけ
[センサ/PLC] ←→ [Mosquitto(ブローカ)] ←→ [Node-RED]
↑ ↓
Raspberry Pi ブラウザやスマホの画面表示
✅ なぜMosquittoが必要なのか?
役割 | 説明 |
---|---|
📡 データ受信の中心(ハブ) | 複数の送信元(ラズパイ、PLCなど)からのデータをまとめて受け取る |
🔁 Pub/Sub通信の制御 | 「publish(送信)」と「subscribe(購読)」の仕組みを中継 |
🧩 Node-REDなどと連携 | Node-REDのmqtt in ノードでデータをリアルタイムに受け取れる |
🔐 セキュア通信にも対応 | 認証(ユーザー名/パスワード)やTLS(HTTPS相当)での暗号化も可能 |
⚡ 軽量で高速 | IoT向けに非常に最適化されたプロトコルなので、ラズパイでも動作可 |
✅ MQTT通信のイメージ(Pub/Subモデル)
操作 | 具体例 |
---|---|
ラズパイが「温度28.5°C」を factory/temp トピックで publish | mosquitto_pub や Pythonなど |
Node-REDが factory/temp トピックを subscribe | mqtt in ノードで受信してグラフ化 |
✅ 具体的にNode-REDでどう使う?
1. mqtt in
ノードを設置
→ トピック例:factory/temp
2. サーバ設定:
- サーバ:
localhost
(VPS内にMosquittoを立てるなら) - ポート:
1883
- 認証なしでOK(初期)
3. debug
やui_chart
につなげる
→ データをリアルタイム表示
✅ まとめ:Mosquittoを導入すべき理由
理由 | 内容 |
---|---|
💡 通信のハブになる | ラズパイやPLCからのデータを集約してNode-REDへ |
💬 IoT通信の標準的手段 | MQTTは軽量かつ多くの機器でサポートされている |
🔄 Node-REDと直結できる | mqtt in/out ノードで簡単連携 |
🔐 将来的にセキュリティ強化も可能 | パスワード認証やTLS対応も可能 |
ーーーーーーーーーーーーーーーーーーーーーーーここまで補足ーーーーーーーーーーーーーー
Step 2:VPSのNode-REDで MQTT受信 → 可視化
準備:Node-REDのUI(エディタ)にアクセス
ブラウザから以下にアクセスしてください:
http://<VPSのIPアドレス>:1880
✅ MQTT入力ノードの設定
左側のノードパレットから mqtt in
をドラッグ
ダブルクリックで設定画面を開く
Server:
localhost:1883
Topic:
factory/temp
(任意、外部送信側と合わせる)QoS: 0(標準でOK)
※サーバの設定は初回なら「新規追加」で以下を設定:
項目 | 値 |
---|---|
サーバ | localhost (または 127.0.0.1 ) |
ポート | 1883 |
クライアントID | 空欄でOK |
認証 | 無効(未設定でOK) |
✅ 可視化(ダッシュボード)
1. ui_gauge
または ui_chart
を使用
node-red-dashboard インストール
cd ~/.node-red
npm install node-red-dashboard
再起動:
node-red-stop
node-red-start
例フロー構成:
[mqtt in (factory/temp)] → [json] → [ui_gauge]
json ノードは文字列データ({"value":28.5})をオブジェクト化します
ui_gauge ノードの「値」には msg.payload.value を指定

ダッシュボード確認:
ブラウザでアクセス:
http://<VPSのIPアドレス>:1880/ui
ここまででVPS側のNode-REDの設定は完了です。
次回はRaspberry Pi側の設定を行っていきます。
コメント