Timer Cameraの内蔵バッテリーをNi-MH電池に交換する

低電力のカメラデバイス、およびIoTデバイスとして「Timer Camera」を活用しています。

「Timer Camera」を畑に設置し、10分に1枚の間隔で写真を撮影し、その画像をWebサーバに送信しています。「ソーラーパネル」や「Ni-MH電池」と組み合わせることで常時稼働させています(記事は こちら)。

また、「Timer Camera」に内蔵されているバッテリーのみで、1時間に1回の間隔で温度データを測定し、そのデータをWebサーバに送信するという処理を2ヶ月以上にわたり連続稼働させたこともあります(記事は こちら)。

一方、「Timer Camera」には以下のような問題点があります。

  • USBポート経由で外部から電源供給した場合、ディープスリープ中でも消費電流値が非常に大きい(40mA程度)。→低電力化の対策により17mA程度まで低減できています。
  • USBポート経由で外部から電源供給した場合、Wi-Fi接続が不安定になる場合がある(参考記事は こちら)。
  • 内蔵バッテリーで動作させている場合、デバイスによってはバッテリー電圧が3.7V〜4V程度の時に動作が不安定になる(記事は こちら)。→正常に処理ができなかったり、一気に電圧が低下したりします。

「Timer Camera」には、スタンバイ時に内部への電源供給を遮断する機能があり、これにより低電力動作を実現しています。ただし、USBポート経由で電源供給した場合は、この電源遮断機能を経由せずに内部に電源供給されるため、低電力動作のメリットを得られません。
また、USBポート経由で電源供給すると、「Timer Camera」に搭載されている「USB I/Fマイコン」が動作します。その時、「USB I/Fマイコン」から「ESP32」に5V系信号が供給され、それにより「ESP32」のWi-Fi接続動作が不安定になるようです。

一方、「Timer Camera」を内蔵バッテリー(LiPoバッテリー)で動作させると、デバイスによっては動作が不安定になります。搭載されている電源レギュレータや内部の電源設計の都合により、内蔵バッテリーが特定の電圧の時に電源ノイズが大きくなり、それにより「ESP32」が正常に動作できず、リブートを繰り返してしまうのではないかと推定しています。
調査したところ、手持ちの「Timer Camera」5台のうち3台は、内蔵バッテリー電圧が3.7V〜4V程度の時に正常動作しませんでした。LiPoバッテリーの電圧は3.7V(充電時最大4.2V)なので、この電圧で半数以上が正常動作しないのは大きな問題です。

結局、「Timer Camera」を外部給電で動かしても内蔵バッテリーで動かしても、色々と問題があるということで、安心して使うのはなかなか難しいなぁと考えていました。

これらの問題に対し、簡単に対処できる何かいい対策はないかと、回路図を見たり基板を眺めたりしているうちに、ある事に気づきました。

LiPoバッテリーは、コネクタで基板とつながっています。つまり、LiPoバッテリーをコネクタから外し、代わりに別のバッテリーをつなぐことで、特別な難しい改造などをしなくても、内蔵バッテリーを変更することができそうです。
これであれば、電源供給にUSBポートを使わないので、USBポート経由で電源供給した場合の問題は発生しません。また、バッテリーの種類を変えることで、特定の電圧で生じる問題を回避できる可能性もあります。

バッテリーには、これまでも色々な用途で使っている「単四型Ni-MH電池(4本)」を使おうと思います。
Ni-MH電池の電圧は1本あたり1.2V(満充電時1.35V)程度なので、4本を直列接続すると4.8V(満充電時5.4V)程度になります。
内蔵バッテリーは、電源レギュレータ(SY8089)とRTC(BM8563)につながっています。最大入力電圧はそれぞれ6V、5.5Vのようなので、バッテリーをNi-MH電池4本に変えても問題ありません。
また、動作時の電圧(4.8V)が、「Timer Camera」が正常動作しない電圧(3.7V〜4V程度)よりも高くなるので、内蔵バッテリー使用時の問題も生じなくなるはずです。

早速つないでみることにしました。

こちらのコネクタを購入しました。


