NodeMCUとは
NodeMCUはAP,STA,AP+STAの3つのモードが搭載している非常に人気あるマイクロコントローラです。ESP8266搭載 -Arduino IDEに完備対応し、安くて良質なチップです。ArduinoIDEに熟練者の場合、簡単にプログラムしできます。
目的
このプロジェクトではNodeMCUボードを使って、MQTT brokerからのIoTメッセージを購読して、1602 I2C
LCDにメッセージを表示します。
MQTTは非常に人気あるIOTプロトコルとして、インタネットを通じで、異なるのディバイス間の通信が実現できます。デバイス間のブリッジがMQTTブローカーと呼ばれています。各ディバイスはMQTTブローカーからメッセージを簡単に申し込む(獲得)しできますし、MQTTブローカーへメッセージを簡単にパブリッシュ(送信)しできます。
必要なパーツ
必要なパーツ
|
数量
|
NodeMCU ボード
|
1
|
I2C LCD
|
1
|
ジャンプワイヤー
|
若干
|
配線図
プログラム前の準備:
Arduino IDEの設定について:
Libraryのインストール:
MQTT brokerと通信のため、ArduinoIDEにMQTT クライアントlibrary をインストールして下さい:
下記のリンクでLiquidCrystal_I2C library をダウンロードして下さい:
https://osoyoo.com/wp-content/uploads/2016/12/LiquidCrystal_I2C.rar
上記のリンクでのZIP(rar)ファイルをダウンロードして、解凍したフォルダをArduino IDE library フォルダに移動して下さい。
次のリンクでサンプルコードをダウンロードして下さい。
esp8266_i2c_1602.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の内容を変更して下さい。
コードをロードする
常識ですが、デバイスはコマンドの受信やメッセージを送信のため、I2C アドレスがありますね。
普段は0x27というアドレスがありますが、 0x37,0x24 ….,などに変更した事もあります。そのため、I2C アドレスを探して、上記のコードでのI2C アドレスを実際の数値を切り替えしたら、コードをロードしてくださいませ。 下記の文章のStep4をご参照して、実際のI2C アドレスを探してくださいませ。
コードをロード完了しましたら、Arduino IDEのserialモニター窓を開けて下さい。
お客様のルーターのSSIDとパスワードが正しく入力されたとMQTT brokerに接続済みの場合、次のように表示します:
NodeMCUボードとwifi、MQTT brokerが正しく接続したの場合、MQTT brokerを購読して、メッセージを待ちます。MQTT
クライアントを使って、メッセージを発表して、NodeMCUボードの受信テストします。
Google、AppleStore、GooglePlayで無料MQTT クライアントツール沢山ありますので、ご自由にインストールして下さい。 この文章ではMQTTBox(Windows)
を使用します:
MQTTBox を開けて、次のように設定して下さい:
Save ボダンをクリックして、「Topic to publish」に入って、次のように設定して下さい:
NodeMCUコードのclient.subscribe(“OsoyooCommand”) fuction とMQTTBOX Topicを統一して下さい。
payload 欄に”Hello World” を発表したら、i2c LCDで同じ情報を表示します。
DownLoad Url osoyoo.com