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+ |
Puoi anche acquistarli separatamente dai link qui sotto.
SN |
COMPONENTE |
QUANTITÀ |
LINK |
|---|---|---|---|
1 |
1 |
||
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())
Crea un nuovo script cliccando il pulsante Nuovo su Thonny, e copia e incolla il codice sopra, cambiando
SSIDePASSWORDcon i tuoi.
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.
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])
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.
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.
Copia il codice seguente in un nuovo file di script su Thonny. Ricorda di cambiare
SSIDePASSWORDcon i tuoi.secrets = { 'ssid': 'SSID', 'password': 'PASSWORD', }
Scegli Raspberry Pi Pico nella finestra popup che appare quando clicchi sul pulsante Salva o premi
Ctrl+S.
Imposta il nome a
secrets.py.
Ora puoi vedere questo script nel tuo Raspberry Pi Pico W.
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])
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.
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
Chiamandolo in altri script come segue, permetterà al Raspberry Pi Pico W di connettersi alla rete.
from do_connect import * do_connect()