In diesem Teil erfährst du:
Wie man MicroPython und die benötigten Tools auf dem (Windows-) PC installiert, habe ich in diesem Tutorial bereits beschrieben. Deswegen fasse ich die Schritte hier nur kurz zusammen:
Nachdem die Tools (esptool, rshell) auf dem PC installiert sind, löschen wir den Speicher des ESP32
und flashen danach das aktuelle MicroPython-Image auf den ESP32 (nehmt ESP-IDF v3.x, mit v4.x hatte ich Probleme):
Zum testen, ob auch wirklich alles funktioniert hat, verbinden wir uns mit rshell auf den ESP32:
> rshell -p COM5
Using buffer-size of 32
Connecting to COM5 (buffer-size 32)...
Trying to connect to REPL . connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /boot.py/
Setting time ... Feb 11, 2021 22:00:58
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 2000
Welcome to rshell. Use the exit command to exit rshell.
Wenn eure Ausgabe ungefähr so aussieht und keine Fehler anzeigt, hat alles funktioniert.
Nun, da MicroPython installiert ist, können wir mit dem eigentlichen Programmieren beginnen.
Wir legen uns zunächst die Datei main.py mit folgendem Inhalt an:
import network
import time
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
# Set DHCP host name to recognize the device in your router
wlan.config(dhcp_hostname="Heater")
# Replace your SSID and password
wlan.connect("<SSID>", "<password>")
while not wlan.isconnected():
time.sleep(1)
print("WiFi connected")
Diese Datei kopieren wir dann auf den ESP32 (rshell läuft noch), wechseln dann in die REPL und starten den ESP32 mit STRG+D neu:
Ich habe mir ein kleines Logger-Modul geschrieben, mit dem ich mir Log-Ausgaben etwas komfortabler anzeigen und sie später ggf. auch an einen SYSLOG-Server senden lassen kann. Dieses Modul kannst du dir hier herunterladen und danach auf den ESP32 kopieren oder alternativ mit upip installieren:
In der main.py importieren wir dann das Modul, initialisieren den Logger und ersetzen die print-Ausgabe.
import network
import time
import ep_logging
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
# Set DHCP host name to recognize the device in your router
wlan.config(dhcp_hostname="Heater")
# Replace your SSID and password
wlan.connect("<SSID>", "<password>")
while not wlan.isconnected():
time.sleep(1)
logger = ep_logging.colored_logger(appname="main")
logger.notice("WiFi connected")
Wir werden hier später noch einiges ändern, für jetzt soll es aber ersteinmal ausreichen. Weiter geht es mit dem HTTP-Server im zweiten Teil.
Eydam-Prototyping
Saccasner Straße 19
03096 Schmogrow-Fehrow
Germany