Run webserver om LED op Raspberry Pi Pico W te bedienen

Dit project kan worden beschouwd als de 'Hallo Wereld' van de Pico W. Het demonstreert hoe verbinding te maken met Wi-Fi, hoe een HTTP webserver op de Pico te draaien en hoe de GPIO pinnen aan te sturen.

Stappen om LED te laten knipperen via WiFi op Pico W

Er zijn drie overkoepelende thema's om dit voor elkaar te krijgen.

MicroPython instellen

Eerst moet u MicroPython instellen. Download het UF2 bestand hier die speciaal bedoeld is voor de Pico W.

Houd de BOOTSEL knop ingedrukt en sluit uw Pico W aan via USB.

Zodra het gemount is, kopieer het UF2 bestand dat je net gedownload hebt naar de Pico.

Gebruik Thonny om Pico W te programmeren

Thonny maakt het gemakkelijk om de Pico W te programmeren en het komt voorgeïnstalleerd op het Raspberry Pi OS. U kunt ook download het hier voor Windows, Mac en Linux.

Zorg ervoor dat uw interpreter is ingesteld op MicroPython (Raspberry Pi Pico).

Thonny zal verbinding maken met de Raspberry Pi Pico W en u kunt commando's uitvoeren in de shell (het onderste segment van de Thonny IDE).

Voer een netwerkscan uit om te controleren of de draadloze Pico W werkt

In de Shell kunt u deze code uitvoeren om te testen of uw draadloze chip werkt.

Gebruik deze code om alle beschikbare draadloze netwerken in uw omgeving af te drukken.

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

Programmeer de webserver

Maak een woordenboek genaamd secrets.py en gebruik de volgende inhoud, waarbij u de waarde voor ssid en pw vervangt door uw netwerk.

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

Maak dan main.py die uw hoofdcode zal hosten. Aangezien de code vele regels lang is, u kunt het hier vinden in onze Github.

Maak de HTML pagina die geserveerd zal worden

Het volgende bestand wordt het HTML-bestand dat wordt geserveerd wanneer u het IP-adres van de Pico W laadt. Sla het op als index.html

Het is een eenvoudige pagina met twee knoppen waarmee u de LED van de Pico W kunt in- en uitschakelen.

<!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>&nbsp;
        <a href=\"?led=off\"><button>OFF</button></a>
    </body>
</html>

Tijd om het allemaal te doen

Klik op de run knop in Thonny, dat is een groene knop met een play symbool.

U ziet het IP adres van de Pico W. Kopieer dat in uw web browser die verbonden is met hetzelfde draadloze netwerk.

Klik op de knoppen en u zou de verandering moeten zien.

U kunt de Github repo hier die alle bestanden heeft.

Onze YouTube-video voor dit project gaat ook dieper in op details zoals uitleg over de code.

5 Opmerkingen

  1. Pablo op juli 13, 2022 op 4:31 pm

    Fout gevonden toen ik het probeerde.

    %Run -c $EDITOR_CONTENT
    Traceback (meest recente oproep laatst):
    Bestand "", regel 1, in
    ImportError: geen module met de naam 'network'

  2. Charles op oktober 25, 2022 op 8:51 pm

    In regel 100 gebruik je get_html() functie. Wanneer ik je code uitvoer krijg ik een 'get_html' is niet gedefinieerd foutmelding.

  3. Gunther op november 28, 2022 op 12:51 am

    De zoekfunctie geeft ook een waarde terug als bijv. de referrer de string 'led=xx' bevat. Dus zowel led_on als led_off krijgen tegelijkertijd een positieve waarde en de LED wordt weer uitgeschakeld, terwijl het de bedoeling was dat hij aan zou gaan. Om dit te ondervangen moet het if statement worden uitgebreid om te controleren op een kleine indexwaarde (ik heb als vuistregel slechts 20 gebruikt):

    als (led_on > -1 en led_on -1 en led_off < 20):
    Nu werkt het zoals verwacht.

  4. Gunther op november 28, 2022 op 12:53 am

    Ik probeerde commentaar te geven, maar op de een of andere manier komt het commentaar niet goed...

Laat een reactie achter