Betreiben Sie einen Webserver auf Ihrem Raspberry Pi Pico W

Dieses Projekt kann als das "Hello World!" des Pico W betrachtet werden. Es demonstriert, wie man eine Wi-Fi-Verbindung herstellt, wie man einen HTTP-Webserver auf dem Pico W betreibt und wie man die GPIO-Pins steuert.

Wenn du ein schnelles und einfaches Projekt suchst, um mit deinem Pico anzufangen, ist dies genau das Richtige für dich!

Schritte zum Blinken der LED über WiFi auf dem Pico W

Es gibt drei übergreifende Themen, um dies zu erreichen.

MicroPython einrichten

Zunächst müssen Sie MicroPython einrichten. Laden Sie die UF2-Datei hier herunter das speziell für den Pico W gedacht ist.

Pico W Bootsel-Taste

Halten Sie die BOOTSEL-Taste gedrückt und schließen Sie Ihren Pico W über USB an.

Sobald er gemountet ist, kopieren Sie die soeben heruntergeladene UF2-Datei auf den Pico.

Thonny zum Programmieren von Pico W verwenden

Thonny macht es einfach, den Pico W zu programmieren, und er ist auf dem Raspberry Pi OS vorinstalliert. Sie können auch Hier können Sie es für Windows, Mac und Linux herunterladen.

Stellen Sie sicher, dass Ihr Interpreter auf MicroPython (Raspberry Pi Pico) eingestellt ist.

Thonny IDE mit Micropython

Thonny verbindet sich mit dem Raspberry Pi Pico W und Sie können Befehle in der Shell (dem unteren Segment der Thonny IDE) ausführen.

Führen Sie einen Netzwerk-Scan durch, um sicherzustellen, dass der Pico W Wireless funktioniert.

Thonny IDE führt einen Wlan-Scan durch

In der Shell können Sie diesen Code ausführen, um zu testen, ob Ihr Funkchip funktioniert.

Verwenden Sie diesen Code, um alle verfügbaren drahtlosen Netzwerke in Ihrem Gebiet auszudrucken.

import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
print(wlan.scan())

Programmieren Sie den Webserver

Erstellen Sie ein Wörterbuch namens geheimnisse.py und verwenden Sie den folgenden Inhalt, wobei Sie die Werte für ssid und pw durch Ihr Netzwerk ersetzen.

secrets = {
    'ssid': 'Replace-this-with-your-Wi-Fi-Name',
    'pw': 'Replace-this-with-your-Wi-Fi-Password'
    }

Dann erstellen Sie main.py die Ihren Hauptcode beherbergen wird. Da der Code viele Zeilen lang ist, Sie finden es hier in unserem Github.

Erstellen Sie die HTML-Seite, die ausgeliefert werden soll

Pico W Webserver

Die folgende Datei wird die HTML-Datei sein, die angezeigt wird, wenn Sie die IP-Adresse des Pico W laden. Speichern Sie sie als index.html

Es ist eine einfache Seite mit zwei Tasten, mit denen Sie die LED des Pico W ein- und ausschalten können.

<!DOCTYPE html>
<html>
    <head>
        <title>Pico W</title>
    </head>
    <body>
        <h1>Pico W</h1>
        <p>Control the onboard LED</p>
        <a href=\"?led=on\"><button>ON</button></a> 
        <a href=\"?led=off\"><button>OFF</button></a>
    </body>
</html>

Zeit, alles zu erledigen

Pico W Webserver

Klicken Sie in Thonny auf die Schaltfläche "Ausführen", die eine grüne Schaltfläche mit einem Spielsymbol ist.

Sie sehen die IP-Adresse des Pico W. Kopieren Sie diese in Ihren Webbrowser, der mit demselben drahtlosen Netzwerk verbunden ist.

Klicken Sie auf die Schaltflächen und Sie sollten die Änderung sehen.

Sie finden die Github repo hier, die alle Dateien hat.

Unser Das YouTube-Video zu diesem Projekt geht auch auf weitere Details ein, z. B. auf die Erklärung des Codes..

Und wenn Sie auf der Suche nach weiteren Projekten sind, die Sie inspirieren, dann schauen Sie sich unsere Paragon Projects-Serie an hier.

6 Kommentare

  1. Veröffentlich von Pablo am Juli 13, 2022 um 4:31 pm

    Fehler gefunden, wenn ich es ausprobiere

    %Run -c $EDITOR_CONTENT
    Traceback (letzter Aufruf):
    Datei "", Zeile 1, in
    ImportError: kein Modul namens 'Netzwerk'

  2. Veröffentlich von Charles am Oktober 25, 2022 um 8:51 pm

    In Zeile 100 verwenden Sie die Funktion get_html(). Wenn ich Ihren Code ausführe, erhalte ich die Fehlermeldung "get_html" ist nicht definiert.

  3. Veröffentlich von Gunther am November 28, 2022 um 12:51 am

    Die Suchfunktion gibt auch einen Wert zurück, wenn z.B. der Referrer den String 'led=xx' enthält. So erhalten led_on und led_off gleichzeitig einen positiven Wert und die LED wird wieder ausgeschaltet, obwohl sie eigentlich eingeschaltet werden sollte. Um dies zu umgehen, muss die if-Anweisung so erweitert werden, dass sie auf einen kleinen Indexwert prüft (ich habe 20 nur als Faustregel verwendet):

    wenn (led_on > -1 und led_on -1 und led_off < 20):
    Jetzt funktioniert es wie erwartet.

    • Veröffentlich von Tonton am August 1, 2024 um 4:09 pm

      J'ai résolu le problème en ajoutant la ligne :
      r = r[:50]
      Avantgarde
      led_on = r.find('?led=on')
      led_off = r.find('?led=off')

      Damit werden die überflüssigen Merkmale der Anfrage gelöscht.

  4. Veröffentlich von Gunther am November 28, 2022 um 12:53 am

    Ich habe versucht zu kommentieren, aber irgendwie kommt der Kommentar nicht richtig raus...

Hinterlassen Sie einen Kommentar