IoTとMQTT入門:コード不要のESP8266チュートリアル
MQTTは、ほとんどのIoTソリューションの基盤となる軽量メッセージングプロトコルです。このガイドでは、ESP8266センサーがデータをRaspberry Pi上のNode-REDに送信し、ライブダッシュボードで可視化するまでの完全なワークフローを、コードを書かずに構築する方法を解説します。
IoTにおけるMQTTの重要性
MQTTのパブリッシュ/サブスクライブモデルは、ネットワークトラフィックを最小限に抑え、不安定または低帯域幅の接続環境でも動作するよう設計されています。これは、多くのIoT導入現場で求められる要件と完全に一致します。Arduino、MQTT、Node-REDといったオープン標準を活用することで、一行のコードも書かずに迅速なプロトタイピングが可能になります。
必要なもの
- ESP8266モジュール(ここでは「IoT Octopus」と呼称)とBosch BME280センサー(温度、気圧、湿度)
- Raspberry PiとRaspbian(2018-06-27リリースで動作確認済み)
- Node-RED(新しいRaspbianイメージにはプリインストール済み、なければ手動インストール)
- Mosquitto MQTTブローカー – https://mosquitto.org
- Arduino IDE 1.8.5(IoT Werkstattパッケージにポータブル版が同梱)
- Ardublock – Arduinoコードを自動生成するビジュアルブロックエディタ
ステップ1:IoT Werkstattパッケージのダウンロード
IoT WerkstattのZIPファイルを入手します。ポータブル版Arduino 1.8.5、必要なライブラリ、Ardublock、そして一般的なIoTタスク向けの「スーパーブロック」がバンドルされています。
ステップ2:ESP8266の準備
Ardublockを開き、付属のXMLプロジェクトを読み込みます。Wi-FiのSSID/パスワードを設定し、MQTT設定をRaspberry Piのブローカーアドレスに向けます。Bosch BME280センサーを選択し、測定項目ごとに固有のトピックを作成します(例:home/room1/temperature)。
Octopusへアップロードをクリックすると、Arduino IDEが生成されたスケッチをコンパイルしてESP8266に書き込みます。起動後、デバイスはセンサーデータをMQTTブローカーへ送信し始めます。
ステップ3:Raspberry PiへのMQTTブローカーのセットアップ
Pi上でMosquittoをインストールします:
sudo apt-get update sudo apt-get install mosquitto mosquitto-clients
ブローカーは自動的に起動します(基本的なローカル設定では追加設定不要)。
ステップ4:Node-REDフローのインポート
Node-RED(https://localhost:1880)を開き、付属のフローJSONを貼り付けます。各MQTT入力ノードをダブルクリックして、ブローカーアドレスと認証情報を設定します。
右側のデバッグパネルに、ESP8266が送信を開始するとメッセージが表示されます。
ステップ5:ダッシュボードの追加
Node-REDでnode-red-dashboardパレットノードをインストールします。フローにはすでにダッシュボードUIの設定が含まれています。
インストール後、ダッシュボードはhttps://localhost:1880/uiでアクセス可能になり、温度、気圧、湿度のライブグラフが表示されます。
オプション:ダッシュボードの保護
UIを保護するには、Node-REDのセキュリティドキュメント(https://nodered.org/docs/security)に従い、settings.jsでhttpNodeAuthを有効化します。
Raspberry Piクイックスタートチェックリスト
- 公式Raspberry PiサイトからRaspbianをダウンロードし、32GBのSDカードに書き込みます。
- ヘッドレスセットアップのためにWi-FiとSSHを有効化:
/bootパーティションに空のsshファイルを作成。- ネットワーク詳細を記した
wpa_supplicant.confファイルを配置:
country=US ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="YourNetworkSSID" psk="YourNetworkPassphrase" key_mgmt=WPA-PSK } - Piを起動し、OSをアップグレード:
sudo apt-get update sudo apt-get upgrade
- Mosquittoをインストール(ステップ3参照)。
- Node-REDがプリインストールされていない場合、以下を実行:
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
- Node-REDの自動起動を有効化:
sudo systemctl enable nodered.service
- Node-REDダッシュボードノードをインストール:
sudo apt-get install npm sudo npm install -g npm hash -r cd ~/.node-red npm i node-red-dashboard node-red-start
起動後、Node-REDはhttps://localhost:1880、ダッシュボードはhttps://localhost:1880/uiでアクセスできます。
Node-REDの管理
node-red-start– Node-REDを起動node-red-stop– Node-REDを停止sudo systemctl– サービスを制御sudo journalctl -f -u nodered -o cat– ログをリアルタイムで表示
次のステップ
機械学習でプロジェクトを拡張:PiにTensorFlowをインストール(pip3 install tensorflow)し、node-red-contrib-machine-learningパレットを追加して、ダッシュボードにAI機能を組み込みます。
参考資料
— 完了 —
製造プロセス
- 気象観測ステーションをCWOPと統合:実践ガイド
- PSoC 6 Pioneer BoardとIoT Add-On Shieldを極める:開発者向けガイド
- サイバーセキュリティをシンプルに:製造業者は「ゴールから逆算」で始めよ
- IoTがフィールドサービスに革命:予知保全と高ROIを実現
- スマートシティがIoT、マイクロサービス、ダッシュボードで効率的な資産管理を実現する方法
- IoTがモバイルアプリをどう変革し、ビジネスイノベーションを推進するか
- ポストパンデミック世界におけるIoTのブラインドスポットを解消する
- IoT World:VerticaのIoT分析向けビッグデータソリューション内幕
- 産業IoTにおける価値の再考:追跡から変革へ
- Software AGが予測するIoT成長の次の波
- テキスタイルの科学:酸性、反応、レザー、直接染料への深い潜入