2020/10/31

ESP-WROOM-32(ESP32)で 無線リモコン(送信側)


 電流モニタを作ったことで、副作用的に動作確認出来るようになったのは、大きな進歩。Arduino の工作で省電力絡みなら、もはや無いと話にならない。オシロとか論外にしても、PCに接続できるテスタも、けっこういい値段すると思うので、INA219 はおススメ。裸のESP32 の書き込みとデバッグには、ESP-01用のアダプタを流用する。ESP8266 用なので、3.3V でそのまま使える。

 仕切り直しで、新たなベースとなるリモコン、NECパソコン用?を使い始めた。NECの製品なのに、赤外線信号は、家製協(AEHA)フォーマットっぽい。でも、リピート信号も同じデータ流しつづけるから、独自フォーマットなのかも。

 ボタンを離したときも信号が出力されるので、ボタンダウン→ボタンアップの2回の送信を1セットとする。省エネ的に、長押しのリピートは無駄。ESP じゃない、2.4G のリモコン作り始めた当初は、この方式にしてたが、誤動作が多くて諦めた。

 とりあえず、実用になるかわからないが、うまくいくと下図のようになる。途中のリピート信号を無視(といっても、割り込みで、スリープ解除されてしまうが)して、最初と最後だけ送信する。

2020/10/28

INA219 モジュールで電流測定、その2


 より詳細にデータ取得するべく、WEMOS Lolin32(ESP32) を使って組んでみた。INA219モジュールの他は、押せなくなったリセットボタンの追加と、自動書き込み失敗防止のコンデンサ、あと、ケーブルで引き出した測定開始スイッチ。


 測定データは、一旦、メモリに貯めた後、USBシリアルで、Lazarus で作ったへっぽこなチャートソフトにまとめて転送する。ESP32 なのに、WiFi のワの字も無いが、高速なArduino として、コスパは断トツ。



 数値の正確さはともかく、電流消費の相対的な値の確認ぐらいには使えると思う。上グラフは、赤外線リモコンを調べたもの。SONYプロトコルと、NECプロトコルの違いが良くわかる。NECのは、リピート信号のみ送っているので省エネだが、先頭の値の取得を失敗できない。



 ESP32 単体のグラフ。ライトスリープ → ESPNOW 送信x4 → ライトスリープ。ディープスリープでは、立ち上げに時間がかかりすぎて駄目っぽい。グラフにしてみると、デバッグにとても便利。

2020/10/21

ESP-01 USB-to-serial adapters で書き込み可能にする


 Aliexpress あたりで安く売っている CH340 がのったUSB-シリアルの変換アダプタ。そのままだと書き込み済みモジュールの実行だけだが、スイッチを追加すれば、書き込みも可能になる。ESP8266 / ESP32 は、立ち上げ時の GPIO0のLOW/HIGHで、モードの切り替えが出来る。


 GPIO0-GNDにスライドスイッチ、RST-GNDにタクトスイッチを追加。

 スライドスイッチONにして、RSTボタン押せば、書き込みモード。OFFにして、RSTボタンならプログラム実行。

 以前、自作した書き込み治具よりもコンパクトかつ、安上がり。



 シリアルモニタ 74880 bps にするとモードの確認が出来る。ESP-01 のリセットで、boot mode:(1,?) なら書込みモード。boot mode:(3,?) なら実行モードかな。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2020/10/02

INA219 モジュールで電流測定、その1


 I2C で接続するだけ、INA219とOLEDディスプレイ共、Adafruit のライブラリで動いた。

 ESP32 のスリープ動作の確認のため、どのくらいの消費電流なのか知りたかった。開発ボードだと、DeepSleep 中でも、2~4mA ぐらいは流れているようだ。裸のESP32で作ってみないと、結局良くわからないな。全開で動いていると、100数十mA 食うようで、なるほどすぐ電池がなくなるわけね。




追記 2020-10-04
 INA219モジュール、1日しか使ってないのに、壊れたらしく反応しなくなった。PCでグラフ化させようと思ったのに。仕方ないので、また注文した。


追記 2020-10-25
 ESP-WROOM-32 裸で組んだものを測定してみた。数mA だと誤差でよくわからないが、Sleep 動作じたいは出来ているようだ。