おはようございます!!
もう2ヶ月ほど経ってしまいましたが、こちら↓の記事を書かせていただきました。
スマートリモコンの学習キットの「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メッセージを無料で利用できますので、学習などの利用なら問題なく利用できます。構成イメージを以下に示します。
いきなり専門用語が山ほど出てきましたので、ゆっくり基礎を固めながら、前回はBeebotteの利用設定まで行いました。
今回はスケッチの作成と開発環境の準備①まで行いました。
スケッチの作成
ファイルは2つなんですね!!
まずは、config.h(設定ファイル)です。
変更するところは、自宅のWifi設定とピン配置の変更、そしてBeebotteの設定ですね。
最後が大変そう・・・
Beebotteの設定は公式の手順のままで進めていると、トークンとCA証明書の2箇所の設定ですね。
トークンは前回の「token_・・・」で始まる文字列で良いとして、CA証明書って??
もしかして、IFTTTの時に取得したものと同じもの??4箇所ある中から抜き出して使う??
・・・で、サポートさんに問い合わせてみました。
こちらにつきましては、「5-1で取得したブラウザの証明書」はIFTTT用となっておりますので、Beebotte用の証明書を設定する必要がございます。
Beebotteは以下のURLから証明書が提供されておりますので、それをConfig.h
に設定頂きますようよろしくお願いします。
提供スケッチで既に設定されているかと思いますので、同様に設定頂ければと
思います。
そうかそうか、CA証明書ってBeebotte用が必要なんですね!!(← こんなレベルです)
URLをブラウザに入力するとpemファイルがダウンロードされるのですが、4ブロックあってどれを使えばいいかよくわかりま・・・あっ!こちらからダウンロードできるサンプルスケッチを開いて、コピペすればいいんですね!!
(※ 実は、いつも解説ページにあるスケッチを使ってました)
ちなみに、このCA証明書はIFTTTの時はdepth=2の証明書部分を使っていたのですが、Beebotteのは全てなんですね。
なぜそうするのか?は・・・いつか理解できる日が来るでしょう。(くるのか?)
・・・で、もう1つのファイルはmqtt.ino(スケッチファイル)ですね。
これはそのままでいいですね。
開発環境準備①(ファイルの配置)
まずはArduinoIDEでの準備です。
スケッチファイルが複数になると確か面倒でしたね・・・
完全に忘れてたので、以前の記事を引っ張り出してきました。
・・・うん、(この時に比べると)今回のはまだラクチン!!
とりあえず、先にフォルダを用意しファイルを置いてからArduinoIDEに読み込ませることにしました。
私の場合、データフォルダはマイドキュメントのArduinoのslab-Remo2でした。
(※実はすっかり忘れていたので探しました)
過去のスケッチがありますね。最初の方は項目番号付けなかったので順番がムチャクチャですが・・・
ここに今回の5_2_mqttフォルダを作り、2つのファイルを入れる・・・
次は、これをArduino-IDEから読み込みます。ファイルを指定するんですね・・・
・・・実は、後から確認して気づいたのですが、公式の解説ページにあるファイル名は「5_2_mqtt.ino」ですが、ダウンロードされずZipファイルのサンプルスケッチは「5_2_push.ino」なんですね。私は後者を使ったので不一致になってしまったようです。
とりあえず、特に動作は問題ない(と思います)ので、このままOKしました。
名前はpushですが無事読み込めているようです・・・が、隣のタブにconfig.hが表示されません。
何かおかしいので、フォルダを確認してみました。
どうも新しく5_2_pushフォルダが作られたのは5_2_mqttフォルダの中だったようです。
それを開いてしまったので、config.hが行方不明になってしまったようです。
混乱の元なので、フォルダを上の階層に上げて1本化することにしました。
これで5_2_push内に2つのファイルが配置されました。
ArduinoIDEから再度読み込ませます!
よしよし!横にうっすらconfig.hのタブが見えますね。開いてみます。
はい、ちゃんと認識しています。
念のため、この時点で左端の検証ボタンからコンパイルしてみました。
まとめ
ここまで来たらあとは動作確認!!・・・だったのですが、道を曲がったらまだ先に道が・・・
次回は残りの準備と動作確認まで終わりたいと思います。
以上です!!
「残りの準備」=私の大嫌いなCUIな環境です。
昔(MS-DOSの時代)は全く平気だったのですが、今はその後遺症で見るだけで寒気がしてしまいます。
10年後には無くなると言われていたものが、しっかりと存在してるんですね。
(おわり)