WeMos X-8266 (ESP-WROOM-02)でDeep Sleepを使う場合に気づいた点のメモ
GPIO16とResetピンを接続
WeMos X-8266のピンには、GPIO16が引き出されていない。ESP-WROOM-02にはGPIO16のパターンがあるので、そこから直接配線を引き出してやればよい。
この写真のように、ESP-WROOM-02の右上から2番めにある17番の足から、WeMos X-8266の右上のRSTピンに直接配線を行う。
この配線は10k程度の抵抗を挟んで3.3Vラインに接続し、常にプルアップしておくべきものだが、WeMos X-8266のリセット・タクトスイッチが存在してすでにプルアップされているはずなので、今回のGPIO16の配線は単純に接続するだけでOKそうだ。
Deep Sleepプログラム
void setup() { // 5分毎に行うプログラムをここに書く // 5分(300秒)スリープ ESP.deepSleep( 300 * 1000 * 1000); // 単位 usec delay(1000); // deepSleepに入るまでのダミー } void loop() { // loop関数に入ることはないが、何らかの原因で呼びだされた場合のための処理 delay(10 * 1000); }
5分毎に行う処理、Wifiへの接続から、データの作成送信など全て 『 5分毎に行うプログラムをここに書く』と書かれた場所に書き込めば良い。
loop() 関数は、サンプル例のようなダミーのdelayだけを入れるだけ。
スケッチ(プログラム)のマイコンボードへの書き込み
deep sleepに入っている間に、プログラムの書き込みは出来ない。
プログラムの書き込み前に、一旦、WeMos X-8266のUSB接続を外し、[Flash]ボタンを押しながらUSBポートに接続。それと同時にArduino IDEの『マイコンボードに書き込む』を実行する。
[Flash]ボタンのみではうまくいかない場合、[Flash]を押しながら[Reset]ボタンをクリックしてみる。