Eseguire il server web per controllare il LED a bordo di Raspberry Pi Pico W

Questo progetto può essere considerato come il "Hello World!" del Pico W. Dimostra come connettersi al Wi-Fi, come eseguire un server web HTTP sul Pico e come controllare i pin GPIO.

Passi per far lampeggiare il LED via WiFi su Pico W

Ci sono tre temi generali per ottenere questo risultato.

Configurare MicroPython

Per prima cosa, è necessario configurare MicroPython. Scaricare il file UF2 qui che è specificamente destinato a Pico W.

Tenere premuto il pulsante BOOTSEL e collegare il Pico W via USB.

Una volta montato, copiare il file UF2 appena scaricato sul Pico.

Utilizzare Thonny per programmare Pico W

Thonny semplifica la programmazione di Pico W ed è preinstallato sul sistema operativo Raspberry Pi. È inoltre possibile scaricarlo per Windows, Mac e Linux qui.

Assicurarsi che l'interprete sia impostato su MicroPython (Raspberry Pi Pico).

Thonny si collegherà al Raspberry Pi Pico W e sarà possibile eseguire comandi nella shell (il segmento inferiore dell'IDE Thonny).

Eseguire una scansione della rete per verificare che il wireless di Pico W funzioni.

Nella shell, è possibile eseguire questo codice per verificare se il chip wireless funziona.

Utilizzate questo codice per stampare tutte le reti wireless disponibili nella vostra zona.

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

Programmare il server web

Creare un dizionario chiamato segreti.py e utilizzare il contenuto seguente, sostituendo i valori di ssid e pw con la propria rete.

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

Quindi, creare main.py che ospiterà il codice principale. Poiché il codice è lungo molte righe, è possibile trovarlo qui nel nostro Github.

Creare la pagina HTML che verrà servita

Il seguente file sarà il file HTML che verrà servito quando si carica l'indirizzo IP di Pico W. Salvarlo come indice.html

Si tratta di una semplice pagina con due pulsanti che consentono di accendere e spegnere il LED della Pico W.

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

E' tempo di gestire tutto

Fate clic sul pulsante di esecuzione di Thonny, un pulsante verde con il simbolo del gioco.

Verrà visualizzato l'indirizzo IP di Pico W. Copiarlo nel browser Web collegato alla stessa rete wireless.

Cliccate sui pulsanti e vedrete la modifica.

È possibile trovare il Il repo di Github contiene tutti i file.

Il nostro Il video di YouTube per questo progetto approfondisce anche i dettagli, come le spiegazioni del codice..

4 commenti

  1. Pablo in Luglio 13, 2022 il 4:31 pm

    Errore trovato quando lo provo

    %Run -c $EDITOR_CONTENT
    Traceback (ultima chiamata più recente):
    File "", riga 1, in
    ImportError: nessun modulo chiamato 'network'

  2. Charles in Ottobre 25, 2022 il 8:51 pm

    Alla riga 100 si utilizza la funzione get_html(). Quando eseguo il codice, ottengo un errore "get_html" non è definito.

  3. Gunther in Novembre 28, 2022 il 12:51 am

    La funzione di ricerca per ricerca restituisce anche un valore se, ad esempio, il referrer contiene la stringa 'led=xx'. Quindi sia led_on che led_off ottengono un valore positivo allo stesso tempo e il LED viene spento di nuovo, quando invece si voleva accendere. Per ovviare a questo problema, l'istruzione if deve essere estesa per controllare un valore di indice piccolo (ho usato 20 solo come regola generale):

    se (led_on > -1 e led_on -1 e led_off < 20):
    Ora funziona come previsto.

Lascia un commento