ESP8266 mit ESPEasy flashen
auf dem Linux-Rechner das esptool installieren:
apt-get update && apt-get install -y esptool
Die Firmware von github.com herunterladen: https://github.com/letscontrolit/ESPEasy/releases/
(Beispiel: ESPEasy_ESP82xx_mega-20211005.zip ist momentan die richtige Wahl)
Um die Speichergröße des ESP8266 herauszufinden:
esptool --port /dev/ttyUSB0 flash_id
Wenn der ESP8266 einen Flash-Speicher von 4MB hat, dann flashen mit:
esptool --port /dev/ttyUSB0 write_flash -fs 4MB -fm dout 0x00000 blank_4MB.bin esptool --port /dev/ttyUSB0 write_flash -fs 4MB -fm dout 0x00000 ESP_Easy_mega_20211005_normal_ESP8266_4M1M.bin
Wenn der ESP8266 einen Flash-Speicher von 1MB hat, dann flashen mit:
esptool --port /dev/ttyUSB0 write_flash -fs 4MB -fm dout 0x00000 blank_1MB.bin esptool --port /dev/ttyUSB0 write_flash -fs 4MB -fm dout 0x00000 ESP_Easy_mega_20211005_normal_ESP8266_1M.bin
Anschließend: ESP8266 neu starten. Dann WLAN-Verbindung herstellen über den Access Point "ESP_Easy_0" und Passwort "configesp": http://192.168.4.1/
Problemlösung:
Grund-Zustand: Mit 74.880 bit/s sollte eine Verbindung herzustellen sein:
Wenn man sich mal "verflashed" hat, hilft es, die Baudrate der Schnittstelle auf 74880 bps (es wurden auch Angaben zu 76800 bps gefunden) zu stellen.
Dies ist die Baudrate vom "first bootloader".
Offenbar gibt es Situationen, in denen sich das Programm zum flashen nicht mehr auf eine Baudrate mit dem ESP Baustein einigen kann.
über die serielle Schnittstelle kann man bei ESPEasy eingeben:
- settings - dann siehst du was eingestellt ist
- wifissid dein_WLAN
- wifikey dein_wlan_passwort
- save
- reboot
Flash-Vorgang:
- Spannungsversorgung entfernen
- FLASH BUTTON drücken und festhalten (alternativ: GPIO0 auf GND legen)
- WÄHREND der Knopf gedrückt bleibt, Spannungsversorgung wieder anschalten
- Warten, bis LED blinkt
- Knopf loslassen
- Flashen
- Manchmal muss man nach dem Loslassen des Knopfes den RESET BUTTON drücken.
Am Einfachsten ist es, zum Flashen GPIO0 auf GND zu legen
Basics: Connecting and flashing the ESP8266 sagt:
- The ESP has four inputs that manage the startup behaviour. These setting are necessary to flash the chip! The GPIO15 pin should always be set to "low". Use a 10KOhm resistor between GPIO15 and ground. GPIO2 should be pulled to "high". Use a 10KOhm resistor between GPIO2 and 3.3V (Vcc). The GPIO0 setting now decides between run mode and flash mode. Connect a 10 KOhm resistor between 3.3V (Vcc) and GPIO0. This sets the ESP8266 into run mode. Now you may connect the GPIO0 directly to ground for flashing. The fourth is the "reset" pin. It should be on "high", so put a 10 KOhm resistor between Vcc and reset pin. For all ESP's besides nodeMCU and WeMOS there is a "CH-PG" pin. It's an "enable" pin you may use to switch off the whole ESP-Chip. Put a 10KOhm resistor between CH_PG and Vcc to keep the ESP running at all. Devices with an embedded ESP-Chip (Sonoff basic or 4ch for example) will have these resistors on board. Just GPIO0 has to be set to ground with a jumper bridge or via a pushbutton.
when programming the WeMos D1 Mini via Arduino, you should select Tools Menu -> Reset Method -> nodemcu and then the esp8266 will be automatically reset by the IDE into programming mode for you, with no buttons needing to be pressed, and no pins needing to otherwise be pulled high or low. this is the easiest and best way to program it.
Daten in ESPEasy löschen:
Will man das Ganze in den Ursprungszustand versetzen (Reset) dann muss man sich mit einem seriellen Monitor verbinden und "blind" Reset (reset) eintippen. Man darf bei putty ctrl+m ctrl+j (CR LF) nicht vergessen. Man hat leider kein lokales echo. Es kann einen Moment dauern, bis der Vorgang mit FLASH: Erase Sector: ... quittiert wird.
Man kann "Factory Reset" auch per Hardware machen: Einfach RX und TX verbinden und neu starten.
Aufbau:
Deep Sleep funktioniert nur, wenn RST und D0 verbunden sind. Ist die Verbindung nicht da, dann funktioniert der Deep Sleep nicht.
Anleitung entlang der sehr hilfreichen Seite: https://hackmd.io/@joerglohrer/ESPEasy
Mehr zum Auslesen des Temperatursensors DS18B20: https://www.letscontrolit.com/wiki/index.php/Dallas_DS18b20
Anschließend: Kontrollmöglichkeit mittels Mini Dashboard
Die Datei "dashboard.esp" kann dann so aussehen:
<meta name="viewport" content="width=width=device-width, initial-scale=1"> <STYLE> * {font-family:sans-serif; font-size:14pt;} .button {margin:4px; padding:4px 16px; background-color:#07D; color:#FFF; text-decoration:none; border-radius:4px} </STYLE> <HTML> <br><br> <table> <tr><td>Light<td><img src="Lamp[Switch#State].png"> <td><a class='button link' href="dashboard.esp?cmd=gpio,12,1">On</a> <td><a class='button link' href="dashboard.esp?cmd=gpio,12,0">Off</a> </HTML>