Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| esp32:esp32web [2026/02/23 06:08] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | esp32:esp32web [2026/02/23 06:08] (aktuell) – ↷ Seite von esp32web nach esp32:esp32web verschoben laedi | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ===== boot.py und main.py ===== | ||
| + | Recherchieren Sie, was das '' | ||
| + | Z.B. hier: [[https:// | ||
| + | |||
| + | ===== Drahtlos-Verbindung ===== | ||
| + | Der ESP32-Chip ist Bluetooth- und WLAN-fähig. Er kann sich mit einem WLAN-Netzwerk verbinden oder selbst eines erzeugen. Diese Funktion muss jedoch noch aktiviert werden: | ||
| + | * Verbinden Sie den ESP32 mit ihrem Laptop und öffnen Sie Thonny. | ||
| + | * Im unteren Fenster (Shell) sollten nun wieder die Zeichen '' | ||
| + | * Führen Sie nun folgenden Befehl aus: | ||
| + | < | ||
| + | import webrepl_setup | ||
| + | </ | ||
| + | * Bestätigen Sie das Aktivieren der WLAN-Funktion mit '' | ||
| + | * Führen Sie mit '' | ||
| + | * Nun kann ein WLAN-Netzwerk erstellt werden. Z.B. mit: | ||
| + | < | ||
| + | import network | ||
| + | ap = network.WLAN(network.AP_IF) | ||
| + | ap.active(True) | ||
| + | ap.config(essid = ' | ||
| + | ap.config(authmode=3, | ||
| + | </ | ||
| + | * Der Befehl '' | ||
| + | * Per Smartphone oder Notebook können Sie sich nun ins ESP32-Wifi einloggen. | ||
| + | * Nach der Verbindung passiert nichts, da der ESP32 lediglich ein Netzwerk erstellt hat, wir haben aber keine weiteren Befehle verwendet, um z.B. Text oder eine Webseite auszugeben... Im Folgenden können Sie aber einen Web-Server mit einfacher Webseite mit dem ESP32 erstellen. | ||
| + | |||
| + | ===== Web-Server ===== | ||
| + | Versuchen Sie den Code von oben (Drahtlos-Verbindung) zu ergänzen, dass Sie mit dem Smartphone/ | ||
| + | |||
| + | Mögliche ChatGPT-Prompts: | ||
| + | * Programmiere in Micropython eine Webseite auf einem ESP32 mit dem Text "Hallo Welt!" | ||
| + | * | ||
| + | |||
| + | <button collapse=" | ||
| + | |||
| + | < | ||
| + | < | ||
| + | import socket, network | ||
| + | |||
| + | ap = network.WLAN(network.AP_IF) | ||
| + | ap.active(True) | ||
| + | ap.config(essid = ' | ||
| + | ap.config(authmode=3, | ||
| + | |||
| + | |||
| + | def webseite(): #Diese Funktion definiert ihre HTML-Webseite | ||
| + | html = """< | ||
| + | return html | ||
| + | |||
| + | addr = socket.getaddrinfo(' | ||
| + | s = socket.socket() | ||
| + | s.bind(addr) | ||
| + | s.listen(5) | ||
| + | |||
| + | while True: | ||
| + | conn, addr = s.accept() | ||
| + | print(' | ||
| + | request = conn.recv(1024) | ||
| + | print(' | ||
| + | response = webseite() | ||
| + | conn.send(response) | ||
| + | conn.close() | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Neopixel per Smartphone steuern ===== | ||
| + | Die Steuerung von der Neopixel-LED kann mit der Funktion des Webservers kombiniert werden, um die LED per Smartphone zu steuern. | ||
| + | * Versuchen Sie den ESP32 so zu programmieren, | ||
| + | |||
| + | <button collapse=" | ||
| + | |||
| + | < | ||
| + | < | ||
| + | import socket, machine, neopixel | ||
| + | import network | ||
| + | |||
| + | np = neopixel.NeoPixel(machine.Pin(7), | ||
| + | |||
| + | np[0] = (255,0,0) | ||
| + | np.write() | ||
| + | |||
| + | ap = network.WLAN(network.AP_IF) | ||
| + | ap.active(True) | ||
| + | ap.config(essid = ' | ||
| + | ap.config(authmode=3, | ||
| + | addr = socket.getaddrinfo(' | ||
| + | s = socket.socket() | ||
| + | s.bind(addr) | ||
| + | s.listen(1) | ||
| + | ledstatus = " | ||
| + | |||
| + | print(' | ||
| + | |||
| + | |||
| + | def web_page(): | ||
| + | | ||
| + | html = """< | ||
| + | <link rel=" | ||
| + | h1{color: #0F3376; padding: 2vh; | ||
| + | border-radius: | ||
| + | .button2{background-color: | ||
| + | < | ||
| + | < | ||
| + | return html | ||
| + | |||
| + | |||
| + | while True: | ||
| + | conn, addr = s.accept() | ||
| + | print(' | ||
| + | request = conn.recv(1024) | ||
| + | request = str(request) | ||
| + | print(' | ||
| + | ledr = request.find('/? | ||
| + | ledg = request.find('/? | ||
| + | if ledr == 6: | ||
| + | print(' | ||
| + | np[0] = (255, 0, 0) | ||
| + | ledstatus=" | ||
| + | np.write() | ||
| + | if ledg == 6: | ||
| + | print(' | ||
| + | np[0] = (0, 100, 0) | ||
| + | ledstatus=" | ||
| + | np.write() | ||
| + | response = web_page() | ||
| + | conn.send(' | ||
| + | conn.send(' | ||
| + | conn.send(' | ||
| + | conn.sendall(response) | ||
| + | conn.close() | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== * Webserver mit BME280 und OLED ===== | ||
| + | Bonus: Versuchen Sie eine Webseite auf dem ESP32 zu programmieren, | ||