Estación de Monitoreo de Temperatura Permanente

Anuncio
Universidad Nacional de Colombia
Fundamentos De Electricidad Y Magnetismo
Proyecto: Estación de Monitoreo de Temperatura Permanente:
Integrantes:
David Alejandro Daza
244953
Manuel Alejandro
245135
Edwin Fernando Sanabria 245155
Miguel Ángel Ruiz
244977
Andrés Felipe González 200782
G09NL16
G09NL08
G09NL36
G10NL34
G10NL18
Grupo Helios
Objetivos:
1. Desarrollar efectivamente una estación de monitoreo de
temperatura con la que se puedan realizar mediciones continuas y
verídicas de esta.
2. Analizar la relación de este proyecto con esta materia y las
carreras de estudio de los integrantes del grupo.
3. Estipular las posibles aplicaciones que podría tener este proyecto
al consolidarse.
Materiales:





Placa Arduino Uno
Protoboard
Sensor de temperatura LM35
Canle USB tipo AB
Computador a disposición
Windows)
(Sistema
operativo
manejado
Conceptualización:
¿Qué es Arduino?
Arduino es una plataforma de electrónica abierta para la creación de prototipos
basada en software y hardware flexibles y fáciles de usar. Se creó para artistas,
diseñadores, aficionados y cualquiera interesado en crear entornos u objetos
interactivos.
Arduino UNO: El Uno Arduino es una placa electrónica basada en el
ATmega328. Cuenta con 14 entradas digitales / salidas (de los cuales 6 pueden
ser utilizados como salidas PWM), 6 entradas analógicas, un oscilador de cristal
de 16 MHz, una conexión USB, un conector de alimentación, una cabecera ICSP,
y un botón de reinicio. Contiene todo lo necesario para apoyar la micro, basta
con conectarlo a un ordenador con un cable USB o el poder con un adaptador
AC-DC o batería para empezar.
Protoboard: Son esencialmente unas placas agujereadas con conexiones
internas dispuestas en hileras, de modo que forman una matriz de taladros a los
que podemos directamente "pinchar" componentes y formar el circuito deseado.
Como el nombre indica, se trata de montar prototipos, de forma eventual,
nunca permanente, por lo que probamos y volvemos a desmontar los
componentes, quedando la protoboard lista para el próximo experimento.
Sensor de temperatura LM35: El LM35 es un sensor de temperatura con una
precisión calibrada de 1ºC y un rango que abarca desde -55º a +150ºC.
El sensor se presenta en diferentes encapsulados pero el mas común es el to-92
de igual forma que un típico transistor con 3 patas, dos de ellas para alimentarlo
y la tercera nos entrega un valor de tensión proporcional a la temperatura
medida por el dispositivo. Con el LM35 sobre la mesa las patillas hacia nosotros
y las letras del encapsulado hacia arriba tenemos que de izquierda a derecha los
pines son: VCC - Vout - GND.
La salida es lineal y equivale a 10mV/ºC por lo tanto:



+1500mV = 150ºC
+250mV = 25ºC
-550mV = -55ºC
Montaje y Funcionamiento:
1. Conexión del sensor de temperatura:
o Lo primero es identificar correctamente las conexiones del sensor
(sobre la mesa las patillas hacia nosotros y las letras del
encapsulado hacia arriba tenemos que de izquierda a derecha los
pines son: VCC - Vout – GND). Ahora conectaremos el sensor
con la placa Arduino a través de la placa de prototipado y unos
cables de conexión:
• La tensión Vcc a la entrada de 5V de Arduino
• La tierra a la conexión GND de Arduino
• La señal a la entrada analógica n (se puede elegir cualquiera
pero se debe tener en cuenta en el programa identificándolo
correctamente).
2. Instalación se software de Arduino:
o Selección de sistema operativo (Aunque observamos que es
mucho más sencillo manejar Mac OSx ó Linux debido a que
no requiere la instalación de drivers o complementos, la
manipulación de los datos es más complicada; por lo que se
eligió Windows como sistema operativo).
o Descarga
del
software
de
la
pagina:
http://arduino.cc/en/Main/Software
o Se ejecuta y guarda en una ubicación conocida.
o Se conecta la placa con en el cable USB para proceder a la
instalación del hardware; se ejecutan los drivers
correspondientes (que se encuentran en el paquete
descargado), realizando una instalación avanzada del
paquete.
o Como la aplicación se desarrolla en JAVA es posible que el
paquete (o el ordenador) carezcan de este complemento
para la ejecución del compilador; en caso tal se pude
descargar de la pagina: http://java.com/es/download/
o Se inicia la aplicación contenida en el paquete para la
generación de código y se configura el puerto COM en:
Tools>Serial Port>COM n; además se verifica la lectura
correcta de la placa en: Tools>Board>Arduino UNO.
o Se pueden ejecutar algunos programas ejemplos para
confirmar su buen funcionamiento siguiendo las
instrucciones directamente de la pagina de Arduino; con
esto el montaje concluye y se procede a la ejecución del
programa.
Manejo de Datos:
1. En primera medida se utilizaron 2 programas para poder visualizar la
información recolectada en forma de gráfica en tiempo real:
 En primer lugar se introduce el código 2, presente en el anexo, en
el compilador de Arduino, se verifica y ejecuta; el cual esta
diseñado para emitir el valor de la temperatura continuamente y
registrar el tiempo de envío de esta en microsegundos desde el
momento que se ejecuta el programa, además presenta comandos
de inicio y finalización del programa donde al enviar los
caracteres s y f se ejecutara el programa y se detendrá,
respectivamente.
 Descarga y manejo del programa de captura de datos: Se utiliza
un programa llamado Realterm, el cual va a capturar los datos
enviados por el sensor y los va a guardar en un archivo de texto;
página de descarga: http://realterm.sourceforge.net/. Al ejecutar el
código en el Arduino; en el menú del Realterm se debe seleccionar
el puerto y la ubicación y nombre del archivo de destino de los
datos recibidos, posteriormente se da inicio a el envío de datos.
1)Seleccionar Port:
2) Seleccionar destino de envío de datos:
3) Dar inicio al programa con el comando ASCII:
4) Sobre-escribir el archivo y continuar con la toma de datos:

