esp8266のSleepモードについて
sleepモードは3種類ある
-
deep-sleep
- 記事
- sleepモードのうち最も消費電力が少ない
- 復旧時、再起動されて、setup()から実行される
- IO16ピンをRST(リセット)に繋ぐ必要がある
- 一定間隔で何かを実行するのに向いている
- マイコン部分まですべて電源が切れるので、変数を所持したい場合などは、工夫が必要
- RTCメモリーというメモリーが動き続けているので、それに変数等データを書き込むことができる
- RTCメモリーはユーザーエリアが512バイトある.
- 先人によると、最初の4バイトはなぜか読み込めないので、正確には508バイトしか使えないらしい
-
light-sleep
- deep-sleepの次に消費電力が少ない
- WIFI_STA mode(ステーションモード)のみで実行可能
- 通信が行われないときにはWiFi用のRF回路をオフにし、CPの実行をサスペンドする
- WiFiとの接続は維持されたまま
- 0.9mA消費
-
modem-sleep
- sleepモードの中で最も消費電力が大きい
- CPUの動作を維持したまま、非通信時にWiFi用のRF回路をオフにして電力をおさえる
- WiFiとの接続は維持されたまま
- 15mA消費
Light-Sleepについて調べてみる
この記事によると、
WiFi.mode(WIFI_STA);
wifi_set_sleep_type(LIGHT_SLEEP_T);
のようにコードを書くだけで、delay関数の間、自動的にLight-Sleepモードい移行してくれるらしい.
しかし、今回は、センサーの値が一定のときはLight-sleepをしておいて、センサーの値が大きく変化したときにWi-Fiに接続する方法を用いたいので、この方法は使えない.
今後できるようになりたいこと
時間を設定して復帰するのではなく、光センサの値が変化したときにだけ、それがトリガーになってESP-WROOM-02がdeep-sleepモードから起動するような回路をくみたい.
この記事では、人感センサのHIGH,LOWを(回路的に)用いて、deep-sleepモードからの復帰をしている.
光センサの値によってdeep-sleepモードから復帰することは可能なのか.
このような記事のように、回路をうまく組めばいけそう.
だが、これをやるには回路の知識がないと時間だけがかかりそう.
参考記事
- ESP8266 IoT 人感センサーでESP8266の目をさまさす | MONOxIT
- 電子工作と治具ツールの備忘録: ESP-WROOM-02のメモ(11):3つのSleepの使い分け
- 電子工作と治具ツールの備忘録: ESP-WROOM-02プログラミング:スリープしながら定期的にツイート
- ESP-WROOM-02のLIGHT-SLEEPとGPIOでの復帰 | 東京お気楽カメラ
- ESPr Developer + Ambientで自宅の環境モニターを作る – Ambient
- ESP8266 (ESP-WROOM-02) の Deep Sleep でデータを引き継ぐ | tech - 氾濫原
- じわじわ進む: ESP単体で30分のデータをまとめて送信
- ESP8266の真骨頂Deep-Sleepモードの使い方 - Qiita
- なんでも作っちゃう、かも。
- ESP8266 Light Sleep - Projects made with Blynk - Blynk
- DeepSleepへの移行とボタン押下による復帰