Skip to content
Learni
View all tutorials
IoT et Embarqué

Comment développer des projets IoT avec MicroPython en 2026

14 minINTERMEDIATE

Introduction

MicroPython permet d'écrire du code Python directement sur des microcontrôleurs comme l'ESP32, rendant le développement IoT accessible sans C++. En 2026, il est idéal pour prototyper rapidement des projets connectés. Ce tutoriel intermédiaire vous guide à travers l'installation du firmware, la gestion des capteurs, la connectivité WiFi et la création d'un serveur web. Chaque étape inclut du code complet et fonctionnel. Vous apprendrez à éviter les pièges courants comme la gestion mémoire limitée des microcontrôleurs. À la fin, vous disposerez d'une base solide pour des projets IoT professionnels.

Prérequis

  • ESP32 (ou compatible MicroPython)
  • Ordinateur avec Python 3.10+
  • Outil esptool installé
  • Connaissances de base en Python
  • Câble USB et éditeur comme Thonny ou VS Code

Installation du firmware MicroPython

terminal
pip install esptool
esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp32-20240123-v1.22.1.bin

Ces commandes effacent la flash et installent le firmware MicroPython sur l'ESP32. Adaptez le port et le fichier .bin selon votre modèle et système d'exploitation. Vérifiez toujours la version récente du firmware sur micropython.org.

Connexion et premier test

Une fois le firmware installé, connectez-vous via l'interface série avec Thonny ou un terminal. Le REPL interactif permet d'exécuter du code directement sur la carte.

Clignotement d'une LED

main.py
from machine import Pin
import time
led = Pin(2, Pin.OUT)
while True:
    led.value(1)
    time.sleep(0.5)
    led.value(0)
    time.sleep(0.5)

Ce script allume et éteint la LED intégrée toutes les 500 ms. Utilisez machine.Pin pour contrôler les GPIO. Évitez les boucles infinies bloquantes dans des projets plus complexes.

Lecture d'un capteur

Ajoutons la lecture d'un capteur DHT22 pour mesurer température et humidité. Installez le pilote si nécessaire via mip.

Lecture capteur DHT22

dht22.py
from machine import Pin
import dht
import time
sensor = dht.DHT22(Pin(4))
while True:
    try:
        sensor.measure()
        print('Temp:', sensor.temperature(), '°C')
        print('Hum:', sensor.humidity(), '%')
    except OSError as e:
        print('Erreur capteur:', e)
    time.sleep(2)

Le code lit le capteur toutes les 2 secondes et gère les erreurs de lecture. DHT22 nécessite un délai entre mesures pour éviter les corruptions de données.

Connexion WiFi

wifi.py
import network
import time
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('SSID', 'motdepasse')
while not wlan.isconnected():
    time.sleep(1)
print('IP:', wlan.ifconfig()[0])

Ce script établit une connexion WiFi et affiche l'adresse IP. Gérez les reconnexions dans un vrai projet pour plus de robustesse.

Création d'un serveur web

Pour exposer des données, nous créons un serveur web simple avec MicroPython.

Serveur web simple

server.py
import socket
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)
print('Serveur sur', addr)
while True:
    cl, addr = s.accept()
    cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
    cl.send('<h1>Hello from ESP32</h1>')
    cl.close()

Ce serveur écoute sur le port 80 et renvoie une page HTML basique. Pour des projets réels, utilisez uasyncio pour gérer plusieurs clients simultanément.

Bonnes pratiques

  • Utilisez toujours des try/except pour les opérations réseau et capteurs
  • Gérez la mémoire avec gc.collect() dans les boucles longues
  • Séparez la logique métier dans des modules distincts
  • Testez sur simulateur avant déploiement
  • Documentez les broches GPIO utilisées

Erreurs courantes à éviter

  • Oublier de gérer les exceptions OSError sur les capteurs
  • Utiliser des délais bloquants dans des projets WiFi
  • Négliger la mise à jour du firmware
  • Ignorer les limites de RAM (environ 100 Ko disponibles)

Pour aller plus loin

Explorez uasyncio pour des applications asynchrones et MQTT pour l'IoT industriel. Découvrez nos formations Learni pour approfondir MicroPython et l'IoT.