TimerCameraの5V系電源について

スポンサーリンク
M5Cameraの使い方

TimerCameraのGROVEポートにENV.IIユニットをつなぎ、以下のような処理をさせているのですが、いくつか問題が発生しています。

以下のような状況になっています。

(1) USBポートから給電し、GROVEポートにENV.IIユニットをつないだ状態で使用

Wi-Fi接続が不安定で、かなりの高頻度でWi-Fiに接続できません。

(2) USBポートから給電し、GROVEポートにENV.IIユニットをつながない状態で使用

安定してWi-Fiに接続できます。

(3) TimerCamera内蔵バッテリーで動作させ、GROVEポートにENV.IIユニットをつないだ状態で使用

Wi-Fi接続は安定していますが、個体によっては非常に短期間にバッテリーを消費してしまいます。

問題は2点あります。

1点目は「Wi-Fi接続が不安定」という問題で、給電方法や外部デバイスの接続有無によっては、Wi-Fi接続が不安定になるという現象です。
「コンセントからACアダプター経由で給電」「PCのUSBポートから給電」のどちらであるか、またPCから給電の場合は、PCバッテリーの充電状態によっても状況が変わり、現象は安定していません。
こちら に、Wi-Fi接続が不安定になる現象についての記事があります。電源電圧によってWi-Fi電波の到達距離が極端に短くなるという問題で、対象デバイスにはTimerCameraも含まれています。

2点目は「内蔵バッテリーが短期間で消費される」という問題です。
プログラムの処理としては、Wi-Fi接続が「OK」「NG」のいずれであっても、その後にスタンバイ状態に移行します。スタンバイ時の電流消費は非常に小さいので、通信可否に関わらず、バッテリーは少なくとも数週間はもつという計算でした。
しかし、4個のデバイスで実験したところ、そのうちの数個はごく短期間(2〜3日)でバッテリーが空になり、充電しなおしても同じ状況が続きます。最短では、充電後半日でバッテリーが空になりました。
プログラムの処理が正常に行われていれば、このように短期間でバッテリーが消費されることはないことから、デバイスが(電源が不安定などの理由で)正常に起動できず、強制リブートを繰り返しているのではないか?と想像しています。

ふたつの問題は全く異なるものですが、原因が(多分)電源周りであるという点は同じです。

回路図 を確認すると、TimerCameraの電源周りはこんな感じになっているようです(間違えているかもしれません)。

細かく確認はしていませんが、GROVEポートにデバイスをつなぐことで、5V系電源に影響を及ぼす可能性はありそうです。
また、5V系電源が不安定になると、そこから生成している3.3V系電源に影響が及ぶ可能性も排除できません。

GROVEポートの電源電圧を、テスターで測ってみることにしました。

以下のようなスケッチをつくりました。デバイスが起動して5秒経過すると、20秒のスタンバイ状態に移行するものです。

#include "battery.h"
#include "bmm8563.h"

#define CAMERA_LED_GPIO 2

unsigned long interval = 20; // unit:sec

void setup() {
  bat_init();
  bmm8563_init();
  bmm8563_setTimerIRQ(interval);
  esp_sleep_enable_timer_wakeup(interval*1000*1000);
  pinMode(CAMERA_LED_GPIO, OUTPUT);

  digitalWrite(CAMERA_LED_GPIO, HIGH);
  delay(5000);
  digitalWrite(CAMERA_LED_GPIO, LOW);

  bat_disable_output();
  esp_deep_sleep_start();
}

void loop() {
}

TimerCamaraとテスターを以下のようにつなぎ、GROVEポートのV-G間の電圧をテスターで測ります。

結果は以下のとおりです。

電源供給方法ENV.IIユニット動作時電圧スタンバイ時電圧
USBポートあり4.68V4.74V
USBポートなし4.69V4.75V
内蔵バッテリーあり3.47V時間経過と共に低下
内蔵バッテリーなし3.47V時間経過と共に低下

USBポートから給電した場合と、内蔵バッテリーで動作させた場合では、電圧値が大きく異なっており、内蔵バッテリーでは3.5V以下となっています。

現在、イチゴ栽培用のビニールハウスに、内蔵バッテリー駆動のTimerCameraを4台設置して温度計測を行なっているため、最も困っているのは「(3)短期間にバッテリーを消費する」という問題です。
5V系電源の電圧が低い上、スタンバイ時には電源供給もなくなるため、再起動時には瞬時に大きな電流が流れ、3.3V系電源の電圧も安定せず、強制リブートを繰り返すということはあり得そうです。

実際には動的な電圧変動(電源ノイズ)が原因となっていそうですが、詳細を調べることはできず、またハードウェアを触らない限りは対策もできません。

とりあえずは、GROVEポートにつなぐケーブルを短くして(少しでも負荷を軽くして)様子を見ることにします。
状況が改善されないようであれば、TimerCameraの利用をあきらめ、別のデバイス活用も検討する必要がありそうです。

 

なお、私がM5Stack、M5StickCの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


ごく基本的なところから、かなり複雑なスケッチや、ネットワーク接続など、比較的高度なものまで、つまづかずに読み進めていけるような構成になっており、大変わかりやすい本です。