以下の投稿に記載した実験の続きとして、ESP8266のDeep-sleepを使用したアプリケーションをモバイルバッテリで駆動した場合、どのくらい動き続けるのか実験してみました。
wave.hatenablog.com
測定条件
- Arduino UNO形状のESP8266ボードにmicroUSB経由で5V給電
- Deep-sleepからの復帰のためRESET端子をGPIO16に接続
- モバイルバッテリ
Aukey PB-N30 3600mAh - 処理概要
setup()でWiFi接続及びntp同期
loop()で温湿度センサDHT11を利用して1s間隔で9回測定しバブルソートした中央値*1をGoogle Spreadsheetに送信し約47秒DeepSleep
※loop()末尾でDeep-sleepモードに落ちるため、loop()は実際にはloop動作しない。
結果
2日と6時間45分3秒(約54.75時間)の連続駆動が行え、Google Spreadsheetには4818回分の測定データが記録されました。
考察
消費電流
モバイルバッテリの容量(3600mAh)がスペック通りで全く劣化しておらず、一切のロスなく給電されていると仮定すると、
となるためESP8266を含むデバイス全体で、平均して約65.75mAの電流消費だったことになります。
今回使用したモバイルバッテリもそれなりに使用歴があるため、70%程度の実効容量に低下していると仮定すれば、平均して約46mAの電流消費だったことになります。
測定データ
前回の投稿ではDHT11の測定値がおかしかったのですが、ロジック修正により自然な出力値が得られるようになりました。
但し、中央値を採るはずがソート後の配列要素の3番目を送信していたため、本来採りたかった中央値にはなっていませんが、逆に言うとこれで正常値っぽいので9回も測定せずとも5回測定の中央値で十分そうなことがわかりました。
また、約1分ごとにデータを送信していましたが、データを見る限り測定環境の温湿度変化を把握するには過剰に多い測定間隔のようです。測定間隔を長くすることでDeep-sleep時間を長くできるため、より長期間のモバイルバッテリ駆動を図ることができそうです。
以上。