clignotante.ino
El LED azul del ESP-12E es activo en LOW: trampa clasica del primer sketch. millis() mantiene el bucle libre para Wi-Fi y el monitor imprime memoria libre en cada parpadeo.
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. Ninguno: basta el LED de usuario del módulo.
Cableado
Nada que cablear (LED en GPIO2/D4). Para un LED externo: pin Dx por 330 Ω a GND, alimentación por el micro-USB de la placa.
Funcionamiento
digitalWrite invierte LOW/HIGH porque el LED está cableado en activo-bajo. El bucle compara millis() con el último cambio, sin delay bloqueante. 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
Modulee el periodo con una LDR en A0 (sketch dedicado), o haga parpadear más rápido cuando cae el Wi-Fi.
clignotante.ino
// Clignotement non bloquant — LED bleue de l'ESP-12E (D4, active a LOW).
const unsigned long PERIODE = 500;
bool etat = false;
unsigned long precedent = 0;
void setup() {
pinMode(BUILTIN_LED, OUTPUT); // D4 = GPIO2
Serial.begin(115200);
Serial.println("\nClignotement demarre (LED inverse : ON = broche LOW)");
}
void loop() {
unsigned long t = millis();
if (t - precedent >= PERIODE) {
precedent = t;
etat = !etat;
digitalWrite(BUILTIN_LED, etat ? LOW : HIGH); // active a LOW !
Serial.printf("%s — heap %u o, wifi %d dBm\n",
etat ? "ON " : "OFF", ESP.getFreeHeap(), WiFi.Rssi());
}
}