.. note:: Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten. **Warum beitreten?** - **Expertenunterstützung**: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams. - **Lernen & Teilen**: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern. - **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken. - **Spezialrabatte**: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte. - **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil. 👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [|link_sf_facebook|] und treten Sie heute bei! .. _iot_access: 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: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Name - ARTIKEL IN DIESEM SET - LINK * - Kepler-Kit - 450+ - |link_kepler_kit| Sie können diese auch separat über die untenstehenden Links erwerben. .. list-table:: :widths: 5 20 5 20 :header-rows: 1 * - SN - KOMPONENTE - ANZAHL - LINK * - 1 - :ref:`cpn_pico_w` - 1 - |link_picow_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. .. code-block:: python import network wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect("SSID","PASSWORT") print(wlan.isconnected()) #. 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. .. image:: img/access1.png #. 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. .. note:: 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. .. image:: img/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. .. code-block:: python 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]) .. image:: img/access3.png * ``wlan.status()`` Funktion: Gibt den aktuellen Status der WLAN-Verbindung zurück. Die Rückgabewerte sind in der folgenden Tabelle aufgeführt. .. list-table:: :widths: 40 10 50 * - 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 `_ .. _create_secrets: 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. .. code-block:: python 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. .. image:: img/access4.png # Vergeben Sie den Dateinamen ``secrets.py``. .. image:: img/access5.png # Nun ist das Skript auf Ihrem Raspberry Pi Pico W einsehbar. .. image:: img/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. .. code-block:: python :emphasize-lines: 3,7 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]) .. image:: img/access8.png .. _do_connect: 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``. .. code-block:: python 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 .. image:: img/access7.png # Ein Aufruf in anderen Skripten nach dem folgenden Schema ermöglicht die Netzwerkverbindung des Raspberry Pi Pico W. .. code-block:: python from do_connect import * do_connect() .. https://www.tomshardware.com/de/reviews/raspberry-pi-pico-w