構成

ATOM Lite/M5StickC —(ESP-NOW)—> ATOM U —(ESP-NOW)—> M5Stack —(WiFi)—> Webサーバ

Home Assistant(既存)がWebサーバに定期アクセスして値を取得

こんな感じで表示

バッテリでの稼働時間

  • 起動→温度取得→ESP-NOWで送信→ディープスリープ

M5StickC

  • バッテリ電圧はM5.Axp.GetBatVoltage()で取得

M5StickC + ENV II Unit
1分間隔で送信
開始時4.02V → 7時間40分後 3.1Vで停止

M5StickC + ENV II Hat
15分間隔で送信
開始時4.16V → 11時間後 3.26Vで停止

センサに常時通電しているので、送信間隔を延ばすだけだとあまり稼働時間が延びない?
→センサよりも本体の消費電流が支配的

ATOM Lite + 単4×3 (補助電池基板)

アルカリ乾電池(EVOLTA)

  • バッテリ電圧はGPIO33で取得
    • 電源SW OFF時 電圧4.53VのときanalogRead()値1675
    • 電圧=analogRead()値/369.75としてざっくり補正

ATOM Lite + ENV II Unit
15分間隔で送信
開始時4.11V -> 132時間(5.5日)後 2.79Vで停止
(保護用のダイオードで0.3〜0.4Vぐらい電圧降下してる?)

Ni-MH二次電池(AmazonBasics min. 800mAh)

開始時4.11V -> 125時間後(5.2日)後 2.82Vで停止

電池が保たないのでタイマー回路を設ける

しばらく動かしているとWiFiの接続に失敗するようになる

E (187372448) wifi:Expected to init 4 rx buffer, actual is 0
[187364811][E][WiFiGeneric.cpp:678] wifiLowLevelInit(): esp_wifi_init 257
E (187372467) wifi:Expected to init 4 rx buffer, actual is 0
[187364829][E][WiFiGeneric.cpp:678] wifiLowLevelInit(): esp_wifi_init 257
[187364830][E][WiFiSTA.cpp:227] begin(): STA enable failed!

メモリ不足?