Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Aquí me gustaría construir un indicador de temperatura y humedad para mi habitación. Usé una matriz LED de 8x8 para mostrar números de dos dígitos, y creo que parte del proyecto se volvió más útil. Encajé la construcción final usando una caja de cartón, pintada como madera.
Suministros
- Arduino Nano x1
- Sensor de temperatura y humedad DHT11 x1
- Matriz LED 8x8 con MAX7219 x1
- Resistencia de 10K x1
- Cables de cabecera
- Fuente de alimentación de 5 V x1
- Caja de cartón (4x8x13 cm)
Paso 1: esquema
El sensor digital de temperatura y humedad DHT11 ofrece temperaturas entre 0 y 50 ° C y humedad entre 20% y 90%. La precisión de la temperatura es de ± 2 ° C (máxima) y la precisión de la humedad es de ± 5%.
DHT11 también proporciona valores de punto de rocío. El punto de rocío es la temperatura a la que el aire debe enfriarse para saturarse con vapor de agua. Cuando se enfría más, el vapor de agua en el aire se condensará para formar agua líquida.
Paso 2: cableado y caja
Primero pinté la caja de cartón con pintura acrílica y después de secar durante 1 día terminé con laca. Hice una ventana cuadrada para pantalla LED en la portada. También abrí un pequeño orificio rectangular para la fuente de alimentación Arduino Nano y puse varios orificios cerca del sensor DHT11.
Arreglé el Arduino en la esquina de la caja principal usando una caja pequeña y silicona caliente.
Coloqué la matriz de LED en la ventana usando tiras de cinta transparente. Aquí es importante colocarlo con una rotación de 90 ° en sentido antihorario porque el código usará las 4 filas superiores para el dígito de las decenas y las 4 filas inferiores para los dígitos de la unidad. Para el módulo que utilicé, el lado con MAX7219 debe estar en el lado de la base.
Debido a que coloqué Arduino y el sensor en el lado de cierre de la caja, no pude cerrarlo por completo. Será mejor que seleccione el otro lado:).
Paso 3: Código
Primero cargue la biblioteca para DHT11 (https://github.com/adidax/dht11) y la matriz de LED (https://github.com/wayoda/LedControl) si aún no lo ha hecho.
El código usa las primeras 4 filas de la matriz de LED como decenas y las últimas 4 filas como unidades. Así, por ejemplo, si comprueba el código de "uno", verá "11" girado 90 ° en el sentido de las agujas del reloj. Si desea cambiar estos códigos, cuide ese detalle.
byte uno = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};
Los códigos para obtener los dígitos de la lectura del sensor son:
unidades =% húmedo 10; decenas = (húmedo / 10)% 10;
Para el dígito de las decenas, el ciclo for se ejecuta de la siguiente manera:
if (decenas == 1) {para (int c = 0; c <4; c ++) {lc.setRow (0, c, uno [c]); }
Para el dígito de las unidades, el bucle for se ejecuta de la siguiente manera:
if (unidades == 1) {para (int c = 4; c <8; c ++) {lc.setRow (0, c, uno [c]); }
El orden de visualización está en bucle de la siguiente manera:
"° C" -> temperatura -> "hum" -> humedad -> "dp" -> punto de rocío -> significado del punto de rocío (explicado a continuación)
Tengo información sobre cómo la gente siente el clima según el punto de rocío y puse esa información en el código de la siguiente manera:
dp <10: seco
9 <dp <15: bueno (g..d)
14 <dp <18: Sweltry (sw)
17 <dp <24: Sweltry plus (sw +)
dp> 23: mojado
La pantalla de esta palabra no es buena, pero aún es comprensible para una sola pantalla de 8x8.