Gizem evet, D3 = GPIO0. Furkan’ın dediği sadece reset anı için geçerli: güç verilirken ya da reset sırasında GPIO0 LOW ise kart flash moduna giriyor. Program çalışmaya başladıktan sonra normal bir giriş, kartta zaten pull-up var, buton GND’ye çekiyor. Bizim sahadaki cihazlarda tam olarak bunu yapıyoruz.
const int BTN = 0; // D3 / FLASH
unsigned long downAt = 0;
void setup() {
pinMode(BTN, INPUT_PULLUP);
// ...
}
void loop() {
if (digitalRead(BTN) == LOW) {
if (!downAt) downAt = millis();
if (millis() - downAt > 5000) {
WiFiManager wm;
wm.resetSettings(); // sadece Wi-Fi bilgileri silinir
ESP.restart(); // açılışta portal kendiliğinden açılır
}
} else downAt = 0;
mqtt.loop();
}
Dikkat edilecek iki şey var. Token’ı EEPROM’da ayrı tut ve bu işlemde silme; cihaz Hermetry’de aynı cihaz olarak kalsın, yeni ağa geçince aynı credential’la bağlansın. İkincisi, butona basılıyken elektrik gidip gelirse kart flash moduna açılır, birkaç saniye sonra tekrar reset atmak yeterli. Teknisyene « fişi çekip takarken butona basma » notu bırakın.
Sahadan selamlar.