目的
このプロジェクトでは、制御コマンドをIoTディバイスへの送信を紹介します。サンプルディバイスはNodeMCUボードと接続済みのLEDです。NodeMCUはAP,STA,AP+STAの3つのモードが搭載している非常に人気あるマイクロコントローラです。ESP8266搭載 -Arduino IDEに完備対応し、安くて良質なチップです。MQTTは非常に人気あるIOTプロトコルとして、インタネットを通じで、異なるのディバイス間の通信が実現できます。デバイス間のブリッジがMQTTブローカーと呼ばれています。各ディバイスはMQTTブローカーからメッセージを簡単に申し込む(獲得)しできますし、MQTTブローカーへメッセージを簡単にパブリッシュ(送信)しできます。
必要なパーツ
NodeMCU ボードx 1
LED x 1
220 ohm 抵抗x 1
Breadboard x 1
ジャンプワイヤー
配線図
プログラム前の準備:
Arduino IDEの設定について:
Libraryのインストール:
MQTT brokerと通信のため、ArduinoIDEにMQTT クライアントlibrary をインストールして下さい。
上記のリンクでのZIPファイルをダウンロードして、解凍したフォルダをArduino IDE library フォルダに移動して下さい。
次のリンクでサンプルコードをダウンロードして下さい。
https://osoyoo.com/wp-content/uploads/samplecode/nodemcu-led.txtコードをArduino IDEにコーピーして、 ロードの前に、下記のように編集して下さい。
1)Line 19 と20:
const char* ssid = “your_hotspot_ssid“
const char* password = “your_hotspot_password“
赤字の部分をお宅のルーターのSSIDとルーターのパスワードを切り替えして下さい。
2)Line 21
const char* mqtt_server = “broker.emqx.io“;
赤字も部分はお客様自弁のMQTT broker URLやIPアドレスも切り替えすることはできます。他の無料なMQTTサーバーもお勧めます:“broker.emqx.io” ”iot.eclipse.org”
お客様自弁のMQTT brokerサーバーをUbuntu Linuxにインストールしたいの場合、次の文章をご参照下さい:https://osoyoo.com/ja/2016/09/07/how-to-install-mosquitto-mqtt-server-on-linux
3)もし、お客様のMQTTサーバーはユーザー名とパスワードが必要の場合、Line86の内容を変更して下さい。
コードをロードして下さい
コードをロード完了しましたら、Arduino IDEのserialモニター窓を開けて下さい。
お客様のルーターのSSIDとパスワードが正しく入力されたとMQTT brokerに接続済みの場合、次のように表示します:
NodeMCUとWifi、MQTT brokerサーバーを接続完了したら、 topic 「OsoyooCommand」のメッセージを購読します。
メッセージは1の場合、LEDは点灯します。メッセージは0の場合、LEDは消灯します。 Linux Mosquitto mqtt クライアントソフト(参考文章 https://osoyoo.com/ja/2016/09/26/2610/)を使って、メッセージ(0または1)を送信して下さい。次のように表示します。
下記のlinux commandを発信したら、LEDは点灯します。
mosquitto_pub -h broker.emqx.io -t “OsoyooCommand” -m “1”
下記のlinux commandを発信したら、LEDは消灯します。
mosquitto_pub -h broker.emqx.io -t “OsoyooCommand” -m “0”
DownLoad Url osoyoo.com