工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

水田の水位をリモートで監視するシステムを作る(2)

概要

通信モジュールの消費電流を計測し、回路の構想を練った。


背景と目的

前回、Sigfoxの通信モジュールの動作を確認した。今回は、通信モジュールの消費電流を計測し、全体の回路の構想・設計をする。


詳細

1.Sigfox Shield for Arduino

1.1 通信中

モジュールのGNDラインに0.5Ωの抵抗を入れ、電圧をオシロスコープで監視。送信中は、約120mV程度の電圧が立ったので、およそ240mA程度が流れていることがわかる。なお、送信していないときは、約10~20mAといったところ。

f:id:dekuo-03:20190421184517p:plain


1.2 スリープ中

そもそも、スリープさせるにはどうすればいいのか?というのがわからない。 unabiz-arduino-masterライブラリのWisol.cppには、

#define CMD_XXX "AT***"

という制御コマンドが定義されているのだが、この中にスリープらしきものが見つからない。 なので、スリープというより電源供給を断ってしまおうと考えている。念のため、以下を確認。

  • 3.3Vを供給しないで、モジュール動作を止めた状態にしたところ、およそ1.2mAが流れていた
  • さらに5Vの供給をやめたところ、この1.2mAも流れなくなった

なので、レベルシフタ関連の回路部分が消費しているものと思われる。5V、3.3V両方を遮断できれば消費電流がぐっと抑えられる。


2.ESP-WROOM-32

2.1 通常動作中

今回はWi-FiBluetoothを使用しない状態で、Sigfox ModuleとUART通信を行う程度。一応、その際の電流を測定してみた。ESP-WROOM-32 DevKitCなので、周辺回路がいろいろ電流を食っているが、80~100mA程度。 最大で120mAくらいを見ておけば十分ではないだろうか。


2.2 スリープ中

Web各所に電流を調べた結果が載っているのでそれらを参照すると、スリープ中は数~10数uAとのこと。


3.回路の構想

バッテリー駆動を考慮して、送信動作をしないとき(スリープ)に消費電力が十分小さくなるように、以下のような構成にする。

f:id:dekuo-03:20190421185635j:plain

バッテリーは、ENELOOPの単3を4本直列として、4.8V。これを5V系とする。 ESP32のGPIOで、UnaShieldのGNDラインの導通をコントロールして、通信しないときはシステムをOFFしてしまうつもりだ。

  • 1日に朝夕の2回送信
  • 1回の送信動作中の消費電流は平均200mA程度で10秒程度
  • スリープ中は、レギュレータの無負荷時電流が30uA、ESPのスリープ時電流を10uAとして全体で40uA

上記の条件から、平均電流は

 (200mA * 10 / 60 / 60 [hour] * 2回 + 40uA) = 1.15mA

なので、1900mAh程度の単3のエネループだと、

1900mAh / 1.15mA / 24h = 68.8日

と2か月程度持つ計算。とはいえ、そんなに計算通りいかないだろうから、おおよそ1か月~2か月くらい持つと考えておく。それなりの頻度で、田んぼには行くはずなので、この程度のバッテリーの持ちでもとりあえずは大丈夫だろう。


まとめ

通信モジュールの消費電流を計測し、回路の構想を練ることができた。次回は、いよいよ実装をしたいと思う。