Timer Cameraの消費電流値(USB給電時)を調べる

スポンサーリンク
Timer Camera

先日、Timer Cameraに「ENV IIユニット(温湿度センサ)」をつなぎ、Timer Cameraを低電力のIoTデバイスとして使えないか、調査を行いました(記事は こちら)。

その結果は、5分に1回の間隔でデータ送信を行った場合、約6日半も連続稼働できるというものでした。
もしもデータ送信を1時間に1回行うとすると、内蔵バッテリーだけで約2.5ヶ月も連続稼働できる計算になります。

これだけ低消費電力だと、屋外に設置するIoTデバイスとして、色々な用途が考えられそうです。

さて、Timer Cameraがこれだけ低電力だと、小型のソーラーパネルなど、ちょっとした外付け電源をつけるだけで常時稼働できないかと、さらに欲が出てきてしまいます。
ただ、Timer CameraにUSB給電している状態では、この超低電力モードには移行しないようです。

そんな訳で、まずは、USBで外部から給電している時のTimer Cameraの消費電流値がどの程度か、調査してみることにしました。

Timer Camera X(Yahoo!ショッピング)


Timer Cameraに書き込むスケッチは、前回の調査時のものとほとんど同じです。
スタンバイ期間を2分にし、また、温湿度データをambientに送信してからスタンバイに移行するまでに2分待つように変更しました。

#include "SHT3X.h"
#include "battery.h"
#include "bmm8563.h"
#include <WiFi.h>
#include "Ambient.h"

SHT3X sht30;
WiFiClient client;
Ambient ambient;

const char*  ssid      = "XXXXXXXX";
const char*  password  = "XXXXXXXX";
unsigned int channelId = XXXXX;
const char*  writeKey  = "XXXXXXXX";

float tmp = 0.0;
float hum = 0.0;

unsigned long interval = 120; // unit:sec

void sleepTimerCam() {
  bat_disable_output(); // disable bat output, will wake up after interval sec, Sleep current is 1~2μA
  // if usb not connect, will not in here;
  esp_sleep_enable_timer_wakeup(interval*1000*1000);
  esp_deep_sleep_start();
}

void setup() {
  Serial.begin(115200);
  Serial.println("[ENV.II Unit (SHT30)]");
  bat_init(); // hold bat output
  bmm8563_init();
  bmm8563_setTimerIRQ(interval); // interval sec later will wake up
}

void loop() {
  if(sht30.get()==0) {
    tmp = sht30.cTemp;
    hum = sht30.humidity;
  }
  Serial.printf("Connecting to %s\n", ssid);
  WiFi.begin(ssid, password);
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.printf("\nWiFi connected\n");

  Serial.printf("Temperatura: %2.2f*C  Humedad: %0.2f%%\r\n", tmp, hum);

  ambient.begin(channelId, writeKey, &client);
  ambient.set(1, tmp);
  ambient.set(2, hum);
  ambient.send();

  delay(interval*1000);

  WiFi.disconnect(true);
  Serial.printf("WiFi disconnected\n");

  sleepTimerCam();
}

消費電流値測定には、ストロベリー・リナックスの「INA226PRC」というモジュールとM5Stackを使います。
以前、このモジュールを使ってM5Cameraの消費電流値を調べたことがあります(記事は こちら)が、その時と同様に、Timer Cameraの電源供給ライン(USB-C)の途中に「INA226PRC」をつなぎます。

5秒に1回の間隔で「INA226PRC」で消費電流値を測定し、Ambientに送信しました。
結果は以下のとおりです。

動作時の消費電流値は80mA程度、Wi-Fi通信時は100mA超と、他のM5Stack製品と同じような値でした。
またスタンバイ時(deep sleep時)の消費電流値は約35mAと、非常に大きな値でした。

USBで外部から給電している限りは、低電力のIoTデバイスとしては使えないことが分かりました。

 

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


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