NodeMCUとは
NodeMCUはAP,STA,AP+STAの3つのモードが搭載している非常に人気あるマイクロコントローラです。ESP8266搭載 -Arduino IDEに完備対応し、安くて良質なチップです。ArduinoIDEに熟練者の場合、簡単にプログラムしできます。
目的
このプロジェクトでは、NodeMCUを使って、光センサーからの光強度データを獲得し、テータをMQTT borkerサーバーに発表します。もう一つのMQTTクライアントソフはこのデータ(メッセージ)を購読して、リアルタイムの光強度値を獲得します。
必要なパーツ
ディバイス
|
数量
|
NodeMCU ボード
|
1
|
ブレッドボード
|
1
|
光センサー
|
1
|
抵抗(1k)
|
1
|
ジャンプワイヤー
|
若干
|
配線図
プログラム前の準備:
Arduino IDEの設定について:
Libraryのインストール:
MQTT brokerと通信のため、ArduinoIDEにMQTT クライアントlibrary をインストールして下さい
上記のリンクでのZIPファイルをダウンロードして、解凍したフォルダをArduino IDE library フォルダに移動して下さい。
次のリンクでサンプルコードをダウンロードして下さい
nodemcu-Photoresistor.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サーバーに接続したら、「OsoyooData」と言うタイトルの光強度値メッセージをMQTT
brokerサーバーに発表します。MQTT クライアントソフトウエアを使って、”OsoyooData”
というタイトルのメッセージを購読して、遠隔場所でのリアルタイムの光強度値を表示します。
Google、AppleStore、GooglePlayで無料MQTT クライアントツール沢山ありますので、ご自由にインストールして下さい。 この文章ではMQTTBox(Windows)
を使用します:
MQTTBox を開けて、次のように設定して下さい:
ご注意:
Host :broker.mqttdashboard.com:1883 , このMQTT brokerアドレスは次の「mqtt_server variable」と同じです。 “:1883”
はMQTTのデフォルトポートです。
Will – Topic : OsoyooData この部分はNodeMCU client.publish()functionと統一して下さい。
プロトコル: mqtt/tcp
もっと知りたい?「MQTTBox Client Setting Help」をご覧ください~
Save ボダンをクリックして、「pop-up」 windowが見えます:
Subscribe ボダンをクリックして、リアルタイムの光強度数値が見えます:
Arduino IDEのSerialモニターwindowを開けて、光強度も見えます。この数値とMQTTBox に表示される数値は同じはずです。
DownLoad Url osoyoo.com