🛠 Gestion avancée des E/S GPIO avec UEXT-CH390

Olimex UEXT-CH390 : Module Ethernet SPI 10/100 Mbps pour microcontrôleurs · avance · Intégrer des périphériques physiques (capteurs ou afficheurs) dans un système Ethernet filaire basé sur le module UEXT-CH390.

Objectifs

Ce tutoriel vise à maîtriser l'interfaçage de périphériques physiques (GPIO) avec le module UEXT-CH390 pour créer un nœud IoT complet. Contrairement aux solutions sans fil, l'Ethernet filaire offre une latence prévisible et une stabilité supérieure, idéale pour les systèmes de contrôle industriel ou domotique critique. Nous allons configurer les broches GPIO du microcontrôleur hôte pour lire un capteur analogique ou numérique et piloter un afficheur, tout en transmettant ces données via le stack réseau CH390. L'accent est mis sur la gestion des interruptions et la synchronisation entre les tâches temps réel (GPIO) et les tâches réseau (TCP/IP), en utilisant le pilote spécifique RP2040 ou le SDK ESP-IDF.

Matériel nécessaire

Étapes

  1. Connexion physique : Branchez le module UEXT-CH390 sur le port UEXT de la carte hôte. Assurez-vous que les broches SPI (MOSI, MISO, CLK, CS) sont correctement mappées. Pour le Pico, utilisez les broches GP2-GP5 par défaut si non configurées autrement. Notez que le module fonctionne en mode SPI 0 ou 3.
  1. Configuration du réseau : Dans votre code (ESPHome ou C++), initialisez le pilote CH390. Activez le DHCP pour obtenir une adresse IP. Vérifiez que la MAC d'usine est bien reconnue.
  1. Initialisation des GPIO : Configurez les broches de votre capteur en entrée (avec pull-up/down si nécessaire) et celles de l'affichage en sortie. Pour un capteur analogique, activez l'ADC correspondant.
  1. Implémentation de la logique : Créez une tâche périodique (ex: toutes les secondes) qui lit la valeur du capteur. Appliquez un filtre numérique (moyenne mobile) pour réduire le bruit.
  1. Transmission réseau : Formatez les données lues en JSON ou en protocole MQTT. Utilisez les API réseau du pilote CH390 pour envoyer les paquets. Assurez-vous que les opérations GPIO ne bloquent pas la pile réseau ; utilisez des interruptions ou des tâches RTOS dédiées si nécessaire.
  1. Pilotage local : Ajoutez une logique pour actionner l'affichage ou une LED en fonction des seuils critiques détectés, garantissant une réaction locale même si le réseau est coupé.

Vérification

Connectez la carte au réseau via un câble RJ45. Ouvrez une interface web locale ou un terminal MQTT pour observer la réception des données. Vérifiez la stabilité de la connexion en débranchant/rebranchant brièvement le câble Ethernet pour tester la reconnexion automatique. Assurez-vous que les valeurs des capteurs changent en temps réel sur l'interface distante.

Pour aller plus loin

Explorez l'intégration avec Home Assistant via la découverte automatique. Optimisez la consommation d'énergie en dormant les GPIO inactifs. Testez la robustesse du réseau en injectant des perturbations électromagnétiques, profitant de la meilleure immunité de l'Ethernet filaire par rapport au Wi-Fi.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels