Hola, este es la primera cosa que publico relacionada con los "miniproyectos" que hago de arduino cuando me aburro, así pues no seáis muy duros con las críticas xD.
Comenzamos; este proyecto es hacer un termostato digital para controlar la temperatura de la casa por medio de un arduino UNO.
Requerimientos de hardware:
-Arduino UNO.
-Teclado escudo retroiluminación azul para lcd placa Arduino robot 1602.
-Relé que admita señal de control de 5V.
-Sensor de humedad y temperatura DHT11.
-6 cables macho-hembra, se pueden usar cables sin conexiones pero recomiendo usar cables con conexión hembra por si se desea cambiar el sensor o relé de forma simple y rápida sin necesidad de usar soldadores.
Herramientas necesarias:
-Soldador electrónico.
-Estaño.
Una vez tenemos todo el hardware el montaje es muy simple.
El panel LCD elegido tiene la ventaja de que da salidas a las conexiones del arduino, por lo que aunque queden tapadas se las puede usar con la pega de que en este caso se necesita soldar el cable en la salida correspondiente.
1º Conectamos el sensor de temperatura al pin digital 2, en el sensor el pin correspondiente a la señal es el pin "Out" que de los 3 pines corresponde en la posición central. El relé le conectamos en el pin digital 3, en le relé el pin correspondiente a la señal de control es igual que en el sensor de temperatura, de los 3 pines es el pin central.
2º La alimentación del sensor la haremos con la salida de 5V y el relé a la salida de 3V, en ambos casos se conecta el pin + que corresponde al pin de la derecha si miramos ambos desde arriba y les colocamos que los pines apunten en la dirección en la que miramos (osea si tenemos un monitor, debemos poner los pines mirando al monitor). El último pin restante es el pin -, este lo conectamos a la toma de tierra(GND) del arduino en ambos casos.
Para que las conexiones se mantengan se han de soldar todas a la placa del LCD.
3º Conectamos el LCD al arduino, no tiene complicación alguna ya que esta placa esta pensada para conectarla directamente a un arduino UNO y sólo nos dejará conectarla de una forma. Ahora con todo esto vamos al software.
Dejo un link a mi dropbox para descargar el software correspondiente y necesario. La libreria del LCD es la libreria LiquidCrystal.h, la que lleva arduino de serie. La libreria del sensor la encontrarás en el link.
Instrucciones de uso:
El botón "Select" del LCD activa la función para controlar la temperatura, osea, al pulsarlo (mantener hasta que aparezca un flecha al lado de la temperatura marcada) activamos que el arduino compare la temperatura programada con la ambiental, si la temperatura ambiental es inferior a la programada aparecerá una flecha apuntando hacia abajo, unos segundos después esta se cambiará a otra apuntando hacia arriba para indicar que la temperatura esta subiendo por la acción de la calefacción ya que en este caso el arduino activa el relé para encender la calefacción.
Si la temperatura es 1º, igual o superior a la programada la flecha apuntara hacia abajo y el arduino no hara nada hasta que la temperatura sea 2º inferior a la marcada, este valor lo he puesto así para ahorrar y para evitar que el arduino se vuelva loco por las variaciones que puedan darse en cuando se llega a la temperatura deseada, ya que sólo hay un sensor y no se puede hacer una media para tener una medición exacta de la temperatura de la habitación.
El botón "LEFT" del LCD nos permite modificar la temperatura, mantenemos pulsado hasta que aparezca el "cursor", después de esto dispondremos de unos 20s para modificar la temperatura programable.
El botón "UP" y "DOWN" hacen exactamente lo que indican, el botón UP sirve para aumentar la temperatura y el DOWN para disminuirla, en ambos casos se avanza grado a grado. En ambos casos si se mantiene pulsado se modifica el valor grado a grado a razón de 1 grado por segundo. Una vez tenemos la temperatura deseada esperamos unos segundos sin pulsar nada hasta que el cursor desaparezca.
El botón "RIGHT" del LCD sirve para encender y apagar la calefacción de forma manual, es decir, si no queremos programar una temperatura o sólo queremos encender la calefacción sin que pare a la temperatura programada, este botón nos permite hacerlo, al pulsarlo aparecerá un símbolo formado por una M y una flecha en encima apuntando hacia arriba al lado de la temperatura programada. Esta función sólo se desactiva si volvemos a pulsar el botón.
El botón "RESET" no hace más que reiniciar el arduino.
Datos a tener en cuenta:
La temperatura programable predefinida es de 20ºC, esta puede modificarse en el programa a la que más se acomode al uso del usuario.
Se recomienda mantener pulsado el botón hasta que aparezca el símbolo correspondiente, da igual el botón a pulsar, se recomienda mantener pulsado.
El panel LCD trae su propio regulador de voltaje para calibrar el contraste del LCD.
En la carpeta de dropbox se dejan planos en autocad y en formato para impresoras 3D de un diseño de carcasa para este termostato. AVISO: Este diseño no he podido sacarlo en impresión 3D por lo que no se si habrá algún error o desviación en las medidas del diseño.
Planos del diseño:
Estoy revisando el código para poder meterle control por bluetooth o wifi, pero ahora mismo este programa prácticamente ocupa toda la memoria RAM del arduino por lo que al cargarlo más se presenta el problema de que el arduino se reinicia por falta de memoria.
FOTOS:
Simbolo de la función manual:
Función automática de control de la temperatura:

