マイクロビットを使ってみる 〜マイクロビットを低電力化する 2

先日、MakeCodeエディタの「Power」拡張機能を使って、マイクロビットを低電力化しました(記事は こちら)。

今回は、低電力化したマイクロビットを実際に電池で動かしてみて、本当に長く動くのか、確認してみようと思います。


以下のようなものをつくってみます。

  • 子機と親機の2台構成にする。
  • 子機は、一定時間ごとに内蔵の温度センサで温度を測定し、そのデータを無線で親機に送る。
  • 親機には「Grove UART WiFi V2」をつなぐ。無線でデータを受信するたびに、そのデータをWi-Fiで「IFTTT」に送る。
  • 「IFTTT」は、親機からのWeb Requestを受信するたびに、そのデータをGoogleスプレッドシートに書き込む。
  • 子機については「Power」拡張機能をつかって低電力化する。
  • 子機は屋外に設置し、単四型Ni-MH電池2本をつないで連続稼働させる。
  • 親機は屋内(Wi-Fiルータの近く)に設置し、コンセントから電源供給する。

「子機は電源のないデータ測定場所に設置しなければいけないので、電池で長期間稼働させたい」「親機はデータ測定場所から離れた場所に設置できるので、電源の問題はない」という想定です。

まずは親機を準備します。

「Groveシールド」をつかって、親機に「Grove UART WiFi V2」をつなぎます。
以下のように、ACアダプタで電源供給できるようにします。
ちなみに、親機にはマイクロビットのV1を使っています。

親機のプログラムは以下のとおりです(「grove」拡張機能を使っています)。

子機との無線通信のために、無線のグループを設定します。
また、Wi-Fi通信のために、Wi-Fi設置を行います。
子機から無線でデータを受信したら、受信したデータと子機のデバイス番号を、Wi-Fiで「IFTTT」に送信します。

「IFTTT」のアプレットは、こちら でつくったもの(Send_to_Table)をそのまま使います。

子機のプログラムは以下のとおりです。

最初に無線関連の設定を行った後は、1分毎に無線で温度データを送信します。
データ送信していない期間はlow powerモードに移行します。
「Power」拡張機能はマイクロビットV2限定なので、子機にはマイクロビットのV2を使います。

このプログラムを実行する際の、子機の消費電流値を測定しておきます。
消費電流値測定には、M5Stackと電流センサ「INA226PRC」を使います(測定方法は こちら)。

以下のようにつなぎ、消費電流値を測定します。

何度か測定し、結果の消費電流波形を重ね合わせてみました。

1回のデータ送信にかかる時間は0.30秒、その期間の平均消費電流値は13.33mAでした。
また、それ以外の期間(low powerモード中)の平均消費電流値は1.35mAでした。

なお「Power」拡張機能を使わない場合は、常に上記のデータ送信中程度の電流を消費します。

よって、平均消費電流値をまとめると以下のようになります。

  • 「Power」拡張機能を使わない場合:13.33mA
  • 「Power」拡張機能を使い、1分毎にデータ送信する場合:( 13.33mA * 0.30sec + 1.35mA * 59.7sec ) / 60sec = 1.41mA
  • 「Power」拡張機能を使い、10分毎にデータ送信する場合:( 13.33mA * 0.30sec + 1.35mA * 599.7sec ) / 600sec = 1.36mA

単四型Ni-MH電池(800mAh)2本でこのプログラムを動かした場合、

  • 「Power」拡張機能を使わない場合:800mAh / 13.33mA = 60.0h = 2.5日
  • 「Power」拡張機能を使い、1分毎にデータ送信する場合:800mAh / 1.41mA = 567.4h = 23.6日
  • 「Power」拡張機能を使い、10分毎にデータ送信する場合:800mAh / 1.36mA = 588.2h = 24.5日

という計算結果になります。
「Power」拡張機能を使わないと、単四電池ではせいぜい2〜3日しか稼働できないのに対し、「Power」拡張機能を使えば20日以上連続稼働できるということになります。
さらに、単四型ではなく単三型のNi-MH電池(2000mAh)2本を使えば、上記のさらに2.5倍の期間にわたり連続稼働できる見込みです。

実際に、この子機を屋外に設置して、長期稼働させてみます。

以下のように、ただ単にマイクロビットに単四型Ni-MH電池2本をつなぐだけです。

これを、以下のような簡単な防水ボックスに収納し、自宅ベランダに置いておくこととします。

さて、調査を始めてから1週間が経過しました。

Googleスプレッドシートに書き込まれたデータを確認したところ、この1週間、ずっと問題なくデータを採取できていました。
現在も継続して動作中です。

採取したデータをCSVで書き出し、Excelでグラフ表示してみました。

マイクロビット内蔵の温度センサは、出力する温度が1℃きざみなので、波形はガタガタしていますが、温度の変動はきちんと観測できています。
自宅ベランダには西日が差し込むので、晴れた日の夕方には、直射日光があたって温度が非常に高くなっていることが分かります。

このように、きちんと問題なくデータ採取できていることを確認できました。

追記

その後もずっと放置して稼働させつづけていましたが、ようやく停止しました。
稼働時間を確認したところ、単四型Ni-MH電池(800mAh)2本で「21.4日」にわたり動いていました。
机上計算に近い結果です。

単三型のNi-MH電池(2000mAh)2本に変更すれば、50日以上連続稼働できる計算になります。
電池でこれだけ連続稼働できるとなると、実用的な用途でいろいろ使えそうです。


なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。


このサイトで書いている、マイクロビットに関するブログ記事を、「さとやまノート」という別のブログページに、あらためて整理してまとめました。

他のマイクロビット記事にも興味のある方は「さとやまノート」をご覧ください。