Sistema de control de temperatura ambiental

Prácticas con DASA

Título de la práctica:Sistema de control de temperatura ambiental
Objetivo:El alumno diseñará un sistema electrónico de control de temperatura con Arduino para mantener una habitación con una temperatura máxima específica.
Tiempo estimado:100 minutos
Nivel de dificultad:Intermedio

Introducción

La domótica “es un conjunto de tecnologías aplicadas al control y automatización inteligente de una vivienda, que permite el uso eficiente de la energía, aporta seguridad y confort, además de comunicación entre el usuario y el sistema” (CEDOM, 2017).

Las principales funciones de un sistema domótico son:                             

  1. Recolectar información en tiempo real de distintos fenómenos físicos mediante el uso de sensores.
  2. Procesar la información obtenida de manera automática.
  3. Controlar el funcionamiento de distintos dispositivos de salida (actuadores) para mantener las condiciones deseadas en la vivienda.

Una de las ventajas de la domótica es que nos permite el ahorro de energía administrando eficientemente la iluminación, climatización, uso del agua, etc., aprovechando mejor los recursos naturales y disminuyendo los gastos de una vivienda. Además, mediante la monitorización de consumos, se obtiene la información necesaria para modificar hábitos y aumentar el ahorro y la eficiencia.

En esta práctica crearás un sistema automatizado de control de temperatura que permita mantener la temperatura ambiental dentro de un rango deseado. Estos sistemas son ampliamente usados en el ámbito de la domótica.

domótica
Figura 1 Domótica por Max Pixel

Materiales

Programas

Arduino IDE. Disponible en: https://www.arduino.cc/en/software

Desarrollo

Para el desarrollo de esta práctica utilizaremos el sensor de temperatura LM35. Si aún no estás familiarizado con el uso de este sensor te invitamos a que antes de continuar, revises la práctica Medición de temperatura ambiental para conocer sus características y funcionamiento. También haremos uso de un display LCD, si aún no conoces cómo usarlo, es conveniente que revises la práctica Impresión de información con un display LCD.

Construcción del circuito electrónico

Vamos a comenzar a conectar los componentes electrónicos que necesitamos para construir el sistema de control de temperatura.

Conexión del ventilador al DASA

Conecta el ventilador al DASA como se muestra en la Figura 2:

  1. Toma un cable jumper.
  2. Conecta uno de sus extremos a la tierra del ventilador (cable negro).
  3. Ubica en el DASA la conexión M- del motor DC.
  4. Utiliza el desarmador para aflojar el tornillo del boque de conexión M- del motor DC del DASA, introduce el otro extremo del cable jumper y vuelve a usar el desarmador para apretar el tornillo.
  5. Toma el otro cable jumper.
  6. Conecta uno de sus extremos a la corriente del ventilador (cable rojo).
  7. Ubica en el DASA la conexión M+ del motor DC.
  8. Utiliza el desarmador para aflojar el tornillo del conexión M+ del motor DC del DASA, introduce el otro extremo del cable jumper y vuelve a usar el desarmador para apretar el tornillo.
Figura 2 Conexión del ventilador al bloque de terminales del motor DC del DASA

Conexión del DASA a la tarjeta Arduino UNO

Conecta el DASA la tarjeta Arduino UNO como se muestra en la Figura 3. Asegúrate que todos los pines se introduzcan completamente en los conectores de la tarjeta Arduino correspondientes.

Figura 3 Conexión del DASA a la tarjeta Arduino UNO

Nota: si no tienes un DASA, puedes construir el circuito electrónico mostrado en la Figura 4, o bien, utilizar la herramienta de simulación de circuitos electrónicos de Arduino de Tinkercad. Considera que en Tinkercad no existe el componente ventilador, pero puedes sustituirlo por un Motor de CC.

circuito-control-temperatura
Figura 4 Diagrama esquemático del circuito electrónico de control de temperatura

Programación del circuito electrónico

El procedimiento que debemos seguir para mantener la temperatura menor o igual al umbral es el siguiente:

  1. Lectura del valor registrado por el sensor de temperatura.
  2. Cálculo de la temperatura ambiental en grados centígrados.
  3. Evaluar si la temperatura excede el umbral establecido.
  4. Encender o apagar el ventilador dependiendo de la temperatura registrada.

Esto se realiza utilizando la estructura de control de decisión if-then-else. Primero se evalúa la condición temp > umbral, si el resultado es verdadero, el ventilador se enciende con la instrucción digitalWrite(PIN_VENTILADOR, HIGH) y si el resultado es falso, el ventilador se apaga con la instrucción digitalWrite(PIN_VENTILADOR, LOW).

