sommeil-profond.ino

ESP8266 (módulo ESP-12E) · Archivo : sommeil-profond.ino · Lenguaje : Arduino · Uso : Réveiller l'ESP8266 toutes les minutes (deep sleep)

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() {}

← Volver a la ficha