ラベル esp32 の投稿を表示しています。 すべての投稿を表示
ラベル esp32 の投稿を表示しています。 すべての投稿を表示

2022/12/06

ワイヤレス温度計 #1

 夏に、無線な水温計を作ろうと思っていたら、もう年末だ。ようやく取り掛かったが、キーボードや、リモコンでの実績のある2.4GHzの通信ではなく、今までチョロチョロと実験してきた BLE(Bluetooth Low Energy)でやってみることにした。

 温度センサ は、DS18B20 にケーブルがついたのを調達。ステンレスパイプの中にセンサが入れられて、熱収縮のチューブで防水処理されている。本物は、センサだけで、数百円するそうだから、パチもんだろうけど。0度(氷)、100度(沸騰水)を試したぶんには、正確だった。

 送信側は、nRF51822 の BLE ビーコンもどき。ひたすら、測定温度をアドバタイズパケットに乗せて垂れ流すだけ、接続もさせない。

 受信側は、なんでも出来るESP32。とりあえず、7セグメントの LED に温度表示できるようにした。最初、Windows PC + Delphi でのソフトウェアで処理させようとしたが、まともに動かなかった。

 温度とバッテリ量を表示するだけなら、スマホやタブレットなんかの nordic の Androidアプリ用に、パケットを送信すれば、それで目的は達成される。Android アプリは、自前では作れないから(早々に挫折した)、測定データを何か利用するなら、ESP32 から、WiFi で飛ばせばいいかと。

 で、やりたいことは、実現できそうではあるが、実用化出来るかは、別の話。BLE は、色々と難しい。というか、電波飛ばなすぎだよな。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2022/10/09

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



 ESP32 を、wifi 接続にしてみた。18650電池にして、充電は、USB経由で可能。

 んー、USBケーブルが無くなっただけでは、意味がないな。ソケット通信じゃアプリがないと使えない。ESP32 のWebサーバ上で、動かすことが出来れば、ブラウザあればいいだけだもんな。JavaScript かなんかで、グラフが描けるライブラリあったような。


追記 2022-10-21
 使い勝手がよくない。おとなしく有線でいい。まぁ、失敗もあるさ。

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/01/03

ESP-NOWを試す


 ESP32を2つ使って直接通信する話。通常のWiFi接続だと、立ち上がってから IP設定するまでのタイムラグがあるので、すばやい送信など不可能。もちろん、立ち上がってしまえば問題は無いが、バッテリ駆動を考えると、スリープ必須なわけで、常時電源供給される環境でも無い限り使いものにならない。

 ESP-NOWは、高機能のESP32を、単機能の2.4GHzの無線モジュールと同じような使い方も出来る、というわけだが、果たして置き換えるメリットがあるのか?

 例えば、2.4GHzのリモコンをESP-NOWで作るなら、送信側の ATmega等のマイコン + WiFiモジュール が、ESP32一つで処理できる。受信側は、同じようにATmega32u4 と組み合わせる必要があるが、次VERのESP32は、USB直の制御出来るようになるとの話もあるので、将来的には、こちらもESP32一つで済むようになるかもしれない。

 現時点で、消費電力の高そうなESP32にわざわざ置き換えるのが正しいのか分からないが、ゴチャゴチャと作成するのが困難だった送信側デバイスが、簡単につくれるようになるだけでも価値はあるかもしれない。

 受信側をつくらず、ESP-NOWを Bluetooth キーボードにして送信しても、やはりタイムラグは大きいので、実用性はない。BLEで?ぎっぱなしでも、異常に電池食わないとかなら使えるが。そもそも、ESP32を使った実用的なBluetoothキーボード、誰か作った人いるのだろうか?Bluetoothデバイスの自作は、まだ敷居が高そうだ。