おはようございます!!
先日、こちら↓の記事を書かせていただきました。
スマートリモコンの学習キットの「sLab-Remo2」ですね!!
上に貼ってるアイコンまでグチャグチャしてきましたね。完全に弱ってます。
・・・でも、手が動くあるうちは頑張らねば!!
前回はスケッチの作成と開発環境の準備①まで行いました!!
普通なら9割方終わってるんですが・・・ふぅぅ
今回は開発環境の準備②と動作確認まで・・・の予定だったのですが(泣)
目次
スマートリモコン「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の利用設定まで行いました。
今回は開発環境の準備②と動作確認まで・・・の予定でした。
開発環境準備②(curl動作環境の確認)
公式では動作確認の手順内の話なのですが、curlというもの(※全く理解できていません(泣))が動作する環境を作らなければいけません。
私の場合Windowsなので、こちら↓の部分ですね。
コマンドラインから「curl」と入力し、それに続く魔法の呪文を書くようです。
curl https://api.beebotte.com/v1/data/publish/TestChannel/resource1?token=###TOKEN### -H “Content-Type: application/json” -d “{\”data\”:\”led_on\”}” -X POST
(※ TOKENは個別に取得したものに書き換えます)
でも、そもそもcurlって何なのでしょう?
Wikiによると「さまざまなプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供するプロジェクトである。cURLプロジェクトは libcurl と curl の2つの成果を生んでいる。」と書かれています。
猿でもわかるように書いてほしいです(泣)・・・あっ!こちらがわかりやすいですね!!
コマンドラインからURL指定してデータ引っ張ってこられるツール、という理解をした。
データを引っ張ってこられる??・・・とりあえず、URLを指定していろいろゴニョゴニョできるプログラムとしておきます。
・・・で、私の環境でとりあえずCurlコマンドだけ試してみたところ認識しませんでした。
インストールしないとダメなようですので、curlをWindows10にインストールするのページを確認し、こちらからダウンロードしました。
curl-7.77.0_2-win64-mingw.zipというファイルがダウンロードできました。
WinRARという解凍ソフトで中身を確認すると・・・
これですね!中身全体をC:\pg\curlにコピーしました。
試しにコマンドラインから叩いてみます。バージョン表示ですね。
はい!無事動作し、表示されました。
このままでは扱いづらいので環境変数のpathに追加しておきます。
はい・・・で、今度はパス名無しでダイレクトにコマンドを実行してみました!
バッチリ!ですね。これでcurlが動作するようになりました!!
・・・昔はこんな面倒なことをよくやりましたが、まさか数10年後にやることになるとは思いませんでした(泣)
ようやく動作確認(泣)
早い人なら数時間で終わるんでしょうね。
まさか何ヶ月もかかるとは・・・いえ、まだ終わってませんが・・・
ここからですね。コンパイルが終わったところ・・・
念のため、リセットして立ち上げ直してみます。シリアルモニターを見ると・・・
ちゃんとWifiに接続してMQTTの待機状態になっています。
今度は、先程のcurlからのコマンド入力ですね。
事前にTokenのところを書き換えてコピーしておいて、右クリックからペーストして実行してみました!!
無事「true」と返ってきましたので、シリアルモニターを覗いてみたのですが・・・
残念ながら反応がありません。MQTTの待ちのままです。
当然ながら本体のLEDも変化がありません。当たり前ですね。
何度か繰り返したり、やり直したりしたのですが変化がありません。
何かログのようなものがないかと思ってBeebotteを確認したのですが、
No Persisted Data って直訳すると永続データなし・・・データが来てないってことでしょうか??
・・・ちょっと手に負えそうにありませんので、次回に持ち越します。
まとめ
なかなか歯ごたえが・・・いや、手応えが・・・
以上です!!
だんだん情報が少なくなってきました。
情報があっても環境が違っていたり、断片的に書かれて終わっていたりと、そのまま使えなかったりします。
この壁は越えられるのでしょうか?
(おわり)