🛠 Interfacer un capteur DHT11 avec le GPIO de la BPI-RT2

Banana Pi BPI-RT2 : Carte routeur WiFi 6 AX3000 · intermediaire · Apprenez à lire les données de température et d'humidité via l'en-tête GPIO de la BPI-RT2 sous OpenWrt.

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

Étapes

  1. 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).
  2. 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
  1. 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.

  1. Exportation du GPIO : Identifiez le numéro GPIO correspondant à votre brochage physique. Exportez-le pour le rendre accessible :
echo 18 > /sys/class/gpio/export
  1. 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 gpioget si 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

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels