🛠 Interfacing a DHT11 Sensor with BPI-RT2 GPIO

Banana Pi BPI-RT2: Placa de enrutador 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.

Objetivos

Este tutorial le guía en la interfaz de un sensor DHT11 con la placa Banana Pi BPI-RT2. El objetivo es comprender el uso de GPIO en un router embebido que ejecuta OpenWrt. Configuraremos un pinout específico, instalaremos las herramientas necesarias y leeremos datos sin procesar. Este nivel intermedio asume conocimientos básicos de la línea de comandos de Linux. Aprenderá a manipular dispositivos del sistema para necesidades IoT simples sin red.

Hardware Necesario

Pasos

  1. Preparación del circuito: Apague la BPI-RT2. Conecte el pin VCC del DHT11 al 3.3V disponible en el encabezado GPIO. Conecte GND a tierra. Coloque la resistencia de 10 kΩ entre VCC y el pin DATA. Conecte el pin DATA del sensor a un GPIO libre, por ejemplo, GPIO 18 (verifique con el esquema oficial).
  2. Conexión SSH: Reconecte la alimentación. Conéctese por SSH a la dirección IP de la placa (predeterminada 192.168.1.1). Actualice las listas de paquetes:
opkg update
  1. Instalar herramientas GPIO: Instale paquetes para control GPIO via sysfs:
opkg install kmod-gpio-button-hotplug kmod-gpio-nct-gpio

Nota: Los módulos DHT específicos pueden requerir compilación del kernel si no están presentes nativamente en el BSP Realtek. Para este tutorial, asumimos el uso de un script shell o un controlador de terceros compatible.

  1. Exportar GPIO: Identifique el número GPIO para su pin físico. Expórtelo:
echo 18 > /sys/class/gpio/export
  1. Leer datos: Si el controlador DHT está cargado, lea el archivo de valor. De lo contrario, use gpioget si está disponible:
gpioget gpiochip0 18

Para DHT11 estándar, usar un MCU externo o script Python es más fácil. En OpenWrt mínimo, el bit-banging 1-Wire directo vía shell es difícil. Asegúrese de que el módulo del kernel dht11 esté cargado:

modprobe dht11

Si falta, compile el BSP. Este tutorial se centra en la configuración GPIO. Verifique que el GPIO esté configurado como entrada:

echo in > /sys/class/gpio/gpio18/direction

Verificación

Verifique que exista /sys/class/gpio/gpio18/value. Si se carga un controlador compatible, leer este archivo debería devolver un valor estable o cambiar con la temperatura. Use dmesg para verificar errores de carga de módulos.

Para ir más allá

Explore el uso de I2C a través del encabezado de 9 pines para sensores complejos como BME280, que ofrece mejor precisión e interfaz digital más robusta que el DHT11 analógico.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales