1. Zugang zum Netzwerk

Das Raspberry Pi Pico W ähnelt stark dem Raspberry Pi Pico und bietet die gleichen GPIOs, den gleichen Micro-USB-Anschluss und die gleiche Größe. Der einzige Unterschied ist der zusätzliche CYW43439 2,4-GHz-WLAN-Chip von Infineon. Jetzt schauen wir uns an, wie es sich mit unserem WLAN-Netzwerk verbindet.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Set zu kaufen. Hier ist der Link:

Name

ARTIKEL IN DIESEM SET

LINK

Kepler-Kit

450+

Kepler Kit

Sie können diese auch separat über die untenstehenden Links erwerben.

SN

KOMPONENTE

ANZAHL

LINK

1

Raspberry Pi Pico W

1

BUY

2

Micro-USB-Kabel

1

1. Internetverbindung herstellen

Mit nur fünf Zeilen MicroPython ist unser Raspberry Pi Pico W problemlos mit dem Internet verbunden.

Sie können den folgenden Code direkt in der Shell ausführen. Drücken Sie nach der Eingabe die Enter-Taste. Alternativ folgen Sie der untenstehenden Anleitung und legen eine neue .py-Datei an, um den Code auszuführen.

import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID","PASSWORT")
print(wlan.isconnected())
  1. Erstellen Sie ein neues Skript, indem Sie in Thonny auf die Schaltfläche Neu klicken. Kopieren Sie dann den oben stehenden Code und ändern Sie SSID und PASSWORT entsprechend Ihren Angaben.

    ../_images/access1.png
  2. Um das Skript auszuführen, klicken Sie auf die Schaltfläche Aktuelles Skript ausführen oder drücken Sie F5. Bei erfolgreicher Verbindung wird true ausgegeben.

    Bemerkung

    Vergewissern Sie sich, dass das Raspberry Pi Pico W per USB-Kabel mit dem Computer verbunden ist. Wählen Sie dann unten rechts MicroPython (Raspberry Pi Pico).COMXxx als Interpreter.

    ../_images/access2.png

2. Zeitüberschreitung und IP-Anzeige

Angesichts potenziell schlechter Netzwerkbedingungen fügen wir dem Code eine Überprüfung für Zeitüberschreitungen hinzu.

Ist die Verbindung erfolgreich, wird die IP-Adresse des Pico W nach dem Ausführen des Skripts angezeigt.

import network
import time

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID","PASSWORD")

# Wait for connect or fail
wait = 10
while wait > 0:
    if wlan.status() < 0 or wlan.status() >= 3:
        break
    wait -= 1
    print('waiting for connection...')
    time.sleep(1)

# Handle connection error
if wlan.status() != 3:
    raise RuntimeError('wifi connection failed')
else:
    print('connected')
    print('IP: ', wlan.ifconfig()[0])
../_images/access3.png
  • wlan.status() Funktion: Gibt den aktuellen Status der WLAN-Verbindung zurück. Die Rückgabewerte sind in der folgenden Tabelle aufgeführt.

    Status

    Wert

    Beschreibung

    STAT_IDLE

    0

    keine Verbindung und keine Aktivität,

    STAT_CONNECTING

    1

    Verbindungsaufbau läuft,

    STAT_WRONG_PASSWORD

    -3

    fehlgeschlagen wegen falschem Passwort,

    STAT_NO_AP_FOUND

    -2

    fehlgeschlagen, weil kein Zugangspunkt antwortete,

    STAT_CONNECT_FAIL

    -1

    fehlgeschlagen aus anderen Gründen,

    STAT_GOT_IP

    3

    Verbindung erfolgreich.

  • wlan.ifconfig() Funktion: Ermittelt IP-Adressen, Subnetzmasken, Gateways und DNS-Server. Bei direktem Aufruf wird ein 4-Tupel mit den genannten Informationen zurückgegeben. In diesem Fall zeigen wir nur die IP-Adresse an.

  • class WLAN – MicroPython Docs

3. Speichern privater Informationen in secrets.py

Wenn Sie Ihr Pico W-Projekt teilen möchten, wollen Sie sicher nicht, dass andere Ihr WLAN-Passwort oder Ihren API-Schlüssel einsehen können. Aus Sicherheitsgründen legen wir daher eine secrets.py-Datei an, um diese sensiblen Informationen zu schützen.

# Fügen Sie den folgenden Code in eine neue Skriptdatei in Thonny ein. Passen Sie SSID und PASSWORT Ihren eigenen Anmeldedaten an.

secrets = {
'ssid': 'SSID',
'password': 'PASSWORT',
}

# Wählen Sie Raspberry Pi Pico im Popup-Fenster aus, das erscheint, wenn Sie auf „Speichern“ klicken oder Strg+S drücken.

../_images/access4.png

# Vergeben Sie den Dateinamen secrets.py.

../_images/access5.png

# Nun ist das Skript auf Ihrem Raspberry Pi Pico W einsehbar.

../_images/access6.png

# In anderen Skripten können Sie die Datei folgendermaßen einbinden. Nach der Ausführung sollten Sie eine erfolgreiche WLAN-Verbindung feststellen. Die secrets.py-Datei wird als Bibliothek importiert, sodass kein Risiko eines Informationslecks besteht.

import network
import time
from secrets import secrets

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(secrets['ssid'], secrets['password'])

# Wait for connect or fail
wait = 10
while wait > 0:
    if wlan.status() < 0 or wlan.status() >= 3:
        break
    wait -= 1
    print('waiting for connection...')
    time.sleep(1)

# Handle connection error
if wlan.status() != 3:
    raise RuntimeError('wifi connection failed')
else:
    print('connected')
    print('IP: ', wlan.ifconfig()[0])
../_images/access8.png

4. Internetverbindung über do_connect.py

Da unsere zukünftigen Projekte aller Voraussicht nach eine Netzwerkverbindung benötigen, bietet es sich an, eine separate do_connect.py-Datei anzulegen und darin die relevanten Funktionen zu speichern. So können wir den Code für komplexere Projekte erheblich vereinfachen.

# Kopieren Sie den nachfolgenden Code in eine neue Skriptdatei und speichern Sie diese auf dem Raspberry Pi Pico als do_connect.py.

import network
import time
from secrets import *

def do_connect(ssid=secrets['ssid'],psk=secrets['password']):
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(ssid, psk)

    # Wait for connect or fail
    wait = 10
    while wait > 0:
        if wlan.status() < 0 or wlan.status() >= 3:
            break
        wait -= 1
        print('waiting for connection...')
        time.sleep(1)

    # Handle connection error
    if wlan.status() != 3:
        raise RuntimeError('wifi connection failed')
    else:
        print('connected')
        ip=wlan.ifconfig()[0]
        print('network config: ', ip)
        return ip
../_images/access7.png

# Ein Aufruf in anderen Skripten nach dem folgenden Schema ermöglicht die Netzwerkverbindung des Raspberry Pi Pico W.

from do_connect import *
do_connect()