clignotante.ino
La LED bleue de l'ESP-12E est active à LOW — piège classique du premier sketch. millis() garde la boucle libre pour le Wi-Fi, et le moniteur affiche la mémoire libre à chaque battement.
Matériel requis
Un module ESP-12E (ESP8266EX, Wi-Fi 2,4 GHz) monté sur une carte NodeMCU / Wemos D1 mini, alimentée par micro-USB. Aucun : la LED utilisateur du module suffit.
Branchement
Rien à câbler (LED sur GPIO2/D4). Pour une LED externe : broche Dx via 330 Ω vers GND, alimentation par le micro-USB de la carte.
Fonctionnement
digitalWrite inverse LOW/HIGH car la LED est câblée en actif-bas. La boucle compare millis() au dernier changement, sans delay bloquant. Dans l'Arduino IDE, installez le paquet « esp8266 », choisissez « NodeMCU 1.0 (ESP-12E Module) » puis Téléverser (GPIO0 à LOW si le flash échoue). L'ADC A0 lit 0-1 V (diviseur NodeMCU : 0-3,3 V).
Pour aller plus loin
Modulez la période avec un LDR sur A0 (sketch dédié), ou faites clignoter plus vite quand le Wi-Fi est perdu.
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());
}
}