おはようございます!!
先日、こちら↓の記事を書かせていただきました。
スマートリモコンの学習キットの「sLab-Remo2」ですね!!
【データ利用②編】ということで、回路は以前のものそのままで、SPIFFSによるファイル操作を行いました。
・・・で、今回は【データ利用③-1編】で、スマホで家電操作(屋内)を学習しているところです。難易度高かったので2回に分けさせていただきました(泣)
目次
スマートリモコン「sLab-Remo2」(エスラボリモ2)【Scratch・Arduino対応】環境センサ・カメラ付《IoT電子工作・AI学習・プログラミング》
こちらです!
4,290円でこれだけ遊べたら安いものです。(・・・と奧さんに言われています)
ちなみに、本キットの心臓部ESP32-DevKitCですが、Amazonさんで1,500円ぐらいで普通に買えますね。
Espressif社純正 ESP-WROOM-32D開発ボード ESP32-DevKitC-32D
壊してしまったら一大事!と思ってましたが・・・昼ごはん1回我慢すれば買えます(泣)
では、スタートします。
sLab-Remo2【データ利用③編】
公式メニューのデータ利用に入ります!(こちら)
そろそろ中盤でしょうか?今回も データ利用を学習するわけですね!!
ESP32-DevKitC(ESP-WROOM-32)は4MByteのフラッシュメモリを実装しており、このフラッシュメモリを活用してデータを保存する方法が以下の2つあります。
(1)EEPROM(Electrically Erasable Programmable Read-Only Memory)
(2)SPIFFS (SPI Flash File System)
どちらかと言えば、パソコンやスマホにも使われている部品の中身の話になってきましたね。
スマホで家電操作(屋内)
こちらですね。
スマホで家電操作!・・・結構きましたね!!
過去に勉強した内容を使って、自宅内のみで使える赤外線リモコンを作成するんですね。
全体の構成
読み始めて面食らいました!!
これまでの内容から数段上がる内容ですので、ゆっくり理解していきたいと思います。
まず、この図ですね。
あまりフォルダ構成なんて考えていなかったのですが、今回はしっかり把握しておく必要があります。
公式の図にオレンジと緑でグループ分けしました。
- スケッチ部分(オレンジ)
Arduinoのスケッチファイルが2つで、通常のプログラムの書込。
. - Webサーバー部分(緑)
スマホで表示させるファイルが3つで、前回のSPIFFSのアップロードで書込。
まずはプログラムの把握をしないと始まりませんね。
スケッチ部分のプログラム
先程のオレンジのところですね。
はて・・・ino.ファイルってなんでしょうか?
拡張子なんてこれまで気にしてなかったのですが、Arduino-IDEのプログラムファイルだったんですね!!
前回の最後に作った「WebServer2」というスケッチは、こんな感じ↓で保存されていました。
・・・では1つ1つ確認してみます・・・長ぁっ!!
4_3_remocon.ino の内容は・・・
こちらはリモコンのメイン部分のプログラムですね。
長すぎて、初心者には辛いです(泣)
とりあえず、プログラムと解説を見比べながら、Webツール(こちら)を使ってフローチャートを作りました。(かなり適当ですが(笑))
内容的には、これまでのWebサーバープログラムを拡張し、ホームページにアクセスされる内容によって、処理を細かく変えています。
後半はgetRemocon()という関数で、EEPROMに保存されたリモコンデータを読み出してJSONという形式にして返す内容ですね。
・・・あっ、まだもう1つのプログラムがありました。
irRecvSend.inoの内容は・・・
こちらは残りの関数ですね。
(※ ファイルのサイズとかライン数とか、何らかの制限があるのかもしれません)
これもフローチャートを作りました。(かなりボロボロですが(泣))
ちょっと長いので4つに分けました。
1つ目はsetRemocon()ですね!!
2つ目はsaveIr()ですね!!
ボタン名をEEPROMへ書き込み、リモコンデータをファイルへ保存します。
3つ目はcontRemocon ()ですね!!赤外線送信処理です。
4つ目はmicroWait()ですね!!・・・これは過去にも出てきた時間待ちの関数ですね。
Webサーバー部分のプログラム
先程のグリーンのところですね。Webブラウザで表示される部分です。
先程のsaveIr()のところでも出てきましたし、しっかり動きを把握しておいた方が良いのですが・・・今回は端折らせていただきます。
まとめ
申し訳ありません。かなり長かったので【データ利用③-2編】に続かせていただきます。
・・・ちょっとやばくなってきました。
年内完成は無理かも(泣)
以上です!!
正直に言います。
あまりhtmlもjavaScriptも理解していません。
それを言うと、ここまでのC++(だそうです。今日知りました(汗))も適当です。
・・・でも、今後の為には理解しておいた方がいいのでしょうか?
ちょっと考えます。
(おわり)