LiPoバッテリーについているコネクタを切り取って流用してもよかったのですが、一応元の状態に戻すことも考えて、LiPoバッテリーのコネクタは使わず、新たに購入することにしました。
この小さなコネクタにケーブルを圧着する自信がなかったので、最初からケーブルがつながっているものを購入しました。なお、こちらの製品では、ケーブルの赤黒が「Timer Camera」用LiPoバッテリーのコネクタと逆になっているので、注意が必要です。

ちなみに、このコネクタのピッチは「1mm」です。「Timer Camera」の回路図に「2×1.25mm」と記載されているため、てっきり「1.25mm」ピッチだと思い込み、最初は間違えて違う規格のコネクタを購入してしまいました。

このコネクタに「単四型Ni-MH電池(4本)」をつなぎ、「Timer Camera」のバッテリー用コネクタに取り付けることで、問題なく「Timer Camera」を動かすことができました。

さて、「単四型Ni-MH電池(4本)」で「Timer Camera」が動作可能であることを確認できたので、次はこの構成で、「低電力」で「長期間」にわたり「安定」して動作することを確認したいと思います。

まずは、一連の処理における「Timer Camera」の消費電流値を確認します。
以前の調査で、内蔵バッテリーで動作させた時に動作が不安定になったデバイス(2台)を用いました。

消費電流値の測定にはM5Stackと「INA226PRC」を使いました(消費電流値の測定方法は こちら)。

結果は以下のとおりです。複数回測定し、波形を重ね合わせました。

1回の処理(1枚の写真を撮影→その画像データをWebサーバに送信→スタンバイ状態に移行)にかかる時間は9秒程度、その間の消費電流値は平均して100mA程度でした。
また、スタンバイ中の消費電流値は、今回の測定方法ではゼロ(実際には若干のマイナス値)になりました(「Timer Camera」販売ページには、スタンバイ中の消費電流値は2μAと書いてあります)。
例えば、1時間に1枚の写真を撮影してWebサーバに送信する場合、平均消費電流値は「100mA × 9sec / 3600sec + 2μA = 0.252mA」となります。スタンバイ中の消費電流値(2μA = 0.002mA)は非常に小さいため、無視して差し支えありません。

1分に1枚の間隔で写真を撮影し、所望のとおり安定して動作するかどうか確認します。
この場合の平均消費電流値は「100mA × 9sec / 60sec = 15mA」となります。「単四型Ni-MH電池」は 800mAh なので、53.3時間(約2.2日)にわたり連続稼働できる見込みです。

先ほどと同じデバイス(2台)で調査しました。
その結果、1台は60.2時間(約2.5日)、もう1台は52.7時間(約2.2日)連続動作しました。机上計算での見積もりと同等の結果になりました。
また、この期間中、どちらのデバイスとも動作が不安定になることはなく、安定して動作しました。

「Timer Camera」内蔵バッテリーをLiPoバッテリーから「単四型Ni-MH電池(4本)」に交換することで、低電力で安定して連続稼働することを確認できました。
もしもこの構成で1時間に1枚の写真を撮影する場合、「800mAh / 0.252mA = 3174.6時間(約132日)」稼働できる見込みです。単三型Ni-MH電池(2000mAh)なら「約330日」と、1年近く稼働できる計算になります。

非常に低電力で、安定して稼働できる見込みが得られたので、今後はこれに小型のソーラーパネルを追加し、常時稼働できるか試してみようと思います。

2022年8月30日追記

上記の「Timer Camera」と「Ni-MH電池(4本)」の構成でIoTシステムをつくり、実際に長期間にわたり連続稼働させてみました。
土壌水分センサで測定したデータを、10分間隔でWebサーバに送信するシステムです。

「単三型Ni-MH電池(4本)」で動かしたところ、稼働日数は「89.6日」と、ほぼ3ヶ月にわたり連続稼働させることができました。
それほど面倒な工作をする必要もなく、乾電池で数ヶ月にわたり動かすことのできるIoTデバイスがつくれました(詳しくは こちら)。


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


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


このサイトで書いている、M5Stackシリーズ(M5Stack、M5StickCなど)に関するブログ記事を、「さとやまノート」という別のブログページに、あらためて整理してまとめました。

他のM5Stackシリーズの記事にも興味のある方は「さとやまノート」をご覧ください。