Ein Wirless Access Point stellt ein eigenes drahtloses Netzwerk (WLAN) zur Verfügung. Mit einem entsprechenden Gerät (Smartphone, Tablet...) kann man diesem Netzwerk beitreten. Mehr ist nicht vorgesehen. In der nächsten Übung läuft dann auf dem ESP32 ein Webserver.
In der Klasse network sind alle notwendigen Methoden zum Erstellen eines Access-Point enthalten. Der Name des Access-Point ist hier ESP32. Werden in einem Raum mehrere Geräte im Einsatz, muss dieser Name individuell angepasst werden.
Läuft das Programm auf dem ESP32, kann man sich mit einem mobilen Gerät (Smartphone, Tablet...) am Access-Point anmelden.
import network
import time
# Access Point erstellen
ap = network.WLAN(network.AP_IF) # WLAN-Objekt für den Access Point erstellen
ap.active(True) # Access Point aktivieren
# SSID und Passwort für den Access Point festlegen
ap.config(essid="ESP32", password="12345678", authmode=network.AUTH_WPA_PSK)
while ap.active() == False: # Warten bis der Access Point aktiv ist
pass
# Access Point aktiv und Konfiguration anzeigen
print("Access Point aktiv")
print(ap.ifconfig()) # Es werden die Daten des Access-Point angezeigt
while True:
stations = ap.status('stations') # Die Informationen der angemeldeten Geräte werden geholt
print('Verbunden:', stations) # und angezeigt
time.sleep(5) # eine Pause von 5 Sekunden
Hat sich ein Gerät mit dem Access-Point verbunden, wird es angezeigt. Es funktioniert!
Die Methode ap.ifconfig() zeigt:
Der ESP32 hat standardmäßig die IP-Adresse 192.168.4.1. Das erste Gerät, das sich mit dem Access-Point verbindet, bekommt über den automatisch gestarteten DHCP-Server die Adresse 192.168.4.2. Für jedes weitere Gerät wird dann entsprechend der Netzwerkmaske die letzte Stelle der IP-Adresse hochgezählt.
Hat man mehrere ESP32 im Raum, muss jeder Access-Point einen eigenen Adressraum benutzen.
Übergibt man der Methode ap.ifconfig() Parameter, kann man die Adressen selber festlegen:
ap.ifconfig(('192.168.10.1', '255.255.255.0', '192.168.10.1', '192.168.10.1'))