Objectif :
Présentation de différents scripts en Python3 pour transformer le Raspberry Pi W(ireless) en tant que :
– Station pour se connecter à un point d’accès
– Point d’accès permettant à des appareils de s’y connecter
– Lecteur de page web
Pour en savoir plus :
https://how2electronics.com/getting-started-with-raspberry-pi-pico-w-using-micropython/
https://dev.webonomic.nl/scanning-network-with-the-raspberry-pi-pico-w
1/ Présentation du Raspberry Pico W.
Documentation officiel :
https://docs.micropython.org/en/latest/library/network.WLAN.html#class-wlan-control-built-in-wifi-interfaces
Le Pico W a 2 interfaces réseaux sans-fils :
– network.STA_IF : L’interface ‘station‘ ou ‘standard‘
Cette interface par défaut est utilisé pour connecter le Pico W à un autre point d’accès wifi.
– network.AP_IF : l’interface ‘point d’accès‘/’access-point‘
Cette interface est utilisé pour mettre le Pico W en un point d’accès Wifi.
Il est possible d’y connecter 4 appareils en même temps.
2/ Installer la dernière version du firmware qui est téléchargeable ici :
https://micropython.org/download/rp2-pico-w/
3/ Script pour scanner des points d’accès : scanap_v2.py
En résultat, on obtient :
numéro, ssid, bssid, canal, RSSI, sécurité, caché
Pour le champs ‘sécurité’ :
0 : Ouvert
1 : WEP
2 : WPA-PSK
3 : WPA2-PSK
4 : WPA/WPA2-PS
Pour le champs caché :
0 : Visible
1 : Caché
4/ Script pour se connecter à réseau sans-fil : conres_v2.py
En résultat, on obtient :
Adresse ip, masque de sous-réseau, gateway, serveur DNS
5/ Script de création de serveur web en tant que ‘station‘ : server_station_v1.py
Pour en savoir plus :
https://www.petecodes.co.uk/creating-a-basic-raspberry-pi-pico-web-server-using-micropython/
Ce script permet de contrôler l’allumage et l’extinction de la DEL verte du Raspberry Pico via une page web.
Voici une erreur possible :
OSError: [Errno 98] EADDRINUSE
Solution :
Enlever le Raspberry Pico, attendre quelques secondes et le rebrancher.
6/ Script de création de serveur web en tant que ‘point d’accès‘ : server_accesspoint_v1.py
Pour en savoir plus :
https://microcontrollerslab.com/raspberry-pi-pico-w-soft-access-point-web-server-example/
Lorsque le script est lancé, dans la fenêtre ‘Shell‘ est indiqué l’adresse ipv4 du point d’accès :
Connection is successful
('192.168.4.1', '255.255.255.0', '192.168.4.1', '0.0.0.0')
Soit : 192.168.4.1
Avec un smartphone, se connecter au point d’accès : RPI_PICO_AP
Puis taper dans la barre d’adresse internet du navigateur :
http://192.168.4.1
Une page web s’affiche avec titre :
Bienvenue sur le point d'accès RaspPico
Dans la fenêtre ‘Shell‘, s’affiche l’adresse ip du matériel connecté au point d’accès :
Got a connection from ('192.168.4.16', 36222)
Content = b'GET / HTTP/1.1\r\nHost: 192.168.4.1\r\nUser-Agent: Mozilla/5.0 (Android 8.1.0; Mobile; rv:94.0) Gecko/94.0 Firefox/94.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nAccept-Language: fr-FR\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\n\r\n'
7/ Script de lecteur de page web : readpage.py
Pour en savoir en plus :
https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf
Sous Thonny, Ce script permet de récupérer le code html d’une page web et de l’afficher dans le fenêtre ‘Shell‘.