NodeMCUとは
NodeMCUはAP,STA,AP+STAの3つのモードが搭載している非常に人気あるマイクロコントローラです。ESP8266搭載 -Arduino IDEに完備対応し、安くて良質なチップです。ArduinoIDEに熟練者の場合、簡単にプログラムしできます。
目的
このプロジェクトでは、サーボモーターとNodeMCUボードを接続して、MQTT クライアント(スマホ app・ ブラウザ・ linux terminal プログラムなど) を使って、制御信号をNodeMCUに送信して、
サーボモーターを制御します。MQTTクライアントから「0~180」の数値を送信したら、を送信したら、サーボモーターは数値のように回転します。
「0~180」の数値ではないと、サーボモーターは応答と移動はしません。
必要なパーツ:
NodeMCU ボードx 1
サーボモーターx 1
ブレッドボードx 1
5V電源アダプター x1
ジャンプワイヤー
配線図:
ご注意:できるだけ、サーボモーターの給電は専門5V電源アダプターを使用して下さい(5V電源アダプターとNodeMCUボードのグランドは接続してくださいませ。)
プログラム前の準備:
Arduino IDEの設定について:
Libraryのインストール:
MQTT brokerと通信のため、ArduinoIDEにMQTT クライアントlibrary をインストールして下さい:
上記のリンクでのZIPファイルをダウンロードして、解凍したフォルダをArduino IDE library フォルダに移動して下さい。
次のリンクでサンプルコードをダウンロードして下さい。
https://osoyoo.com/wp-content/uploads/2016/12/esp8266mqtt_servo.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サーバーに接続したら、MQTT brokerを購読して、メッセージを待ちます。MQTTクライアントを使って、メッセージを発表して、NodeMCUボードの受信テストします。
Google、AppleStore、GooglePlayで無料MQTT クライアントツール沢山ありますので、ご自由にインストールして下さい。 この文章ではMQTTBox(Windows)
を使用します。
MQTTBoxの設定について、この文章をご参照: https://osoyoo.com/ja/2016/12/02/nodemcu-potentiometer-mqtt/
DownLoad Url osoyoo.com
Save ボダンをクリックして、 「publisher」と「Subscriber」画面で「Add」ボダンをクリックして、新しい publisherを作ります。publisherで下記のようにに設定して下さい。
Payload欄に0~180任意な数値を入力したら、サーボモーターは数値のように回転します。0~180以外の数値を入力したら、サーボモーターは動作しません。