ESP32 im WLAN
Der ESP32 hat ein WLAN-Modul mit dem er sich einerseits mit einem vorhandenem WLAN verbinden kann. Er kann aber auch selbst Access-Point sein. Wir schauen uns hier das Verbinden in ein vorhandenes WLAN an.
Zunächst muss ein Objekt der Klasse WLAN erzeugt werden.
import network
wlan = network.WLAN(network.STA_IF)
Dabei legt network.STA_IF
fest, dass der ESP32 sich als “Station” mit einem vorhanden WLAN verbinden soll.
Das WLAN-Interface muss dann noch aktiviert werden:
wlan.active(True)
Mit folgender Methode kann man die verfügbaren WLANs ermitteln:
wlanliste = wlan.scan()
Man erhält eine Liste von Tupeln (ssid, bssid, channel, RSSI, authmode, hidden)
Die Verbindung zu einem bestimmten WLAN kann man wie folgt aufbauen:
wlan_ssid = "MeinWLAN"
wlan_password = "Mein geheimes WLAN-Passwort"
wlan.connect(wlan_ssid,wlan_password)
Die Netzwerkparameter der Verbindung kann man sich dann wie folgt anzeigen lassen:
wlan.ifconfig()
Man erhält ein Tupel bestehend aus:
- IP-Adresse
- Subnetzmaske
- Gateway-Adresse
- DNS-Server-Adresse
Zudem kann man prüfen, ob eine Verbindung exisitert,
wlan.isconnected()
die Verbindung beenden
wlan.disconnect()
und das Interface deaktivieren, falls man es nicht mehr benötigt
wlan.active(False)
Insgesamt kann man mit folgendem Skript eine WLAN-Verbindung aufbauen:
import network
import time
wlan_ssid = "MeinWLAN"
wlan_password = "Mein geheimes WLAN-Passwort"
wlan = network.WLAN(network.STA_IF)
if not wlan.isconnected():
wlan.active(True)
wlan.connect(wlan_ssid,wlan_password)
while not wlan.isconnected():
pass
ifconfig = wlan.ifconfig()
print("IP-Adresse: ", ifconfig[0])
Speichert man dies in der boot.py
, wird der ESP32 beim jedem Start automatisch mit dem WLAN verbunden.
Weitere Informationen: