33. Lektion: Wlan: Unterschied zwischen den Versionen

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche
Zeile 29: Zeile 29:
 
<pre>
 
<pre>
 
import network
 
import network
 +
from geheim import SSID, PW
  
 
# Wlan Verbindung herstellen
 
# Wlan Verbindung herstellen
Zeile 36: Zeile 37:
 
if not wlan.isconnected():
 
if not wlan.isconnected():
 
     print('connecting to network...')
 
     print('connecting to network...')
     wlan.connect('ssid', 'key')
+
     wlan.connect(SSID, PW)
 
     while not wlan.isconnected():
 
     while not wlan.isconnected():
 
         pass
 
         pass

Version vom 19. Dezember 2023, 18:57 Uhr

Der Pico W hat ein Wlan Modul an Board. Nun wollwn wir sehen wie man sich mit dem Pico W beim Wlan anmeldet.
Wie immer bei Micropython müssen wir zuerst eine Instanz erstellen. In diesem Fall von der Klasse network.WLAN:

wlan = network.WLAN(network.STA_IF)

Wir können unseren Pico W als als Station (network.STA_IF) anmelden oder ein neues Wlan aufmachen. Dazu müssen wir den Pico W als Accesspoint (network.AP_IF) oinitialisieren.
Nun muss die Wlan Instanz aktiviert werden.

wlan.active(True)

Schließlich können wir unseren Pico W bei unserem Accesspoint (Router) anmelden.

wlan.connect('ssid', 'key')

Um die Zugangsdaten zum Wlan nicht mit dem Programm öffentlich zu machen, kann man diese in eine eigene Datei schreiben:

# geheim.py

SSID = 'Attraktor'
PW = 'blafablafa'

Dieses kleine Programm kann dann in das Wlan Programm importiert werden.

from geheim import SSID, PW

Im Prinzip können wir die Anmeldung mit diesen drei Schritten durchführen.
In der Praxis funktioniert die Anmeldung aber nicht immer schnell und problemlos. Deshalb ist noch ein wenig Code nötig, der prüft, ob eine Verbindung zustande gekommen ist und ggf. noch darauf wartet, bevor das Programm weiter ausgeführt wird.

import network
from geheim import SSID, PW

# Wlan Verbindung herstellen

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
    print('connecting to network...')
    wlan.connect(SSID, PW)
    while not wlan.isconnected():
        pass
print('network config:', wlan.ifconfig())

Dieses Programm gibt zum einen Meldungen aus, so dass der User darüber informiert wird was gerade passiert.
Zum Anderen prüft es, ob die Verbindung schon zustande gekommen ist. Wenn nicht wird weiter gewartet, wenn wird die Warteschleife abgebrochen und das Programm fortgesetzt. Dem User werde dann noch Informationen zum Wlan angezeigt.
Wenn man eine Wlanverbindung aufbauen will sollte man immer diesen kleinen Codeschnipsel einsetzen,
Eine Verbesserung ist daran noch möglich: Ein Timeout einbauen und das Programm abbrechen, wenn die Verbindung nicht zustande kommt.




Navigation

Zurück zur "Micropython Kurs 2023 Teil 2" Startseite
Zurück zur "Micropython Kurs 2023" Startseite
Zurück zur Programmieren Startseite
Zurück zur Wiki Startseite