esp8266で消費電力を下げる事例は、ありそうですが検討してみました。
条件付で、電池の連続稼動日を延ばす方法となります。
稼動時間を設定(例: 9-17時)し、稼動時間以外はIoT機能を停止させる事で
消費電力を下げ、連続稼動日数を伸ばす仕組みです。
24時間稼動前程の運用では適用できません、
昼間稼動でのIoT活用で夜間は使用しない場合、
予想としては、日に8時間稼動で消費電力は電源回路周辺は
常時電力を消費するため、1/3以下まで下げる事は不可能と予想されますが、
動作的にはスリープ解除後の回数が減り、消費電力は下がると予想しています。
*1) 現在時刻の調査方法は、複数ありそうですが。NTPに接続して
取得しています。RTC等の回路追加は無しです。
*2) NTPを起動時に毎回接続した場合、消費電力は増えましたので
基準時間をRTC memory に保存し、タイマ起動時に計算処理で
現在時刻を計算する処理も追加しました。
# 稼動時間イメージ
*) 指定時間帯は、active(稼動時間)のみです。
# 条件
a) 24時間稼動は対象外
b) sleep タイマは30分以上の場合はほぼ効果なし。
想定タイマ: 5-15分
c) 稼動 -開始終了範囲が、0時 - 24時 まで。
d)電源周辺部品
LDO 出力 500mA : TA48M033F
入出力コンデンサ :入力=0.1u, 出力=47u
*) 例は、1日稼動時間= 8H
# 処理
ntp ( udp)を使って、起動時に現在時刻を取得し、稼動判定処理に使っています。
a) 開始終了時刻は、コード内に記載しています。
*)改良としては、クラウド側から、範囲時刻を取得した方が良さそうです。
b) 稼動時間帯は、数分( 約5-15分)タイマ、30分以上のタイマの場合は、さほど効果ありません。
c) 非稼動時間帯は、60分タイマで、次稼動時間帯開始の監視を行います。
# code (BETA) -arduino IDE 1.8.4
https://github.com/kuc-arc-f/WiFiClient_ntpTest_2
==== Update :2017/08/31 ====
update 0.9.2 を更新しました。
不具合対応で、稼動時間帯の判定処理を修正しました。
=======
*) センサは接続していません。
*) 計測/集計用のコード - arduino/python (参考)
https://github.com/kuc-arc-f/read_adcUART
# 集計/分析
予測計算となります、1時間の実測値をもとに計算しています。
計測は前回の arduino (+電流測定抵抗= 1R)版電流測定機器、
で100mSec(0.1sec)単位で1時間測定、対象 36,000件
*1) 1mA以下の測定ができてないため、
テスタ計測の基板消費電流=0.8 mAを加算しています。
*2) 旧版は、単純なスリープ起動(deep sleep 5分)
a) 新版の 稼動時間帯/ 非稼動の波形
b) 表/ 新版の 稼動時間帯/ 非稼動、
稼動 / 1 時間当りの平均電流値= 2.9447 mAh
非稼動/ 1 時間当りの平均電流値= 1.0609 mAh
稼動 / 24時間当りの平均電流値= 70.6728 mAh
非稼動/ 24時間当りの平均電流値= 40.532 mAh
c) 旧/新 比較。
旧/24時間当りの平均電流値= 63.686 mAh
新/24時間当りの平均電流値= 40.532 mAh
旧/24時間当りの平均電力値= 318.42 mWh
新/24時間当りの平均電力値= 202.66 mWh
*) 電力消費は、旧/新比較= 63.52 % (新は消費が少ない)
終止電圧までの時間、旧/新比較= 1.57 倍(新は連続稼動可能)
d) 消費、累積30日のグラフ
# 考察
改良内容で、予想より消費は下がりませんでした、
50% 以下は期待していましたが。。悪影響は
電源部分の消費が大きく。常時電力を消費している為と
想定しています。
今回は、接続先の thingSpeakの更新時間が長めになっており
消費電力が大めになっていますが、全て同一接続先でテストした為、
比率は変わらないと思います。
# まとめ
将来的には、稼動カレンダ連動で
休日は 非稼動にできると、さらに稼動日数は伸びると思います。
# esp8266まとめ
http://knaka0209.blogspot.jp/2017/06/esp8266-matome.html