おはようございます!!
先日、こちら↓の記事を書かせていただきました。
スマートリモコンの学習キットの「sLab-Remo2」ですね!!
前回は開発環境の準備②と動作確認まで行う予定だったのですが、残念ながらウンともスンとも言いませんでした。
今回はその続きです。なんとか原因を探らねば・・・
目次
スマートリモコン「sLab-Remo2」(エスラボリモ2)【Scratch・Arduino対応】環境センサ・カメラ付《IoT電子工作・AI学習・プログラミング》
こちらです!
4,290円でこれだけ遊べたら安いものです。(・・・と奧さんに言われています)
ちなみに、本キットの心臓部ESP32-DevKitCですが、Amazonさんで1,500円ぐらいで普通に買えますね。
Espressif社純正 ESP-WROOM-32D開発ボード ESP32-DevKitC-32D
壊してしまったら一大事!と思ってましたが・・・昼ごはん1回我慢すれば買えます(泣)
では、スタートします。
sLab-Remo2【クラウド利用編】
公式メニューのクラウド利用に入ります!(こちら)
これまでは自宅内での学習実験でしたが、ここからはネットに出ていくわけですね。
クラウド利用する電子工作について説明します。
クラウドを利用することで「メール通知」や「屋外から家電制御」、「AIスピーカ連携」など多くのことができるようになります。
仕組みについて以下に説明します。5-1.人を検知してリモコン制御とメール送信 (IFTTT)
5-2.屋外からの通信(プッシュ通知)
5-3.AIスピーカ連携/屋外スマホ/GPS連携
今回も5-2です。最終回の予定でしたが・・・
5-2.屋外からの通信(プッシュ通知)
こちらですね。
IoT端末をクラウドに接続する通信プロトコルはMQTT、HTTP、WebSocket などいくつか利用されていますが、今回はMQTTを用いてクラウドに接続する電子工作を行います。
MQTTでクラウドに常時接続することで屋外からの通信を可能にします。
利用するクラウドについては無料で一定量まで利用できMQTT機能だけでなくHTTPでもアクセスできるREST-API機能を有している「Beebotte」を利用します。REST-API機能はHTTP通信で容易に連携できるため多くのシステムで用いられています。また、Beebotteは1日に50,000メッセージを無料で利用できますので、学習などの利用なら問題なく利用できます。構成イメージを以下に示します。
いきなり専門用語が山ほど出てきましたので、ゆっくり基礎を固めながら、前回は開発環境の準備の残りと動作確認(※ ただし失敗)まで行いました。
今回は動作不良原因調査と動作確認です。
動作不良原因調査
前回、コマンドラインからcurlコマンドを実行しても・・・
残念ながら反応がありませでした。MQTTの待ちのままです。
Beebotteも確認したのですが、
永続データなし・・・データが来てないってことでしょうか。
・・・その後、こちらやこちらなどを読んでみたのですが、よく理解できません。
よく「インターネットで調べると書いてあります」と言われるのですが、書かれていることのレベルまで達しなければ全然理解できません。まるで英語で書いてあるようなものです。
それ以前に、たとえ目の前にあっても気づきません。これが辛いんです。
robo8080さんにも相談しながら設定内容を確認したのですが、どうしても原因が見つかりませんでした。
公式ページの解説を何度も読み返していたら、7/2に更新されていたことに気づきました。
問い合わせていた内容ですね。
「証明書は定期的に更新されます」・・・もしや!!・・・あっ!やっぱり!!
いつの間にか変わっていました。これが原因で動かなかった可能性があります。
エディターでconfig.hを書き換えて再度フォルダに送り、ArduinoIDEを立ち上げ直して読み込んでいることを確認しました。
動作確認・・・うごいた!!
上の状態から、リセットボタンを押すと・・・おお!!
シリアルモニターにMQTT Connectedと表示されました!!
これはESP32がBeeBotteサーバーと繋がったということですね!!
続いて、コマンドラインからcurlコマンドを・・・えいっ!!
無事「true」と返ってきましたので、シリアルモニターを覗いてみると・・・
おお!!ちゃんと反応しています。
間違いなく、コマンドラインから打ち込んだコマンドがBeebotte経由でESP32に届いてるわけですね!!
今度はコマンドを「led_off」に変えてやってみます!!
はい、ちゃんとOFFで反応しています。バッチリですね!!・・・あれ?あれあれ??
バグは続くよどこまでも・・・よし!OK!!
ここまできて甘く考えていたLEDが点かないとは!!ちゃんとプログラムのピン配置は変更したのに・・・
とりあえず、マルチメーター(電圧計)!!・・・と考えたのですが、先に回路図から確認してみることにしました。
はい!GPIO12ですね・・・あれ?思いっきり間違ってました!!
>プログラムで[GPIO25]となっているところを[GPIO12]に変えること!!
なぜかプログラムが15になっています!!
どこで間違えたのかわかりませんが、さっさと12に治しました。
これで先程の手順を・・・はい!OKです!!
ONもOFFもコマンドからの操作で動作しました!!
まとめ
この章を始めたのが2/4なので5ヶ月ですね。ようやく終わりました。
結局原因はCA証明書だったということになります。(※ 古いものを使ってしまった)
定期的に更新されるとのことですが、今回のESP32などの組み込み用マイコンなどでは(パソコンやスマホと違って)簡単に書き換えるわけにはいかないはず。
みなさん、どうされているんでしょうね?
もしくは、更新頻度がかなり長いのに「たまたま」引っかかってしまったのか・・・
次回はスマホで家電操作です。
久しぶり過ぎて、今どの辺にいるかサッパリわかりません(泣)
以上です!!
でも、ホントに原因を見つけるのが大変でした。
今後、何度も何度も使っていけば、どこを見ればわかるのでしょう。もしくは、なんらかの方法で順番にチェックしていって見つけ出すのか・・・
(おわり)