sommeil-profond.ino
En sueño profundo el ESP8266 baja de 20 µA: ideal para un sensor a pila. El despertar se hace por el puente GPIO16→RST, y la memoria RTC conserva el contador de ciclos entre reinicios.
Hardware necesario
Un módulo ESP-12E (ESP8266EX, Wi-Fi 2,4 GHz) montado en una placa NodeMCU / Wemos D1 mini, alimentada por micro-USB. Puente de cable entre GPIO16 (D0) y RST en el módulo (interno en Wemos D1 mini).
Cableado
GPIO16 unido a RST. A batería, alimente el módulo directamente: el regulador LDO de la placa NodeMCU consume más que el 8266 dormido.
Funcionamiento
ESP.deepSleep corta todo salvo la RTC; al despertar el chip reinicia como al conectar la corriente: solo sobrevive la memoria RTC (4 Ko), donde vive el contador. WAKE_RF_DEFAULT deja la radio inicializada. En el Arduino IDE, instale el paquete « esp8266 », elija « NodeMCU 1.0 (ESP-12E Module) » y suba (mantenga GPIO0 a LOW si falla). El ADC A0 lee 0-1 V (divisor NodeMCU: 0-3,3 V).
Para ir más lejos
Despierte con una pulsación (circuito RC en RST), o adapte el periodo a la criticidad de la medida.
sommeil-profond.ino
// Deep sleep 60 s — RST relie a GPIO16/D0 sur le module.
// Le compteur de cycles survit dans la RTC memory (4 Ko alimentee).
extern "C" {
#include "user_interface.h"
}
RTC_MEM uint32_t cycles; // RTC memory : conservee en deep sleep
void setup() {
Serial.begin(115200);
delay(100);
cycles++;
Serial.printf("\nCycle n°%u — lecture capteur, envoi, puis dodo\n", cycles);
// (mesure + envoi reseau courts ici)
Serial.println("Deep sleep 60 s...");
Serial.flush();
delay(10);
ESP.deepSleep(60 * 1000000ULL, WAKE_RF_DEFAULT);
// le module est REINITIALISE au reveil : setup() repart
}
void loop() {}