Kör en webbserver på din Raspberry Pi Pico W

Det här projektet kan ses som "Hello World!" för Pico W. Det visar hur man ansluter till Wi-Fi, hur man kör en HTTP-webbserver på Pico W och hur man styr GPIO-pinnarna.

Om du letar efter ett snabbt och enkelt projekt för att komma igång med din Pico är det här något för dig!

Steg för att blinka LED via WiFi på Pico W

Det finns tre övergripande teman för att få detta gjort.

Konfigurera MicroPython

Först måste du konfigurera MicroPython. Ladda ner UF2-filen här som är särskilt avsedd för Pico W.

Pico W Bootsel knapp

Håll ner BOOTSEL-knappen och anslut Pico W via USB.

När den är monterad kopierar du UF2-filen som du just laddat ner till Pico.

Använd Thonny för att programmera Pico W

Thonny gör det enkelt att programmera Pico W och den är förinstallerad på operativsystemet Raspberry Pi. Du kan också Du kan ladda ner det för Windows, Mac och Linux här.

Kontrollera att tolken är inställd på MicroPython (Raspberry Pi Pico).

Thonny IDE kör Micropython

Thonny ansluter till Raspberry Pi Pico W och du kan köra kommandon i skalet (det nedre segmentet i Thonnys IDE).

Kör en nätverkssökning för att bekräfta att Pico W trådlöst fungerar

Thonny IDE kör en wlan-sökning

I Shell kan du köra den här koden för att testa om ditt trådlösa chip fungerar.

Använd den här koden för att skriva ut alla tillgängliga trådlösa nätverk i ditt område.

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

Programmera webbservern

Skapa ett lexikon som heter secrets.py och använder följande innehåll, och ersätter värdet för ssid och pw med ditt nätverk.

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

Skapa sedan main.py som kommer att vara värd för din huvudkod. Eftersom koden är många rader lång, du kan hitta den här i vår Github.

Skapa den HTML-sida som kommer att visas

Pico W webbserver

Följande fil kommer att vara den HTML-fil som visas när du laddar Pico W:s IP-adress. Spara den som index.html

Det är en enkel sida med två knappar som låter dig slå på och av Pico W:s lysdiod.

<!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>

Dags att köra allt

Pico W webbserver

Klicka på knappen run (kör) i Thonny, som är en grön knapp med en spelsymbol.

Du ser Pico W:s IP-adress. Kopiera den till din webbläsare som är ansluten till samma trådlösa nätverk.

Klicka på knapparna och du bör se förändringen.

Du kan hitta Github-repo här som innehåller alla filer.

Vår YouTube-videon för detta projekt går också in på djupare detaljer som kodförklaring.

Och om du letar efter fler projekt som kan inspirera dig kan du kolla in vår serie Paragon Projects här.

5 Kommentarer

  1. Pablo den juli 13, 2022 kl 4:31 e m

    Fel hittades när jag försökte

    %Run -c $EDITOR_CONTENT
    Spårning (senaste anropet senast):
    Fil "", rad 1, i
    ImportError: ingen modul som heter "network".

  2. Charles den oktober 25, 2022 kl 8:51 e m

    På rad 100 använder du funktionen get_html(). När jag kör din kod får jag felet "get_html" är inte definierat.

  3. Gunther den november 28, 2022 kl 12:51 f m

    Funktionen search by find returnerar också ett värde om t.ex. referrer innehåller strängen "led=xx". Så både led_on och led_off får ett positivt värde samtidigt och lysdioden släcks igen när den skulle ha varit påslagen. För att komma till rätta med detta måste if-anvisningen utökas så att den kontrollerar ett litet indexvärde (jag använde 20 endast som en tumregel):

    om (led_on > -1 och led_on -1 och led_off < 20):
    Nu fungerar det som förväntat.

  4. Gunther den november 28, 2022 kl 12:53 f m

    Jag försökte kommentera, men på något sätt kommer kommentaren inte ut på rätt sätt...

Lämna en kommentar