M5Stamp Picoでできること 〜M5Stamp Picoの消費電流値

先日、「M5Stamp Pico」の動作確認を行いました(記事は こちら)。

M5Stack社の各モジュールは、はんだづけなどの面倒な加工をしなくても、簡単にIoTデバイスをつくれるのが特長です。
ただ、ディープスリープ中であっても消費電力が比較的大きく、電池やソーラーパネルなどを電源として屋外で使用する際には、この点がネックになっています。

それに対し、「M5Stamp Pico」は回路構成が単純なため、他のM5Stack社のモジュールに比べて消費電力が小さいのではないかと期待しています。

そんな訳で、早速「M5Stamp Pico」の消費電力を調べてみたいと思います。




低電力のIoTデバイスとして使いたいと考えているので、「Wi-Fi接続中」「ディープスリープ時」の消費電力に着目することにします。

以下のような簡単なスケッチをつくりました。
「起動して10秒待つ」→「Wi-Fi接続して10秒待つ」→「Wi-Fiを切断して10秒待つ」→「10秒間ディープスリープする」を繰り返すだけです。

#include <WiFi.h>

const char* ssid     = "XXXXXXXX";
const char* password = "XXXXXXXX";

void setup() {
  Serial.begin(115200);
  delay(10000);

  WiFi.begin(ssid, password);
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.printf("\nWiFi connected\n");
  delay(10000);

  WiFi.disconnect(true);
  delay(10000);

  esp_sleep_enable_timer_wakeup(10000000);
  esp_deep_sleep_start();
}

void loop() {
}

比較のため、M5Stack社の他のモジュールについても、同等のスケッチを書き込んで調査を行います。

「M5StickC」用のスケッチです。

#include <M5StickC.h>
#include <WiFi.h>

const char* ssid     = "XXXXXXXX";
const char* password = "XXXXXXXX";

void setup() {
  M5.begin();
  delay(10000);

  WiFi.begin(ssid, password);
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.printf("\nWiFi connected\n");
  delay(10000);

  WiFi.disconnect(true);
  delay(10000);

  M5.Axp.ScreenBreath(0);
  esp_sleep_enable_timer_wakeup(10000000);
  esp_deep_sleep_start();
}

void loop() {
}

「ATOM Lite」用のスケッチです。

#include "M5Atom.h"
#include <WiFi.h>

const char* ssid     = "XXXXXXXX";
const char* password = "XXXXXXXX";

void setup() {
  M5.begin(true, false, true);
  delay(10000);

  WiFi.begin(ssid, password);
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.printf("\nWiFi connected\n");
  delay(10000);

  WiFi.disconnect(true);
  delay(10000);

  esp_sleep_enable_timer_wakeup(10000000);
  esp_deep_sleep_start();
}

void loop() {
}

「M5Camera」用のスケッチです。

#include <WiFi.h>

const char* ssid     = "XXXXXXXX";
const char* password = "XXXXXXXX";

void setup() {
  Serial.begin(115200);
  delay(10000);

  WiFi.begin(ssid, password);
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.printf("\nWiFi connected\n");
  delay(10000);

  WiFi.disconnect(true);
  delay(10000);

  esp_sleep_enable_timer_wakeup(10000000);
  esp_deep_sleep_start();
}

void loop() {
}

ACアダプターから各モジュールに電源供給しますが、その途中に以下のようにテスターを挿入し、上記スケッチの各フェーズにて電流値を測定します。

各フェーズの電流値測定結果は以下のとおりです。

M5Stamp PicoM5StickCATOM LiteM5Camera
起動後29.9mA74.3mA41.3mA40.8mA
Wi-Fi接続中の数秒間85mA程度130mA程度100mA程度100mA程度
Wi-Fi接続後33.5mA78.2mA45.1mA44.7mA
Wi-Fi切断後29.9mA74.3mA41.3mA40.8mA
ディープスリープ中0.3mA19.1mA11.7mA11.3mA

特にディープスリープ中は、他のモジュールに比べて非常に低消費電力であることがわかりました。

電源のない屋外で、一定間隔でデータを採取するような用途に活用できそうです。


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


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


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

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