🛠 Contrôler des GPIO et capteurs avec UEXT-CH390
Objectifs
Ce tutoriel vise à comprendre comment interagir avec les périphériques externes (LED, boutons, capteurs) connectés via l'interface UEXT, tout en utilisant la fonctionnalité Ethernet du module CH390. Nous allons configurer un GPIO pour allumer une LED et lire l'état d'un bouton, en illustrant la cohabitation entre les ressources locales (GPIO) et réseau (SPI/Ethernet). L'objectif est de montrer que le module CH390, bien qu'étant un contrôleur réseau, s'intègre dans un système où les microcontrôleurs gèrent les E/S locales indépendamment du bus SPI dédié à la communication réseau.
Matériel nécessaire
- Carte de développement compatible (ex : Raspberry Pi Pico ou ESP32)
- Module Olimex UEXT-CH390
- Câble UEXT (10 broches)
- Breadboard et fils de connexion
- Une LED et une résistance (220-330 Ω)
- Un bouton poussoir
- Alimentation USB
Étapes
- Connexion matérielle : Insérez le module UEXT-CH390 dans le connecteur UEXT de votre carte hôte. Assurez-vous que l'alimentation est bien à 3.3V. Le module utilise les broches SPI pour la communication réseau, laissant les autres GPIO libres pour vos projets.
- Configuration logicielle : Dans votre environnement (Arduino IDE ou MicroPython), initialisez d'abord la bibliothèque Ethernet pour le CH390. Ensuite, configurez les GPIO locaux. Par exemple, définissez la broche GPIO 15 comme sortie pour la LED et GPIO 16 comme entrée pour le bouton.
- Boucle principale : Dans la boucle
loop(), vérifiez l'état du bouton. Si le bouton est pressé, mettez la LED à l'état haut (HIGH). Sinon, mettez-la à l'état bas (LOW). Cette logique locale ne dépend pas de la connexion réseau. - Intégration réseau (optionnel) : Pour démontrer l'intégration, ajoutez une variable qui compte les appuis sur le bouton. Affichez ce compteur sur une page web locale hébergée par le CH390 via une simple requête HTTP, montrant que les données locales peuvent être exposées sur le réseau.
Vérification
Observez la LED : elle doit s'allumer uniquement lorsque le bouton est enfoncé. Si vous avez implémenté la partie réseau, ouvrez un navigateur web et naviguez vers l'adresse IP attribuée par DHCP au module CH390. Vous devriez voir la page web s'actualiser avec le nombre d'appuis sur le bouton. Si la LED ne s'allume pas, vérifiez les soudures et la polarité de la LED. Si la page web ne charge pas, vérifiez que le câble Ethernet est bien connecté et que le DHCP a réussi.
Pour aller plus loin
Explorez l'utilisation des entrées analogiques (ADC) pour lire un potentiomètre connecté via UEXT, et envoyez cette valeur sur le réseau. Vous pouvez également explorer les interruptions GPIO pour réagir plus rapidement aux changements d'état des boutons sans poller la broche en continu, optimisant ainsi les ressources du microcontrôleur.
Autres tutoriels pour cette carte
- Premier branchement et mise en route de l'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
- 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)