Descarga y manejo del programa para la graficación de los datos: El
programa llamado Kst (página de descarga: http://kst.kde.org/ ), toma
los datos del archivo .txt y los gráfica según las preferencias continuamente:
1) Toma de datos y selección de archivo:
2) Se configura la se paratión de las columnas: (Con el código ingresado en el
compilador se definió a; como separador)
3) Selección de columna de interés (eje y): (en nuestro caso es la 2 (la
temperatura))
4) Selección del eje x:
5) Gráfica de datos: (Column2= temperatura Celsius; Column1=Tiempo
microsegundos)
6) Se procede a añadir los datos progresivamente con el Realterm:
7) Se da la grafica continua de datos en Kst:
2. Como se planteo con otros grupos se consolido un método para enviar los
datos recolectados registrándose en la página:
http://www.soliun.unal.edu.co/estacion/registrarEstacion.php
,
donde
posteriormente se confirmaría el ingreso y se podría observar en la página:
http://www.soliun.unal.edu.co/estacion , el historial de los datos; para el
funcionamiento de eso se requiere el código 1, presente en el anexo y esta
aplicación: http://www.mediafire.com/file/7ox5b7yqobtir9l/instalador.exe .
Bibliografía:
-http://www.arduino.cc/en/Main/arduinoBoardUno
-http://proyectoselectronics.blogspot.com/2009/02/que-es-unprotoboard.html
-http://www.x-robotics.com/sensores.htm
-http://real2electronics.blogspot.com/2009/11/graficar-con-kst.html
Anexo: (Cabe destacar que el puerto analógico utilizado fue el 1 por lo que los
códigos presentes a continuación solo son funcionales si se ejecutan con el
previo montaje anteriormente dicho)
1-Código para la medición de temperatura y conversión a grados centígrados
(voltaje emitido por el sensor) con un intervalo de medición de 1 minuto:
int pinTemperatura = 1; // Puerto analógico seleccionado (Pin 1)
int tempValor ; // La variable donde guardaremos la temperatura
void setup()
{
Serial.begin(9600); // De esta manera iniciamos el puerto serie para poder
monitorizar
}
void loop()
// Esta función repetirá su contenido indefinidamente
{
// Primero transformamos la lectura analógica de tensión a un valor de temperatura
tempValor = ( analogRead(pinTemperatura) * 500.0) / 1024.0;
// Ahora imprimimos el valor en el puerto serie donde podremos monitorizarlo
Serial.print("Temperatura (G.Celsius) = ");Serial.println(tempValor);
// Finalmente esperamos 1 minuto de volver a leer la temperatura
delay (60000);
}
2-Código para la medición de temperatura y conversión a grados centígrados
(voltaje emitido por el sensor) cada 10 segundos, con comando de inicio y
terminación para ser graficado en tiempo real:
extern volatile unsigned long timer0_overflow_count;
float fanalog1;
int analog1;
unsigned long tiempo;
byte serialByte;
void setup() {
Serial.begin(9600);
Serial.println("Pulse s para comenzar:");
}
void loop()
{
while (Serial.available()>0){
serialByte=Serial.read();
if (serialByte=='s'){
while(1){
analog1=analogRead(1);
// Convierte a valor de temperatura
fanalog1= (analog1)*(500.0/1024.0);
// Recojo ticks del timer0 => 1 tick cada 4 us (usado en millis)
tiempo=(timer0_overflow_count << 8) + TCNT0;
// Convierto a us
tiempo = tiempo*4;
//Lo envía para simular archivo tipo *.csv
Serial.print (tiempo);
Serial.print (';');
Serial.println(fanalog1);
if (Serial.available()>0){
serialByte=Serial.read();
if (serialByte=='f') break;
}
}
}
}
}
Descargar