Proyecto de sensor de temperatura y humedad Arduino DHT11
January 7, 2025
Proyecto de sensor de temperatura y humedad Arduino DHT11
La línea de sensores DHT (DHT11/22) es una de las más utilizadas en muchos proyectos electrónicos, que van desde estaciones meteorológicas domésticas hasta sistemas de automatización de plantas,debido a su simplicidad y compacidad como sensor de temperatura/humedadAunque el más preciso y costoso DHT22 puede ser sustituido (con algunos cambios en el código), el módulo de sensor DHT11 se utilizará en este proyecto.el sensor DHT11 que se utilizará en este proyecto no es la versión independiente del sensor de 4 pines sino más bien, un módulo de 3 pines que tiene un condensador incorporado y una resistencia pull-up, eliminando así la necesidad de componentes adicionales al construir este circuito.el módulo del sensor DHT11 puede conectarse directamente a un pin digital que procesa y alimenta los datos en serie del sensor al microcontrolador, para que lo leamos.
En esteProyecto de PCBA DIY, los datos de temperatura y humedad del sensor DHT11 se mostrarán en una pantalla OLED de 0.96 " 128 × 64 (diodo orgánico emisor de luz) para que podamos leerlos visiblemente.Una ventaja de usar una pantalla OLED i2c en comparación con otros tipos de pantalla es que solo requiere una conexión de 4 cables a la placa Arduino y con una amplia variedad de bibliotecasUna característica notable de una pantalla OLED es su claridad, nitidez y calidad visual de textos, figuras e imágenes que puede mostrar.
En general, este es un proyecto de circuito bastante simple que es adecuado para principiantes absolutos ya que sólo requiere unos pocos componentes y algunas habilidades básicas de codificación.,Este proyecto puede definitivamente mejorarse y actualizarse para añadir más características como la comunicación inalámbrica (RF, LoRa,PCB de BluetoothPara realizar este proyecto, se ha desarrollado una serie de programas de investigación y desarrollo, entre los que se incluyen:Usted tendrá que comprar componentes:
Arduino Nano (las otras placas compatibles con Arduino funcionarán)
Cable USB (compatible con la placa Arduino)
Tablero para el pan
Cables de salto masculino-masculino (7)
0.96′′ 128×64 i2c pantalla OLED
Modulo de sensores DHT11
El cableado
Para este proyecto, FS Technology está utilizando un Arduino Nano, que requiere el uso de un panel de desarrollo..Sin embargo, si se está utilizando un Arduino Uno en su lugar, los cables de salto se pueden conectar directamente a los pines de la placa, eliminando la necesidad de la tabla de paneles.el cableado para el módulo del sensor DHT11 y la pantalla OLED a la placa Arduino sigue siendo consistenteAdemás, el diagrama de cableado para el circuito del sensor de temperatura y humedad DHT11 se proporciona a continuación.
Módulo del sensor DHT11: Conecte el pin (S) de la señal del sensor a D2, el pin positivo (+) a +5v y el pin negativo (-) a GND.
OLED: Conectar SDA (datos en serie) a A4, SCL/SCK (reloj en serie) a A5, VDD/VCC (tensión de alimentación) a +5v y GND a GND.
Ahora, puedes conectar tu placa Arduino a través del cable USB al ordenador.
Código del proyecto
#incluir
#incluir
#incluir
#Definirancho de pantalla128
#Definirel tamaño de la pantalla64
#DefinirEl sistema de control de las emisiones4
Adafruit_SSD1306 también está disponible.muestra(ancho de pantalla, altura de pantalla);
#incluir¢DHT.h ¢
#DefinirEl número de identificación DHTPIN2
#DefinirTipo de productoDHT11
DHTDht(Se aplicarán las siguientes medidas:);
No válidola configuración(){
Dht.comienza();
muestra.comienza(En el caso de los equipos de control de velocidad, se utilizará el método de control de velocidad.3C);
muestra.Muestra claro();
}
No válidoel bucle(){
muestra.Muestra claro();
muestra.El tamaño del texto(1);
muestra.el conjuntoTextColor(En el caso de los vehículos de la categoría M2);
muestra.- ¿ Qué pasa?(0,15);
muestra.Imprimir(La temperatura es:);
muestra.- ¿ Qué pasa?(80,15);
muestra.Imprimir(Dht.LecturaTemperatura());
muestra.- ¿ Qué pasa?(110,15);
muestra.Imprimir(️ C ️);
muestra.- ¿ Qué pasa?(0,35);
muestra.Imprimir(La humedad:);
muestra.- ¿ Qué pasa?(80,35);
muestra.Imprimir(Dht.lecturaHumedad());
muestra.- ¿ Qué pasa?(110,35);
muestra.Imprimir(% );
muestra.muestra();
retraso(2000);
Sobre el código.
Una de las ventajas de trabajar con una pantalla OLED i2c es la increíble cantidad de soporte que está disponible en línea, en forma de bibliotecas de código abierto,que puede ayudar en gran medida en la programación de la pantalla desde el Arduino IDEEn este proyecto, the Adafruit SSD1306 and GFX libraries are the main two libraries that are utilized to interface the OLED display with the Arduino and since all the setup information is already configured in the library files, se utilizan comandos básicos dentro del IDE, simplificando el uso de la pantalla. Si no tiene estas bibliotecas descargadas e instaladas en su IDE,puede que se encuentre con errores de compilación así que por favor asegúrese de que usted tiene las últimas versiones de la biblioteca instalada en el Arduino IDE.
El código comienza con la definición de las bibliotecas necesarias para configurar la pantalla OLED: Wire, Adafruit SSD1306 y Adafruit GFX.
En el segundo bloque, se definen varios parámetros relativos a la pantalla OLED, entre los que se incluyen el ancho y la altura de la pantalla (128 x 64 píxeles) y el pin de restablecimiento OLED (A4).
A continuación, se definen las bibliotecas requeridas para que el sensor DHT11 interactúe con el Arduino, las cuales son las especies de la biblioteca DHT en particular.El pin digital que el sensor de DHT está conectado a la placa Arduino (pin digital 2 D2) se define además junto con el modelo particular del sensor de DHT que estamos utilizando, el sensor DHT11.
Ahora, la sección de configuración de vacío se introduce, una de las dos funciones esenciales en cada código de Arduino.comenzar()) así como la pantalla OLED y antes de proceder a la sección del bucle vacío, la pantalla OLED está limpia de cualquier visualización anterior (display.clearDisplay()).
En términos de la sección del bucle vacío, la parte principal del código que se repite continuamente (en un bucle) mientras haya energía para la placa Arduino,consiste principalmente en funciones específicas de OLED que establecen primero el tamaño del texto, el color del texto y el cursor (donde queremos que el texto se imprima en el OLED).que es principalmente la temperatura (en grados Celsius) y la humedad (%) información que se lee por el sensor DHT11Sólo mediante el uso de estos comandos simples que han sido producidos a partir de las bibliotecas definidas, somos capaces de imprimir fácilmente cualquier información en la pantalla.
Con la función de retraso al final del código, está configurado para actualizar la pantalla OLED cada 2000 milisegundos con los últimos datos leídos del sensor.puede modificar este tiempo dependiendo de la frecuencia con la que desee recibir información actualizada directamente del sensor.
Resumen
Con una comprensión fundamental de este proyecto y los principios básicos que están involucrados en la interfaz de un sensor a una pantalla OLED,Ciertamente hay muchas maneras en que este proyecto puede ser actualizado y mejorado.Lo más común es que una configuración como esta pueda integrarse en un proyecto de estación meteorológica mucho más grande, posiblemente añadiendo más sensores, una pantalla más grande, capacidades inalámbricas, una caja, etc.Como lo demuestra este proyecto, simplemente familiarizándose con algunas de las bibliotecas de Arduino que están disponibles para su uso, entonces se vuelve relativamente fácil de codificar su propia estación meteorológica.Un proyecto futuro puede implicar la transmisión inalámbrica de dichos datos meteorológicos de una placa de microcontrolador a otra para monitorear un entorno remoto o controlar centralmente un sistema autónomoSin embargo, proyectos como este son excelentes para introducir la electrónica de afición a un principiante absoluto y también pueden dirigirse a un usuario más experimentado.Fabricante de PCBAque quieran explorar otros aspectos de la electrónica.