🛠 Interfacer un capteur DHT11 avec le GPIO de la BPI-RT2
Objectifs
Ce tutoriel vous guide dans l'interfaçage d'un capteur DHT11 avec la carte Banana Pi BPI-RT2. L'objectif est de comprendre l'utilisation des GPIO sur un routeur embarqué sous OpenWrt. Nous allons configurer un brochage spécifique, installer les outils nécessaires et lire les données brutes. Ce niveau intermédiaire suppose une connaissance de base de la ligne de commande Linux. Vous apprendrez à manipuler les périphériques système pour des besoins IoT simples sans passer par le réseau.
Matériel nécessaire
- Une carte Banana Pi BPI-RT2 alimentée en 12V DC.
- Un capteur de température et d'humidité DHT11.
- Une résistance de pull-up de 10 kΩ.
- Des fils de connexion (Dupont femelle-mâle).
- Un câble Ethernet pour la connexion SSH à la carte.
- Un terminal SSH (PuTTY ou OpenSSH).
Étapes
- Préparation du montage : Coupez l'alimentation de la BPI-RT2. Connectez la broche VCC du DHT11 au 3.3V disponible sur l'en-tête GPIO. Reliez la broche GND à la masse. Placez la résistance de 10 kΩ entre VCC et la broche DATA. Connectez la broche DATA du capteur à un GPIO libre, par exemple le GPIO 18 (à vérifier selon le schéma officiel).
- Connexion SSH : Rebranchez l'alimentation. Connectez-vous en SSH à l'adresse IP de la carte (par défaut 192.168.1.1). Mettez à jour la liste des paquets avec la commande :
opkg update
- Installation des outils GPIO : Installez le paquet permettant le contrôle des GPIO via sysfs :
opkg install kmod-gpio-button-hotplug kmod-gpio-nct-gpio
Note : Les modules spécifiques DHT peuvent nécessiter une compilation du noyau si non présents nativement dans le BSP Realtek. Pour ce tutoriel, nous supposons l'utilisation d'un script shell pour la lecture temporelle ou l'installation d'un driver tiers compatible.
- Exportation du GPIO : Identifiez le numéro GPIO correspondant à votre brochage physique. Exportez-le pour le rendre accessible :
echo 18 > /sys/class/gpio/export
- Lecture des données : Si le driver DHT est chargé, lisez le fichier de valeur. Sinon, utilisez un script de lecture des impulsions temporelles via
gpiogetsi disponible :
gpioget gpiochip0 18
Pour un capteur DHT11 standard, il est souvent plus simple d'utiliser un microcontrôleur externe ou un script Python dédié si l'environnement Python est installé. Sous OpenWrt minimal, la lecture directe d'un protocole 1-Wire complexe comme le DHT11 via GPIO bit-banging en shell est difficile sans outils dédiés. Assurez-vous que le module noyau dht11 est chargé :
modprobe dht11
Si le module est absent, vous devrez compiler le BSP. Pour ce tutoriel, nous nous concentrons sur la configuration du GPIO. Vérifiez que le GPIO est bien configuré en entrée :
echo in > /sys/class/gpio/gpio18/direction
Vérification
Vérifiez que le fichier /sys/class/gpio/gpio18/value existe. Si vous avez réussi à charger un driver compatible, la lecture de ce fichier devrait retourner une valeur stable ou changer lors d'une variation de température. Utilisez la commande dmesg pour vérifier l'absence d'erreurs de chargement de module.
Pour aller plus loin
Explorez l'utilisation de l'I2C via l'en-tête 9 broches pour connecter des capteurs plus complexes comme le BME280, qui offre une meilleure précision et une interface numérique plus robuste que le DHT11 analogique.
Autres tutoriels pour cette carte
- Contrôler les GPIO sur Banana Pi BPI-RT2
- Configurer un réseau WiFi 6 fiable avec le BPI-RT2
- Mise en route et premier branchement du Banana Pi BPI-RT2
- Configurer le BPI-RT2 comme passerelle réseau et stockage léger
- Mise en route avancée : Premier accès console et flashage du firmware BPI-RT2
- Maîtriser les GPIO sur Banana Pi BPI-RT2