SSブログ

Grid-EYE(AMG88xx)データの無線伝送(3)

 これまで親機にはRaspberry piを使っていましたが、もっと安価なシステムにしようと思い、ESP32を検討して見ました。
検討用システムは写真1に示すようにESP-WROOM-32開発ボード(約1,500円)、2.8"グラフィックLCD MSP2807(約1,500円)とTWELITEを使ったものです。
ESP32はDual coreなので1つはTWELITEからのデータ取り込み専用に使うことが出来、データの取りこぼしが防げます。
またUARTは3つまで持つことが出来るので、TWELITE用とプログラム用に別々のポートを持てます。(ESP8266ではスイッチで切り換えていた。)
WiFi機能もありスピードも速いなど、値段の割には高機能なデバイスだと思います。

写真1 ESP32と2.8"グラフィックLCDを使ったプロトシステム
ESP32親機プロト写真.jpg


図1 写真1のシステムの回路図
ESP32親機回路.jpg

 子機1つで間隔200mSで受信パケットを調べたところ、Raspberry Pi & Pythonの時と違って同じパケット連番(FRC)を2回受信することはなく、また比較的順番通り受信することが殆どでした。
(Raspberry piの時は通信エラー判定されてTWELITEが再送信していたのかもしれません。ESP32で順調に受信できる理由はプログラム言語の違いなのか ハードウェアの違いなのか分かりませんが、Raspberry piを使う場合はC言語でトライする価値はあると思います。)
 グラフ表示も比較的高速で、受信と表示トータルでRaspberry piに比べるとグラフ表示までの時間が0.3秒位早いように思います。


ソフトウェア
ソフトウェア => ダウンロード
必要な修正情報 => 参照 (2021.09.17追加、2021.10.04更新)
スケッチ編集 => ダウンロード (2021.08.04 ヘッダーファイル編集追加)
LCDライブラリインストール方法 => ダウンロード

IDEはArduino IDEにESP-WROOM-32用ファイルを追加したものを使います。
方法はこちらを見て下さい。
https://garretlab.web.fc2.com/arduino/esp32/installation/


子機TWELITE設定
子機の送信間隔はインタラクティブモードで250mS程度に設定して下さい。
200mSでも受信できていましたが時々FRCが10(5回送信分=1秒)位飛ぶことがありました。
センサーが複数の時はもっと間隔を空けるようにしてください。(受信パケットのFRCを確認して番号があまり飛ばないような送信間隔にします。)


===== 関連記事 =====
Grid-EYE(AMG88xx)データの無線伝送(1)
Grid-EYE(AMG88xx)データの無線伝送(2)


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

nice! 0