ESP32 と乾電池で実現する WiFi 温湿度センサー

電子工作

ESP32 と 単三乾電池3本で,ワイヤレス温度センサーを324日間屋外で動作させることができましたので紹介します.

機能概要

作ったのはこんな感じの温度センサーです.

  • 30秒ごとに温湿度を計測し,10分ごとに WiFi 経由で計測データを送信
  • 電源は 単三乾電池3本

データーの送信は Fluentd を使用し,InfluxDB にデータを蓄え,Kindle や Grafana 等で表示するようにしています.

特に Kindle による屋外気温の表示が便利で,外出する前には家族全員が活用しています.今では無くてはならないインフラです.

回路構成

使った回路は次のようなシンプルなものです.

  • 単三乾電池3本の先に,Strawberry Linux の TPS62742 モジュールを接続
  • TPS62742 の出力電圧は 3.0V 設定にし,ESP-WROOM-32 と Sensirion SHT-35 温度センサに電源供給
  • ESP-WROOM-32 の GPIO25, 33 を SCL, SDA として SHT-35 と接続
  • 乾電池の電圧を 1MΩ 抵抗2本で分圧し,GPIO32 に接続 (電圧モニタ用)

これらをタカチの防水ケース WH145-33-M3-WN に収めるとこんな感じになります.写真は1年間屋外に設置した後のものなので,カバーがやや黄色くなっています.

ソフト

ソフトは,ESP32 の ULP を使い,メイン CPU を Deep Sleep モードにしたまま,温湿度計測する作りにしてあります.また,電池消費をなるべく抑えるため,いくつかの工夫を仕込んでいます.

この辺りは,以下の記事に記載してありますので,適宜参照いただければと思います.

ソフト全体は Github に登録してあります.

GitHub - kimata/esp32_ulp_sht3x: This software utilizes the ULP function of ESP32 to measure temperature and humidity for a long period of time using AA batteries.
This software utilizes the ULP function of ESP32 to measure temperature and humidity for a long period of time using AA batteries. - GitHub - kimata/esp32_ulp_s...

※21年10月時点では,上記リンク先の説明において GPIO14 も使うことになっていますが,これは電源ICとして TPS61291 を使っていた頃の名残で,今回は使っていません.

乾電池の電圧推移

最後に,324日間動作させたときの,乾電池の電圧推移を紹介したいと思います.

5月に電圧がガクンと落ちていますが,これはこのタイミングで Fluentd サーバが落ちたために,ESP32 が接続リトライを繰り返したためです.このトラブルがなければ,あと1~2週間は粘れたかもしれません.

長期動作の過程で得られた情報を『ESP32 の長期屋外動作データ』で紹介していますので,興味のある方は読んでみてもらえるとありがたいです.

今後について

次は 電源IC を変更して 1年以上の動作を目指してみようと思っています.

コメント