Projet 1 : LED clignotante avec motifs personnalisés (adapté aux débutants)
Configuration matérielle
Pour ce projet, vous aurez besoin d'un Raspberry Pi Pico, d'une maquette, d'une LED, d'une résistance de 220 ohms et de fils de raccordement. Connectez l'anode de la LED à la broche GPIO 25 via la résistance et la cathode à la broche de masse du Pico. Cette configuration garantit que la LED est protégée contre les surintensités par la résistance et qu'elle est correctement connectée à la broche GPIO du Pico pour le contrôle.

Mise en œuvre du code
À l'aide de MicroPython, nous allons créer un programme permettant de faire clignoter la LED selon différents motifs. Commencez par importer les modules nécessaires :
from machine import Pin, Timer
Ensuite, initialisez la broche LED :
led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
led.toggle()
tim.init(freq=2, mode=Timer.PERIODIC, callback=tick)
Test et personnalisation
Projet 2 : Système de surveillance de la température (niveau intermédiaire)
Configuration matérielle requise

Développement de code
import machine
import onewire
import ds18x20
import time
ds_pin = machine.Pin(18)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
print('Found DS devices: ', roms)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(ds_sensor.read_temp(rom))
time.sleep(2)
Enregistrement et affichage des données
from machine import I2C, Pin
import ssd1306
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 32, i2c)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
oled.fill(0)
oled.text(f"Temp: {temp} C", 0, 0)
oled.show()
time.sleep(2)
file = open('temperatures.txt', 'w')
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
file.write(f"{time.time()},{temp}\n")
file.flush()
time.sleep(2)
Projet 3 : Téléchargeur de données IoT (avancé)
Configuration matérielle

Intégration du code et de l'IoT
import network
ssid = 'your_SSID'
password = 'your_PASSWORD'
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('Connected to WiFi')
import bme280_i2c
i2c = machine.I2C(0, sda=machine.Pin(8), scl=machine.Pin(9))
bme = bme280_i2c.BME280_I2C(i2c)
import urequests
def upload_data(temperature, humidity, pressure):
url = 'https://industrial.api.ubidots.com/api/v1.6/devices/your_device_label'
headers = {'X-Auth-Token': 'your_token', 'Content-Type': 'application/json'}
data = '{"temperature": %s, "humidity": %s, "pressure": %s}' % (temperature, humidity, pressure)
response = urequests.post(url, headers=headers, data=data)
if response.status_code == 200:
print('Data uploaded successfully')
else:
print('Error uploading data')
response.close()
while True:
temperature, pressure, humidity = bme.values
temperature = float(temperature.strip(' C'))
humidity = float(humidity.strip(' %'))
pressure = float(pressure.strip(' hPa'))
upload_data(temperature, humidity, pressure)
time.sleep(60)
Tests et évolutivité
Projets Pico pour explorer PIO, USB, capteurs et régulation
Un projet utile enseigne une notion matérielle à la fois et permet de mesurer le résultat. Choisissez d’abord la carte précise de la famille Pico, car processeur, radio, mémoire, broches et logiciels varient ; concevez ensuite les interfaces selon les limites logiques documentées de 3,3 V.
- Commencer par l’acquisition : enregistrer un capteur étalonné avec horodatage et intervalle défini.
- Explorer PIO : générer ou capter une interface sensible au temps et la vérifier sur des points d’essai.
- Créer un périphérique USB : réaliser une petite fonction humaine ou série avec reconnexion claire.
- Ajouter une boucle fermée : réguler vitesse, lumière ou température sur un système sûr et borné.
- Concevoir le prototype : prévoir découplage, adaptation de niveau, protection, points de test et compilation reproductible.


