Nota

Ciao, benvenuto nella Community di appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.

Perché unirti?

  • Supporto esperto: Risolvi i problemi post-vendita e affronta le sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a promozioni festive e concorsi a premi.

👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

1. Accesso alla Rete

Il Raspberry Pi Pico W è molto simile al Raspberry Pi Pico, con gli stessi GPIO, porta microUSB e dimensioni. L’unica differenza è l’aggiunta del chip Wi-Fi CYW43439 a 2,4 GHz di Infineon. Ora vediamo come si collega alla nostra rete Wi-Fi.

Componenti necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit Kepler

450+

Kepler Ultimate Kit

Puoi anche acquistarli separatamente dai link qui sotto.

SN

COMPONENTE

QUANTITÀ

LINK

1

Introduzione al Pico W

1

ACQUISTA

2

Cavo Micro USB

1

1. Collegarsi a Internet

Con solo cinque righe di MicroPython, il nostro Raspberry Pi Pico W si collega felicemente a Internet.

Queste 5 righe di codice possono essere eseguite direttamente dalla Shell, premendo Enter dopo averle digitate. Oppure, puoi seguire il metodo seguente e creare un nuovo file .py per eseguirlo.

import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID","PASSWORD")
print(wlan.isconnected())
  1. Crea un nuovo script cliccando il pulsante Nuovo su Thonny, e copia e incolla il codice sopra, cambiando SSID e PASSWORD con i tuoi.

    ../../_images/access1.png
  2. Per eseguire lo script, clicca sul pulsante Esegui script corrente o premi F5. Se la connessione ha successo, verrà stampato true.

    Nota

    Assicurati che il Raspberry Pi Pico W sia collegato al computer tramite un cavo USB, quindi clicca nell’angolo in basso a destra per selezionare MicroPython (Raspberry Pi Pico).COMXxx come interprete.

    ../../_images/access2.png

2. Valutazione del Timeout e Mostra IP

Considerando alcune condizioni di rete scadenti, aggiungiamo un timeout al codice.

Se la connessione ha successo, l’IP del Pico W verrà visualizzato dopo aver copiato e eseguito lo script.

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])
../../_images/access3.png
  • Funzione wlan.status(): Restituisce lo stato attuale della connessione wireless, il valore restituito è mostrato nella tabella seguente.

    Stato

    Valore

    Descrizione

    STAT_IDLE

    0

    nessuna connessione e nessuna attività,

    STAT_CONNECTING

    1

    connessione in corso,

    STAT_WRONG_PASSWORD

    -3

    fallito a causa di password errata,

    STAT_NO_AP_FOUND

    -2

    fallito perché nessun punto di accesso ha risposto,

    STAT_CONNECT_FAIL

    -1

    fallito a causa di altri problemi,

    STAT_GOT_IP

    3

    connessione riuscita.

  • Funzione wlan.ifconfig(): Ottiene indirizzi IP, maschere di sottorete, gateway e server DNS. Questo metodo restituirà un 4-tuple contenente le informazioni sopra quando chiamato direttamente. In questo caso, stampiamo solo l’indirizzo IP.

  • class WLAN – MicroPython Docs

3. Salvare informazioni private in secrets.py

Quando condividi il tuo progetto Pico W, probabilmente non vorrai che altri vedano la tua password Wi-Fi o la chiave API. Per una buona sicurezza, possiamo creare un file secrets.py per memorizzare le tue informazioni private.

  1. Copia il codice seguente in un nuovo file di script su Thonny. Ricorda di cambiare SSID e PASSWORD con i tuoi.

    secrets = {
    'ssid': 'SSID',
    'password': 'PASSWORD',
    }
    
  2. Scegli Raspberry Pi Pico nella finestra popup che appare quando clicchi sul pulsante Salva o premi Ctrl+S.

    ../../_images/access4.png
  3. Imposta il nome a secrets.py.

    ../../_images/access5.png
  4. Ora puoi vedere questo script nel tuo Raspberry Pi Pico W.

    ../../_images/access6.png
  5. In altri script, puoi chiamarlo come segue. Se lo esegui, vedrai una connessione Wi-Fi riuscita. Il file secrets.py è importato come una libreria, quindi non dobbiamo preoccuparci della fuga di informazioni.

    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])
    
    ../../_images/access8.png

4. Connettiti a Internet tramite do_connect.py

Considerando che ciascuno dei nostri prossimi progetti richiederà una connessione di rete, perché non creare un nuovo file do_connect.py e scrivere le funzioni rilevanti al suo interno per riutilizzarle, il che può semplificare notevolmente il codice di progetti complessi.

  1. Copia il seguente codice in un nuovo file di script e salvalo su Raspberry Pi Pico come do_connect.py.

    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
    
    ../../_images/access7.png
  2. Chiamandolo in altri script come segue, permetterà al Raspberry Pi Pico W di connettersi alla rete.

    from do_connect import *
    do_connect()