Codificación del programa de Arduino

A continuación se presenta el programa del circuito electrónico de temperatura:

/* Control de temperatura
* Programa que mantiene la temperatura ambiental menor o igual a un umbral establecido.
* Si la temperatura excede el umbral, se encenderá un ventilador el tiempo necesario
* hasta que la temperatura baje.
* NOTA: El sensor está conectado al pin A3 y el ventilador al pin 3
* UNAM 2022
*/

// Biblioteca para el uso del display LCD
#include <LiquidCrystal.h>

// Definición de los pines de comunicación con el display LCD
// lcd(RS, E, D4, D5, D6 D7);
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

// Declaración de la constante PIN_SENSOR con el valor del pin al que está conectado el sensor de temperatura
const int PIN_SENSOR = 3;

// Declaración de la constante PIN_VENTILADOR con el valor del pin al que está conectado el ventilador
const int PIN_VENTILADOR = 3;

// Declaración de la constante UMBRAL que almacena el valor máximo de temperatura
const float UMBRAL = 23.0;

//Declaración de variables para el cálculo de la temperatura
int valorSensor = 0;
float temp = 0;

//Declaración del caracter especial grado centrígrado (°)
byte grado[8] = {
0b01110,
0b10001,
0b10001,
0b01110,
0b00000,
0b00000,
0b00000,
0b00000
};
//https://omerk.github.io/lcdchargen

void setup() {
// Configuración del pin del ventilador de salida
pinMode(PIN_VENTILADOR,OUTPUT);

// Inicialización del display LCD
lcd.begin(16,2);

// Creación del caracter especial ° y asignación al arreglo 0
lcd.createChar(0, grado);
}

void loop() {
//Lectura del sensor de temperatura
valorSensor = analogRead(PIN_SENSOR);

//Cálculo de la temperatura sensor LM35
temp = ((valorSensor/1023.0)*5000)/10;

//Cálculo de la temperatura sensor TMP36
//temp = (((valorSensor/1023.0)*5000)-500)/10;

//Muestra la temperatura en el display LCD
lcd.setCursor(0,0);
lcd.print("Temp = ");
lcd.print(temp);
lcd.print(" ");
lcd.write(byte(0)); //Imprime caracter grados centígrados
lcd.print("C");

//Evalúa si la temperatura ambiental es mayor que el umbral
if (temp > UMBRAL)
digitalWrite(PIN_VENTILADOR,HIGH);
else
digitalWrite(PIN_VENTILADOR,LOW);
delay(1000);
}

Captura, compila y ejecuta tu programa por medio de siguientes acciones:

  1. Abre el IDE de Arduino.
  2. Crea un nuevo sketch.
  3. Captura las instrucciones del programa.
  4. Guarda tu programa.
  5. Compila tu programa. En caso necesario, depúralo hasta que no tenga ningún error.
  6. Conecta la tarjeta Arduino a tu computadora.
  7. Selecciona el puerto serial (COM) de la computadora asociado a la tarjeta.
  8. Sube el programa a la memoria de la tarjeta Arduino UNO.
  9. Ejecuta tu programa.

Resultados

Pon a prueba tu circuito electrónico con temperaturas menores y mayores al umbral establecido en el programa y observa cuándo se acciona el ventilador.

Modifica el código de tu programa para que el ventilador se active cuando la temperatura rebase los grados centígrados que tú desees.

Conclusiones

Finalmente, te invitamos a que respondas las siguientes preguntas:

  1. ¿Qué aprendiste con esta práctica?
  2. ¿En cuáles procesos de la ciencia o la industria es útil un sistema de control de temperatura?
  3. ¿Qué ventajas y desventajas tiene el uso de un sistema de control de temperatura?
  4. Si tuvieras que crear un sistema de control de temperatura con Arduino resistente al agua, ¿cómo lo harías?

Reto Arduino

  1. Construye y programa un circuito electrónico que registre la temperatura ambiental y encienda el LED del color indicado en la Tabla 1 dependiendo del rango en el que se encuentre la temperatura.
Rango de temperatura en °CLED que debe encenderse
[17,20)verde
[20,23)amarillo
23 o mayorrojo
Tabla 1 Rangos de temperaturas y estados de los LEDs

Referencias

Arduino. (2021). Language Reference. https://www.arduino.cc/reference/en/

Bañuelos, M., Pacheco, M. y Villegas, R. (2022). Dispositivo Automatizado de Sensores para Arduino (DASA). Manual de Usuario.