Paso 7: Thermoigrometer
Este procedimiento también consiste en hacer un "patchwork" entre los dos códigos.
Abrir códigos y copia y pasado el código de LCD_display_control.ino en el de dht22andDS3231.ino.
En este paso vamos a hacer un bosquejo que muestra valores detectados por DHT22 y la hora y la fecha en la pantalla LCD. Por supuesto, tenemos que reemplazar todos Serial.print() con funciones de lcd.print() . Esta operación es muy sencilla si utiliza un editor de texto que tiene el buscar automática y reemplazar función (Notepad ++, por ejemplo). Por lo tanto, buscar Serial y reemplazar todos ellos con pantalla lcd.
La cabecera del bosquejo
Ahora, añadir la librería requerida por la pantalla LCD y declarar las dos variables y constantes utilizadas a la luz encendido y apagado.
Justo después de esta parte usted tiene que declarar dos matrices de bytes. Estas dos matrices, la gota y temp, dibuje los iconos que aparecen en la pantalla LCD. Como dibujar tus propios iconos, usted puede utilizar el editor de web siguiente: editor de fuentes de LCD.
A continuación, con el fin de inicializar el LCD tenemos que usar la función LiquidCrystal(). Dentro de los soportes hay los pernos utilizados.
Funciones
Desplazamiento hacia abajo el esbozo nos encontramos con varias funciones:
- bcdToDec---como dije antes, es necesario para convertir a números binarios a decimales
- readDS3231time---para leer datos del DS3231
- displayTime---necesaria para imprimir los datos y la hora en la pantalla LCD
- dht22---necesario para detectar e imprimir los valores de temperatura y humedad
Para una mejor visualización, hemos hecho algunos cambios en displayTime y dht22. Básicamente tenemos que mostrar en la primera fila fecha y hora y en el segundo una temperatura y humedad. Una pantalla LCD solo tiene 16 dígitos por fila por lo que si queremos mostrar todo lo debe organizar la salida.
En primer lugar, nos acorta los nombres de los días de la semana, como se puede ver en la primera instrucción switch/case . Luego agregamos otro switch/case para los nombres acortados de los meses. También eliminan el año actual y los segundos.
Por la misma razón, hicimos algunos cambios en la función dht22 . Este bosquejo no imprime cualquier información sobre la biblioteca de dht22 así como la línea "Tipo, condición de humedad (%), Temperature (C)," pero sólo imprime los dos iconos (gota y temp) y valor de la temperatura seguida de "° C" (porque usamos Celsius grados) y humedad seguida de "%". Puesto que no hay suficiente espacio hemos decidido eliminar la segunda cifra decimal de la temperatura y la humedad.
Función de configuración
Las dos primeras líneas en la función de configuración inicializar el pin botón y LUMIN. Se utilizan para controlar la retroiluminación de la LCD.
La tercera línea inicializa el DS3231.
El cuarto y quinto las líneas crean los dos iconos personalizados.
La última inicializa la pantalla LCD.
Función Loop
En la función loop se encuentran las instrucciones necesarias para controlar la retroiluminación de la LCD. No vamos a repetir su funcionamiento porque lo hicimos en el paso anterior.
Las dos últimas instrucciones recuerdan las funciones que mostrar la fecha y la hora y la temperatura y la humedad.
La única diferencia consiste en cambiar el valor del contador de 1000 (como vimos anteriormente) a 5 ya que ahora introduce un retardo de dos segundos.