|

Raspberry Pi Pico W : utilisation de la LED interne

Voici venir le tout nouveau Raspberry Pi Pico W, avec le WiFi intégré :

Force est de constater que cette p’tite framboise à 6 € offre de multiples possibilités pour qui voudra programmer en Python, oubliant le langage plutôt hermétique des ardui-bidules, pas forcément ma tasse de thé vous l’aurez compris.

Nous allons voir ici comment connecter le Pico W au WiFi, créer une simple page Web et venir allumer la LED interne sitée à proximité du connecteur USB. Nous supposerons que vous avez déjà installé le firmware et allez utiliser Thonny, le soft idéal pour programmer et injecter vos scripts python.

Commençons par créer un fichier secrets.py que nous allons sauvegarder sur le Pico W, fichier qui aura le contenu suivant :

SSID = "nom_du_réseau_wifi"
PASSWORD = "clé_de_sécurité"

Passons ensuite au script principal qui sera lui sauvegardé dans main.py sur le Pico W :

import usocket as socket
import network
from machine import Pin
import secrets

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(secrets.SSID, secrets.PASSWORD)
light = machine.Pin("LED", machine.Pin.OUT)

Led = "ON"

htmlresponse = """HTTP/1.0 200 OK
Content-Type: text/html

<!DOCTYPE html>
<meta charset="UTF-8">
<html>
    <head>
        <title>Serveur RaspiPicoW</title>
    </head>
    <body>
        <p>Etat de la LED : {} </p>
        <p> <a href = "/?etat=on" >Led ON </a>  </p>
        <p> <a href = "/?etat=off" >Led OFF </a> </p>
        <p> <a href = "/?etat=toggle" >TOGGLE </a> </p>
    </body>
</html>
"""

def connexion_wifi(ssid,password):
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print("connexion",ssid)
        wlan.connect(secrets.SSID, secrets.PASSWORD)
        while not wlan.isconnected():
            pass
    print("Adresse IP :", wlan.ifconfig()[0])
    print("Masque réseau : ", wlan.ifconfig()[1])
    print("Gateway :", wlan.ifconfig()[2])
    print("Serveur DNS :", wlan.ifconfig()[3])
    return wlan.ifconfig()[0]

AdresseIP = connexion_wifi(secrets.SSID, secrets.PASSWORD)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((AdresseIP,8080))
s.listen(1)

while True :
    print("Attente connexion ...")
    connexion = s.accept()
    ClientAddress = connexion[1]
    ClientSocket = connexion[0]
    print("Adresse client connecté :",ClientAddress[0])
    request = ClientSocket.recv(2048)
    Lrequest = request.decode('utf-8').split(' ')
    if Lrequest[0] == 'GET' :
        url =Lrequest[1]
        if url[0:7] =="/?etat=":
            if url[7:] == 'on':
                light.on()
                Led = "ON"
            elif url[7:] == 'off':
                light.off()
                Led = "OFF"
            elif url[7:] == 'toggle':
                light.toggle()
        ClientSocket.send(htmlresponse.format(Led))
    ClientSocket.close()

Il ne vous reste plus qu’à exécuter le script, le Shell vous affichera l’adresse IP obtenue une fois le WiFi connecté. Rendez vous sur cette adresse IP via votre navigateur internet et hop :

La page web interne s’affiche, à vous de jouer maintenant !

Publications similaires

  • Visiophonez en plein océan

    Quel rapport entre la visiophonie et ce blog WiFi ? Le fait que Philippe Kahn, navigateur de son état, a récemment pu effectuer une visiophonie en utilisant le point d’accès WiFi installé à bord de son bateau et une connexion satellitaire. L’outil utilisé ? Un iPhone 4 bien entendu, avec Facetime. Perdu entre la Californie et Hawaï, le navigateur n’a visiblement pas rencontré les difficultés inhérentes à la réception 3G des nouveaux appareils de la Pomme 😉 Visualisez la vidéo…

  • Raspberry Pi Zero : nouveau, miniature, mais….

      Nos ingénieux concepteurs britanniques annoncent un nouveau venu sur le marché des mini-machines : le Raspberry Pi Zero ! Les caractéristiques techniques, avant de détailler plus avant : CPU Broadcom BCM2835, 1GHz ARM11 core (40% plus rapide que le premier Raspberry Pi 1) Ram 512MB LPDDR2 slot micro-SD connecteur mini-HDMI, 1080p60 Micro-USB pour alimentation et data Port GPIO 40 broches identique aux Raspberry Pi A+/B+/2B un port vidéo (non connecté) Dimensions de seulement 65mm x 30mm x 5mm Bon, génial, un module…

  • Pont réseau WiFi 2.4 GHz : absurde !!

    Parfois je me demande si le côté pécunier de certains vendeurs en ligne ne prend pas le pas sur la raison et le seul objectif à atteindre : satisfaire le client ! C’est ainsi que j’ai vu fleurir des offres de ponts réseau sans fil sur 2.4 GHz, une gamme de fréquence où se trouvent : freebox livebox sfr box wibox bbox numéricable box caméras de surveillance analogiques caméras de surveillance WiFi Bref, une gamme de fréquence où il n’y…

  • 9070IP : vidéo en direct sur iPhone 4

    Suite des essais sur nos caméras IP et leurs possibles utilisations avec un iPhone 4… C’est aujourd’hui au tour de la 9070IR associée au logiciel EyeSeeU disponible en version d’essai sur l’Appstore, d’où ce choix un peu particulier car il semble assez rare de pouvoir tester avant d’acheter: Et en parlant d’acheter, les 1,59 € demandés par l’auteur ne semblent pas disproportionnés par rapport aux possibilités offertes, dont un affichage simultané de 4 sources à la fois par exemple… Voici…

  • Essai : Viewquest WiFi 200, radio internet WiFi

    Ma vieille radio AM/FM ayant décidé de rendre l’âme, je me suis dit qu’il était temps de passer à l’ère numérique, avec une radio internet connectée en WiFi. Quoi de mieux après tout pour se raser le matin que de pouvoir éviter les sempiternels débats sur le cours de la bourse, la vie people du mini-Empereur, les attentats en Afghanistan ou les tueries en Israel (pléonasmes !!). Bref, l’idéal était pour moi d’accéder à des radios sans pub, diffusant la…