Termostato con Arduino Uno, DHT11 y LCD

Termostato con Arduino Uno, sensor DHT11 y  pantalla LCD I2C

Un termostato es un dispositivo que, conectado a una fuente de calor, sirve para regular la temperatura de manera automática, impidiendo que suba o baje del grado adecuado

Con el frío necesitamos controlar correctamente la calefacción de nuestra casa, esto se traduce en comodidad y ahorro energético.

Realizar un termostato con ArduinoBlocks es muy sencillo, vamos a ver las diferentes partes que necesitamos:

  • Obtener la temperatura ambiente con un sensor de temperatura DHT11 conectado al pin digital 3:

  • Potenciómetro para permitir que el usuario pueda fijar la temperatura deseada. Mapearemos el valor del potenciómetro de 0 a 30, para un valor menor de 5 desactivaremos el termostato y con valores entre 5 y 30 el termostato estará operativo (así ahorramos poner un botón de encender y apagar). Conectado al pin analógico A0:

 

  • Módulo de relé para activar la fuente calor (caldera, radiador, calefactor, …). Conectado al pin digital 4:

 

  • LCD con conexión I2C (pines A4 y A5) para mostrar la información:

Esquema de conexiones:

Montaje real con módulos:

Programa por bloques:

El programa por bloques se ha dividido en funciones para dividir los diferentes procesos y ver el funcionamiento más claro.

El programa refresca la información cada 1s, el sensor de temperatura puede sufrir oscilaciones momentáneas por fallo en los contactos de la placa de prototipos, mal conexión de los cables, cambios bruscos en la alimentación (al activarse o desactivarse el relé puede afectar a la alimentación y crear picos que afecten a los componentes). Por este motivo el valor de temperatura se hace una media con el valor anterior para suavizar estos cambios bruscos. En una versión mejorada se podría hacer la media de los últimos 5 valores por ejemplo para mayor precisión, pero así se ha probado y se amortigua bastante bien los posibles saltos bruscos del sensor.

Por otro lado se implementa un sistema básico de histéresis para evitar cambios de estado muy rápidos en el relé cuando estamos en un valor de temperatura ambiente muy próximo al de la temperatura seleccionada. A la hora de procesar y decidir el estado del termostato se añade un grado por arriba como límite para desactivar el termostato y se resta un grado por debajo como límite para activar el tersmotato.

Por ejemplo si seleccionamos 22 grados no se apagará la calefacción hasta superar los 23º y no se activará hasta bajar de los 21º  es decir -1º y +1º de margen

Este margen se puede ajustar según la precisión del sensor y la inercia térmica del tipo de calefacción (si el sistema de calefacción es muy rápido el valor de esta variable será más alto, si no más bajo)

Programa completo:

http://arduinoblocks.com/web/project/616

 

Y recuerda, para dominar ArduinoBlocks tienes disponible el libro oficial en Amazon:

Compartir

3 pensamientos en “Termostato con Arduino Uno, DHT11 y LCD

  1. Pingback: Proyecto: Chaqueta inteligente para ciclismo – ArduinoBlocks.com

Deja un comentario