みなさん、今晩は。トドお父さんです。
このプロジェクト、なかなか手ごわくて苦労しましたがようやく、プロトが動作しました。
前回 ESP8266基板を組んでLチカとWebサーバーのテストをしたところまででしたよね。
”本当にホビイストやDIYer、電子工作愛好家やオタクの人たちでも世の中を変えることが
できそうな気がしてきました!”って前のめりになっていましたが、これから苦労の連続でした。
バチがあたったのかもしれませんね。
今回は、IoTサーバーで、スマホやPCとESP8266基板を接続するところまで説明しますね。
今回使おうとしているのは、もともとの下記のYoutubeで使っているEasy IoTというサーバーです。
NRF24L01 (MySensors) Arduino balcony garden irrigation controller
NRF24L01というWifi基板も手に入れたのですが、日本で使うには技適(認証)がとれてないので、
認証が取れている中華製のESP8266というチップ(約500円)を使います。
このチップの入手と使い方はスイッチ・サイエンスさんのHPに詳しいので、こちらを参照下さい。
ESP-WROOM-02というモジュールにパッケージングされて、売られています。。
https://www.switch-science.com/catalog/2346/
先ほどのIOT-PLAYGRAUNDのBUILTにアクセスします。
IOT-PLAYGROUND.COM BUILT
ここの、下から4番目、下記のサイトにアクセスします。
NRF24L01というWifi基板から、ESP8266を使ったシステムに進化しています。
ESP8266 smart plant irrigation system
ESP8266チップのみを使って、 EIoTCloud ってMQTTサーバーを経由してIotでスマホまたはPCから
家庭菜園用(ここでは部屋の植木)の土の乾燥度を測定して、自動まは田手動で、備え付きのタンクから
ポンプで水やりをするシステムの説明があります。
下の画面のようなイメージで、土の乾燥度の確認と水やりポンプのON/OFF操作が行えるようです。
バーで示している数字は、自動で水やりをする際のスレッショールドになる乾燥度(ここでは83%以下に
なると自動で水やりをします)
モードはAuto(自動)とManual(手動)に切り替えがあり、手動にすると上で指定した乾燥度以下に
なっても水やりポンプをオンしません。このときは基板側についたスイッチか、このPCのGUIをOFFから
ONにドラッグすることで水やりポンプをオンします。
ポンプの動作時間はここにあるESP8266のプログラムでは10秒間に設定されています。
ポンプが切れると、画面のGUIがONからOFFになるので分かります。
再度 ONするときはGUIでON側に再びスイッチを切り替えるだけです(あるいは基板のSWを押す)
【下準備】
先のサイトの説明に従って、IoTを使うための準備をします。
まずは、下記にアクセスして、EasyIoT Cloud のユーザ登録をします。
https://easyiot-cloud.com/#page_autenticate_signup
サインアップをクリックして、Username、MailAddress、Password を入力して登録します。
登録が終ったら、下の画面から、ログインをクリックします。
グインしたら、Demo Spaceという画面になります。
これは、サンプルで自分のIoTのmodule は 下のDefault を押して表示します。
ここに、すでに2つのモジュールが登録されています。
モジュールの登録はいろいろな方法がるのですが、ESP8266を搭載した基板のファームに
MQTT.hライブラリをインクルードしてプログラムする最新の方式では、初回起動時にサーバ
にアクセスして自動登録する方式ですので、ここで手動でmoduleを登録する必要はありません。
ただし、moduleの登録がわかってないとプログラムは理解できないと思いますので、
ここで軽く説明したいと思います。
今回作った、自動水やりシステムの上にhumidity Sensorというモジュールがあります。
こではDHT22センサーで温度と湿度を表示する別のプロジェクトなのですが、この
設定を例に説明します。 まず、左下のConfigureを押します。
Module を押します。
一番上、Module ID #0 のモジュール番号が付与されました。
温度 ℃ がSensor.Parmeter1
湿度 % をSensor.Parameter2 にセットします。
まず、Sensor.Parameter1 の右端 の > をクリックします。
Unit のところに ℃ を入れます。
終ったら、一番下に行ってSave Parameterを押して、その後 Back を押します。
次に戻った画面でAdd Parameter
Sensor.Parameter2 が追加されます。
前と同様に、Prameter2の右端をクリックして、こんどはUnitiに % を入力してSaveします。
Back で戻ると、一番下、Module 0 が出て来ました。
アイコンが変なのは、まだプログラムから指示していないので、Genericのアイコンがでる
ためです。
アイコンは、Module Type (いまは、Generic(DI,AI) の値入力 type です) のWeb画面コントロールのJavaScriptの記述で制御しています。 この辺が理解できるまで、2か月かかりました(爆)
ぜんぜんEasyなIoTではないですね。 もっとオヤジフレンドリーな設計を希望しまつ
EasyIoTの使い方に終始して、大分、長文駄文になりましたが、ご容赦ください。
この2ヶ月間、ブログの更新が滞ったのは、この人の(チップのw)せいですよ。
ちゃんとした仕様書も、使った例も少なかったので読み解くまで本当に苦労しました。
それでは、次回は家庭菜園用のカスタムのModule Type を作って、プログラムを
動かしてCloudに登録する、一番重要なところを説明しますねー。
次回を乞うご期待くださいねー
それでは、おやすみなさい