En el siguiente blog se presenta la primera práctica del laboratorio de control de temperatura.
Objetivo general:
- Entender el funcionamiento básico de TSC-Lab para la realización de futuras prácticas.
Objetivos específicos:
- Analizar el comportamiento de la curva cuando los heaters están activados y desactivados.
- Guardar las mediciones obtenidas con ayuda de Cool Term y exportarlas en un archivo comma-separtaed-values (csv).
- Analizar el comportamiento de la curva cuando los heaters están activados y desactivados.
- Guardar las mediciones obtenidas con ayuda de Cool Term y exportarlas en un archivo comma-separtaed-values (csv).
Materiales:
- Programa Cool Term
- PCB de Temperature Control Lab (TSC-Lab)
Introducción:
El laboratorio de control de temperatura es un sistema en lazo cerrado. Sin embargo, en esta y futuras prácticas a realizar se comportará como un sistema de control en lazo abierto ya que no existe retroalimentación, únicamente los heaters se activan y los sensores empiezan a medir el incremento de temperatura y al desactivarlos los sensores miden como la temperatura baja hasta llegar a la temperatura del entorno.
Esta práctica se divide en dos partes, en la Parte A se explica el funcionamiento del software cargado a la PCB de TSC-Lab y en la Parte B se enseña a como almacenar los datos sensados con la placa.
Parte A
Procedimiento:
- Instalar la placa ESP-32 en el IDE de Arduino, para hacerlo siga los siguientes pasos:
Clic en "Preferencias"
Dar clic en "Herramientas"
Clic en "Placa > Gestor de Placas"
En el buscador escriba: esp32 y de clic en "instalar"
Finalmente de clic en "cerrar"- Instalar la librerías OneWire y DallasTemperature en el IDE de Arduino. Para ello de clic en el nombre de cada una de las librerías para dirigirse a un enlace externo, en este caso se hará la demostración con OneWire:
Clic en "Programa > Incluir Librería > Añadir biblioteca .ZIP"
Busque el directorio donde guardó el archivo .zip y dar clic en "Abrir"
Si la instalación fue exitosa le aparecerá el siguiente mensaje en pantalla:
Realice el mismo procedimiento con DallasTemperature.
- Copiar el código en el IDE de Arduino:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
****************************** TSC-Lab ******************************* | |
***************************** PRACTICE 1 ***************************** | |
By: Kevin E. Chica O | |
Reviewed: Víctor Asanza | |
More information: https://tsc-lab.blogspot.com/ | |
More examples: https://github.com/vasanza/TSC-Lab | |
Dataset: http://ieee-dataport.org/4138 | |
*/ | |
#include <OneWire.h> | |
#include <DallasTemperature.h> | |
//GPIO pin 4 is set as OneWire bus | |
OneWire ourWire1(4); | |
//GPIO pin 0 is set as OneWire bus | |
OneWire ourWire2(0); | |
//pins of transistor | |
int trans1 = 17; | |
int trans2 = 16; | |
//A variable or object is declared for our sensor 1 | |
DallasTemperature sensors1(&ourWire1); | |
//A variable or object is declared for our sensor 2 | |
DallasTemperature sensors2(&ourWire2); | |
void setup() { | |
delay(1000); | |
Serial.begin(115200); | |
sensors1.begin(); //Sensor 1 starts | |
sensors2.begin(); //Sensor 2 starts | |
//transistor | |
pinMode(16, OUTPUT); | |
pinMode(17, OUTPUT); | |
} | |
void loop() { | |
if (Serial.available()) | |
{ | |
String string = Serial.readStringUntil('\n'); | |
if (string == "t1_on") { | |
digitalWrite(trans1, HIGH); | |
Serial.println("Transistor 1 on"); | |
} | |
if (string == "t1_off") { | |
digitalWrite(trans1, LOW); | |
Serial.println("Transistor 1 off"); | |
} | |
if (string == "t2_on") { | |
digitalWrite(trans2, HIGH); | |
Serial.println("Transistor 2 on"); | |
} | |
if (string == "t2_off") { | |
digitalWrite(trans2, LOW); | |
Serial.println("Transistor 2 off"); | |
} | |
} | |
//The command is sent to read the temperature | |
sensors1.requestTemperatures(); | |
//Obtain the temperature in ºC of sensor 1 | |
float temp1 = sensors1.getTempCByIndex(0); | |
//The command is sent to read the temperature | |
sensors2.requestTemperatures(); | |
//Obtain the temperature in ºC of sensor 2 | |
float temp2 = sensors2.getTempCByIndex(0); | |
//print to display the temperature change | |
Serial.print(temp1); | |
Serial.print(","); | |
Serial.print(temp2); | |
Serial.println("\n"); | |
delay(100); | |
} |
- Verificar que esté seleccionada la placa "ESP32-Dev Module" y el Upload Speed a 115200. Luego de esto se puede cargar el código a la placa.
- Para visualizar las mediciones se debe abrir el "Serial Plotter" del IDE de Arduino. Si se quiere activar o desactivar los heaters es necesario cerrar el "Serial Plotter" y abrir el "Monitor Serie" para enviarle comandos de activación y desactivación, luego de hacerlo se debe cerrar el "Monitor Serie" y abrir nuevamente el "Serial Plotter" con la finalidad de visualizar la gráfica ya que no es posible abrir los dos a la vez.
Nota: los comandos de activación y desactivación de los heaters deben ser enviados por el "Monitor Serie" y son los siquientes:
- Para activar el heater 1 se debe enviar el comando: t1_on
- Para desactivar el heater 1 se debe enviar el comando: t1_off
- Para activar el heater 2 se debe enviar el comando: t2_on
- Para desactivar el heater 2 se debe enviar el comando: t2_off
Demostración:
¡Atención! En caso de que que el TSC-Lab no sea detectado por el computador, se debe instalar el siguiente driver CP210X.
Parte B
Procedimiento:
- Instalar Cool Term. En el siguiente video se enseña como descargar y utilizarlo. Sin embargo, también se puede descargar la versión estable disponible aquí.
Nota: los comandos de activación y desactivación de los heaters son los mismos de la Parte A
Resultados:
Los archivos .csv generados de esta práctica se los puede apreciar aquí.
Comments
Post a Comment