🛠 Automatisation IoT robuste avec UEXT-CH390 et ESPHome
Objectifs
Ce tutoriel vise à créer un nœud de surveillance environnementale complet et fiable. Contrairement aux solutions Wi-Fi sujettes aux interférences, nous utiliserons la connectivité Ethernet filaire 10/100 Mbps du module UEXT-CH390 pour garantir une latence minimale et une stabilité maximale. L'objectif est d'intégrer ce nœud dans un écosystème domotique (Home Assistant) avec mise à jour OTA et découverte automatique, en exploitant les 16KB de SRAM du contrôleur WCH CH390 pour un traitement fluide des paquets réseau.
Matériel nécessaire
- Carte Olimex UEXT-CH390 (contrôleur WCH CH390, MAC/PHY intégré).
- Microcontrôleur compatible : Raspberry Pi Pico (RP2040) ou ESP32 (S3, C3, C5, C6) avec connecteur UEXT ou pUEXT.
- Câble Ethernet RJ45 standard.
- Alimentation stable 3.3V (via USB-C du microcontrôleur ou alimentation externe).
- Ordinateur avec ESPHome 2026.9.0 ou supérieur installé.
Étapes
- Configuration matérielle : Insérez le module UEXT-CH390 dans le connecteur UEXT de votre carte hôte. Assurez-vous que l'alimentation est bien en 3.3V. Le module utilise les lignes SPI (MOSI, MISO, SCK, CS) et les signaux de contrôle. Vérifiez la compatibilité des broches selon le schéma officiel Olimex pour éviter les conflits.
- Préparation du firmware : Créez un nouveau projet ESPHome. Dans le fichier YAML, configurez le bus SPI. Notez que le CH390 supporte les modes SPI 0 et 3 jusqu'à 72 MHz, mais commencez par une fréquence conservatrice (ex: 10 MHz) pour valider la communication.
spi:
clk_pin: GPIO2
mosi_pin: GPIO3
miso_pin: GPIO4
cs_pin: GPIO5
- Intégration du pilote CH390 : Utilisez le pilote spécifique développé pour le RP2040 ou les bibliothèques compatibles ESPHome. Activez l'interface Ethernet.
ethernet:
type: CH390
spi_bus: spi
reset_pin: GPIO6
- Configuration réseau et services : Configurez le DHCP pour une attribution automatique d'IP. Activez la découverte Home Assistant et le serveur web local pour le débogage.
wifi: # Désactivé ou ignoré
ethernet:
dhcp: true
web_server:
port: 80
- Ajout des capteurs : Intégrez vos capteurs (DHT22, BMP280, etc.) et exposez-les via MQTT ou API native Home Assistant.
Vérification
- Branchez le câble Ethernet. Le LED du module doit s'illuminer.
- Ouvrez le moniteur série pour vérifier les logs de connexion DHCP.
- Accédez à l'adresse IP attribuée via un navigateur web pour voir l'interface locale.
- Dans Home Assistant, vérifiez que le nœud apparaît automatiquement et que les données des capteurs sont mises à jour en temps réel.
Pour aller plus loin
Explorez l'utilisation directe du SDK Raspberry Pi Pico avec la pile lwIP pour des applications temps réel critiques, ou optimisez les mises à jour OTA pour minimiser l'empreinte mémoire.
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
- Intégrer des GPIO avec l'Ethernet UEXT-CH390
- Connecter un RP2040 au réseau avec UEXT-CH390 et ESPHome
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)