🛠 Intégrer des GPIO avec l'Ethernet UEXT-CH390
Objectifs
Ce tutoriel vise à maîtriser l'interaction entre les périphériques locaux (GPIO) et la connectivité réseau fournie par le module UEXT-CH390. Nous allons configurer un microcontrôleur pour lire un capteur ou piloter un afficheur, tout en transmettant les données via Ethernet. L'objectif est de comprendre comment gérer la concurrence entre les tâches locales rapides et les interruptions réseau, une compétence clé pour les projets IoT fiables.
Matériel nécessaire
- Carte compatible : Raspberry Pi Pico 2 ou module ESP32 (S3, C3, C5, C6).
- Module Olimex UEXT-CH390 (Ethernet 10/100 Mbps).
- Capteur simple (ex : bouton poussoir ou capteur de température DHT11) ou LED.
- Câbles de connexion et breadboard.
- Environnement de développement : Arduino IDE ou ESPHome (version 2026.9.0 recommandée pour les pilotes RP2040).
- Alimentation stable 3.3V.
Étapes
- Connexion matérielle : Insérez le module UEXT-CH390 dans le connecteur UEXT ou pUEXT de votre carte. Assurez-vous que l'alimentation est bien en 3.3V. Connectez votre capteur à une broche GPIO libre (non utilisée par le bus SPI du CH390).
- Configuration du projet : Dans votre IDE, sélectionnez la carte cible. Si vous utilisez ESPHome, définissez le bloc
spiavec les broches MISO, MOSI, SCK et CS correspondant au module CH390. Activez le support Ethernet via le composantetherneten spécifiant le modèlech390. - Initialisation logicielle : Importez les bibliothèques nécessaires. Pour Arduino, initialisez d'abord l'interface SPI, puis le pilote Ethernet. Pour ESPHome, configurez le bloc
sensorpour lire votre capteur GPIO et le blocweb_serveroumqttpour la transmission réseau. - Logique de contrôle : Écrivez la boucle principale pour lire l'état GPIO. Si le capteur détecte un changement, mettez à jour une variable globale. Cette variable sera automatiquement publiée sur le réseau par la couche Ethernet configurée.
- Compilation et téléversement : Compilez le code. Vérifiez l'absence d'erreurs de conflit de broches. Téléversez le firmware sur le microcontrôleur.
Vérification
Ouvrez un navigateur web et tapez l'adresse IP attribuée par DHCP à votre carte. Vous devriez voir une interface web locale ou des données dans un tableau de bord (comme Home Assistant). Appuyez sur le bouton ou modifiez la valeur du capteur : la valeur affichée sur l'interface web doit changer quasi instantanément, prouvant que le flux GPIO -> Mémoire -> Ethernet fonctionne correctement.
Pour aller plus loin
Explorez l'utilisation des interruptions matérielles (ISR) pour les GPIO afin de réduire la latence. Essayez d'ajouter une mise à jour OTA (Over-The-Air) via le réseau Ethernet pour modifier le code GPIO sans reconnexion physique.
Autres tutoriels pour cette carte
- Premier branchement et mise en route de l'UEXT-CH390
- Contrôler des GPIO et capteurs avec UEXT-CH390
- Cas d'usage complet : Connectivité Ethernet pour Raspberry Pi Pico
- Premier branchement et mise en route de l'UEXT-CH390
- Connecter un RP2040 au réseau avec UEXT-CH390 et ESPHome
- Mise en route avancée : UEXT-CH390 et Raspberry Pi Pico
Exemples de code pour cette carte
esp32-ch390-lwip-station.inoC++rp2040-pico-ch390-micropython.pyPythonesp32-ch390-udp-sensor-gateway.inoC++esp32-ch390-web-server-local.inoC++rp2040-ch390-iot-home-assistant.inoYAMLrp2040-lwip-ethernet-ping-6.inoC/C++ (Raspberry Pi Pico SDK)