おはようございます!!
先日、こちら↓の記事を書かせていただきました。
スマートリモコンの学習キットの「sLab-Remo2」ですね!!
前回まで6回分じっくり確認してきましたが、さらに確認作業を続けてみます。
今回はスケッチの確認⑤まで行いました!
目次
スマートリモコン「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-3です!!
5-3.AIスピーカ連携/屋外スマホ/GPS連携
こちらですね。
今回の目標は、スケッチの確認の続きです。
もういまさらなので急ぎません・・・1歩ずつ前進します。
スケッチ(制御ソフトウェア)⑤
引き続き、サンプルコードを解読していきたいと思います。
前々回まとめたのは↓こちらですね。
サンプルコードはこちらですね。(Zipファイル)
現時点で「sLab-Remo2_ver202005_2.zip」となっていました。(こちらのイラストを拝借させていただいて)わかりやすいように構成図を書いてみます。
Webブラウザ部分の構成は同じですが、スケッチ部分が全然違いますね。
そもそも、音声コマンドで動かすのに、なぜWebブラウザが必要なのでしょうか??
先にWebサーバー部分を確認しましたが、実は全く同じでした。
今回はスケッチの部分の2回目です。元となるのはこちら↓の記事ですね。
・・・で、メインの5_3_aispeaker.inoは前回終わりましたので、今回は残りの3つのプログラムです。
config.h
4_3のプログラムには存在しないですね。5_3_aispeaker.inoから呼び出されてます。
探してみると・・・5.2で出てきてました。(↓ダイレクトに飛びます)
今回も丁寧に解説してありますね。
最初のピン配置へ25 →12に変更でしたね。
そしてWifi設定は自宅のWifiルーターの条件に合わせて変更。
最後のBeebotteのところは・・・書き換えるときに振り返りましょう!!!変数の設定だけなので、フローチャートは省略でいいですね!!(ホッ!)
比較してみると・・・結構違いますね(汗)
LEDのところは既に修正されていますね。
基本的にWifi関係の初期設定なのですが、リモコン関係のデータ保存用の構造体宣言や配列宣言などが追加されてますね。Beebotteのところは同じですね。
(フローチャート(みたいなもの笑)は省略させていただきます)
irRecvSend.ino
4_3のプログラムに存在しますね。(↓ダイレクトに飛びます)
・・・で、比較したらいろいろと変わってまして(泣)フローチャート作り直しました。
1つ目はsetRemocon()ですね!!
こちらはリモコン信号を学習させる関数ですね。タイムアウトの表示が変更になってました。
2つ目はsaveIr()ですね。これは全く同じでした!!
ボタン名をEEPROMへ書き込み、リモコンデータをファイルへ保存します。
3つ目はcontRemocon ()ですね!!赤外線送信処理です。
ここは大きく変わっていました(大泣)・・・が、小変更ですね。
4つ目はmicroWait()ですね!!・・・これは過去にも出てきた時間待ちの関数ですね。
中身は空白行ぐらいしか変わっていませんでしたので省略します。
web.ino
このファイルは新規ですね。Webサーバーの処理みたいです。
まとめ
ようやく終わりましたが・・・難解です。
これは素人の理解できるレベルではありません。
・・・と言っていても仕方ないので、引き続き頑張ります。
次回はファイル作成と転送ですね。もう少し少し・・・
以上です!!
頭がクラクラ・・・
(おわり)