calibración de sensores de temperatura e iluminación

13
Monitoreo de potencial redox, temperatura e iluminación en un sistema de planta hidrofita. 1. Introducción. 2. Descripción del sistema. Se colocaron tres sondas de temperatura. Una se dedicó a la medición de temperaturas al aire libre (temperatura exterior). La segunda se colocó en el interior de la habitación donde se colocó el sistema agua-planta (Scirpus spp.). La tercera se colocó dentro del agua del sistema. También se colocó un sensor de iluminación en la misma ventana junto con el sistema planta- agua. Además se utilizó un controlador de potencial redox para medir los valores (mV) dentro del agua del sistema. Durante el crecimiento de las plantas se hicieron mediciones en tres fechas con una diferencia de una semana entre cada una. La primera lectura se hizo dos semanas después de la siembra, para proporcionar un tiempo de aclimatación. Cada semana se hizo un cambio del 75% de agua (4 L en total). En el agua se añadió 100 mg de bicarbonato de sodio (NaH2CO3) y 100 mg de fosfato de calcio (Ca(PO4)2). Se dejó en reposo durante cinco días antes de tomar las lecturas. Circuito electrónico para monitoreo de temperaturas e iluminación. Se utilizaron termistores de 10M_Ohm para la medición de las temperaturas. La iluminación se midió con una fotorresistencia de 2M_Ohm. Estos sensores se conectaron a una tarjeta de desarrollo de la marca Arduino modelo UNO. Esta tarjeta se conectó con el Shield Ethernet de la misma marca, la cual contiene un slot para tarjeta de memoria microSD, en la que se insertó una tarjeta de 4GB. Se escribió un programa con el que el sistema registró un bloque de datos cada cinco minutos. El bloque de datos contiene tres valores de temperatura (interior, exterior y sistema) y un valor de iluminación. Estos datos se guardaron automáticamente en un archivo de texto. Cada 24 horas se retiró la tarjeta de memoria para leerla en una computadora importando el archivo en una hoja de cálculo Microsoft Excel. Con el programa Microsoft Excel se procesaron los datos calculando promedio, valor máximo, valor mínimo, varianza, desviación estándar e intervalo de confianza al 95%. Calibración de los sensores de temperatura.

Upload: miguel-angel-orduna

Post on 24-Jun-2015

526 views

Category:

Education


4 download

DESCRIPTION

Arduino development card based temperature and luminosity montoring system. This paper covers callibration of temperature sensors. Readings are gathered every five minutes, 24 hours a day. Data saved in a micro SD in the Shield Ethernet card (Arduino).

TRANSCRIPT

Page 1: Calibración de sensores de temperatura e iluminación

Monitoreo de potencial redox, temperatura e iluminación en un sistema de planta hidrofita.

1. Introducción.

2. Descripción del sistema.

Se colocaron tres sondas de temperatura. Una se dedicó a la medición de temperaturas al aire

libre (temperatura exterior). La segunda se colocó en el interior de la habitación donde se colocó

el sistema agua-planta (Scirpus spp.). La tercera se colocó dentro del agua del sistema.

También se colocó un sensor de iluminación en la misma ventana junto con el sistema planta-

agua. Además se utilizó un controlador de potencial redox para medir los valores (mV) dentro del

agua del sistema.

Durante el crecimiento de las plantas se hicieron mediciones en tres fechas con una diferencia de

una semana entre cada una. La primera lectura se hizo dos semanas después de la siembra, para

proporcionar un tiempo de aclimatación.

Cada semana se hizo un cambio del 75% de agua (4 L en total). En el agua se añadió 100 mg de

bicarbonato de sodio (NaH2CO3) y 100 mg de fosfato de calcio (Ca(PO4)2). Se dejó en reposo

durante cinco días antes de tomar las lecturas.

Circuito electrónico para monitoreo de temperaturas e iluminación.

Se utilizaron termistores de 10M_Ohm para la medición de las temperaturas. La iluminación se

midió con una fotorresistencia de 2M_Ohm. Estos sensores se conectaron a una tarjeta de

desarrollo de la marca Arduino modelo UNO. Esta tarjeta se conectó con el Shield Ethernet de la

misma marca, la cual contiene un slot para tarjeta de memoria microSD, en la que se insertó una

tarjeta de 4GB.

Se escribió un programa con el que el sistema registró un bloque de datos cada cinco minutos. El

bloque de datos contiene tres valores de temperatura (interior, exterior y sistema) y un valor de

iluminación.

Estos datos se guardaron automáticamente en un archivo de texto. Cada 24 horas se retiró la

tarjeta de memoria para leerla en una computadora importando el archivo en una hoja de cálculo

Microsoft Excel.

Con el programa Microsoft Excel se procesaron los datos calculando promedio, valor máximo,

valor mínimo, varianza, desviación estándar e intervalo de confianza al 95%.

Calibración de los sensores de temperatura.

Page 2: Calibración de sensores de temperatura e iluminación

Uno de los sensores se calibró leyendo valores de temperatura con un termómetro de mercurio

marca Taylor (-20 a 110 °C) al mismo tiempo que se obtuvieron valores analógicos mostrados en el

monitor serial del ambiente de programación Arduino. El rango de la calibración comprendió

valores de 1 a 40 °C. A continuación se realizó una regresión lineal por mínimos cuadrados para

obtener la ecuación que relaciona la temperatura en función del valor analógico medido con el

sensor electrónico.

Los otros sensores se calibraron contra los valores obtenidos por el sensor calibrado contra el

termómetro de mercurio. Para esto se utilizaron lecturas de 24 horas, cada cinco minutos, con los

dos sensores colocados en el mismo sitio. El sensor exterior se calibró colocando la sonda

calibrada junto a la sonda en el exterior, tomando lecturas al mismo tiempo. Así también, se

colocó el sensor calibrado junto al sensor interior, tomando lecturas al mismo tiempo. Con estos

datos se realizó una regresión lineal por mínimos cuadrados. Así se obtuvieron las ecuaciones de

temperatura en función del valor analógico para cada una de las sondas de temperatura.

Figura. Calibración del termómetro T_3 contra un termómetro de mercurio marca Taylor (-20 a

110 °C). Se tomaron lecturas analógicas (0 a 1023) con el sensor de temperatura y de manera

simultánea se registraron las temperaturas medidas con el termómetro de mercurio. Con estos

valores se obtuvo el gráfico y la ecuación por regresión lineal.

(MisDocumentos\Arduino_Documentos\MonitoreoTemperatura\Calibracion_T_3.doc).

Page 3: Calibración de sensores de temperatura e iluminación

Figura. Calibración del termómetro T_2 tomando como referencia los valores de temperatura

leídos con el sensor T_3, que fue previamente calibrado contra un termómetro de mercurio marca

Taylor (-20 a 110 °C).

(MisDocumentos\Arduino_Documentos\MonitoreoTemperatura\TMP_ILUM_18_19_Nov2013.doc).

Page 4: Calibración de sensores de temperatura e iluminación

Figura. Calibración del termómetro T_1 tomando como referencia los valores de temperatura

leídos con el sensor T_3, que fue previamente calibrado contra un termómetro de mercurio marca

Taylor (-20 a 110 °C).

(MisDocumentos\Arduino_Documentos\MonitoreoTemperatura\TMP_ILUM_19_20_Nov2013.doc).

Figura. Mediciones de temperatura e iluminación una vez que se calibraron los sensores de

temperatura. T_1 y T_3 se colocaron juntos en el interior de la habitación. T_2 se colocó en el

exterior de la habitación. El sensor de iluminación se colocó en una ventana dentro de la

habitación recibiendo la luz del exterior

(MisDocumentos\Arduino_Documentos\MonitoreoTemperatura\TMP_ILUM_20_21_Nov2013.doc).

Una vez que se calibraron los tres termómetros, se colocó la sonda para medición de la

iluminación. Así se hizo una medición de prueba con los cuatro sensores, registrando lecturas cada

cinco minutos.

Monitoreo de potencial redox.

Se utilizó un controlador de potencial redox marca Hanna, modelo MV600 con un electrodo

Ag/AgCl. Las lecturas desplegadas en la pantalla LCD (liquid crystal display) se dan en milivolts. Los

Page 5: Calibración de sensores de temperatura e iluminación

valores reportados se corrigieron restando 200 mV para expresarlos como valores estandarizados

con respecto al electrodo de hidrógeno.

Estas lecturas se recolectaron de manera manual por lo que no se tienen intervalos regulares.

3. Resultados.

Page 6: Calibración de sensores de temperatura e iluminación

4. Discusión.

Page 7: Calibración de sensores de temperatura e iluminación

5. Conclusiones.

Page 8: Calibración de sensores de temperatura e iluminación

Anexo 1.

Programa para Arduino UNO con Shield Ethernet.

/*

TemperaturaIluminación_Monitoreo

Programa para arduino UNO con Shield Ethernet. Para

registrar temperatura con una termoresistencia de 10M_ohm

y una fotorresistencia de 2M_ohm.

Se colocan tres sondas de temperatura, una para medir la

temperatura ambiente, otra para medir la temperatura del

agua en el sistema y otra para medir la temperatura exterior.

Los sensores de temperatura conectados a las entradas analógicas

A0, A1 y A2. El sensor de iluminación conectado en la entrada

analogica A3.

El registro de datos e cada 5 minutos (300,000 sec). Se va a

colocar un sensor de potencial redox que al mismo tiempo va

a registrar los valores redox del sistema.

Se trata de relacionar los valores redox con la temparatura

y la iluminacion.

*/

#include <SD.h>

double tiempoTotal=0.0;

double tiempoTranscurrido=0.0;

long double tiempoPrevio=0.0;

Page 9: Calibración de sensores de temperatura e iluminación

long double intervalo=300000; // 5 min (300000 ms)

float valTemperatura1;

float valTemperatura2;

float valTemperatura3;

float valIluminacion;

float sondaTemperatura1;

float sondaTemperatura2;

float sondaTemperatura3;

float sondaIluminacion;

const int chipSelect=4;

const int zumbador=8;

const int led=9;

float temperaturaPromedio1;

float temperaturaPromedio2;

float temperaturaPromedio3;

float iluminacionPromedio;

int i;

int intensidad=0;

char leyendoSensores[]="Leyendo_sensores";

char programa[]="Programa: TemperaturaIluminacion_Monitoreo";

char encabezado[]="Time(min) T_prom1(C) T_prom2(C) T_prom3(C) Iluminacion";

char leyenda[]="T_1=temp interior; T_2=temp exterior; T_3=temp sistema";

char termometro1[]="termometro1 y=0.1591*x-56.113";

char termometro2[]="termometro2 y=0.1116*x-35.358";

char termometro3[]="termometro3 y=0.13318*x-43.9853";

void setup () {

Page 10: Calibración de sensores de temperatura e iluminación

pinMode(10, OUTPUT);

pinMode(led, OUTPUT);

pinMode(zumbador, OUTPUT);

Serial.begin(9600);

delay(10);

if (!SD.begin(chipSelect)) {

Serial.println("Falla en la micro SD o no hay tarjeta");

return; }

Serial.println("Tarjeta SD inicializada");

escribeEncabezado(); }

void loop () {

tiempoTotal=millis();

valIluminacion=0.0;

valTemperatura1=0.0;

valTemperatura2=0.0;

valTemperatura3=0.0;

if (tiempoTotal-tiempoPrevio > intervalo) {

Serial.println(leyendoSensores);

digitalWrite(led, HIGH);

for (i=0; i<3; i++) {

sondaTemperatura1=analogRead(A0); // Temperatura interior

sondaTemperatura2=analogRead(A1); // Temperatura exterior

sondaTemperatura3=analogRead(A2); // Temperatura del sistema

sondaIluminacion=analogRead(A3); // Iluminacion

Page 11: Calibración de sensores de temperatura e iluminación

valTemperatura1=valTemperatura1+sondaTemperatura1;

valTemperatura2=valTemperatura2+sondaTemperatura2;

valIluminacion=valIluminacion+sondaIluminacion;

valTemperatura3=valTemperatura3+sondaTemperatura3;

delay(500); }

temperaturaPromedio1=valTemperatura1/3;

temperaturaPromedio1=temperaturaPromedio1*0.1591-56.113;

temperaturaPromedio2=valTemperatura2/3;

temperaturaPromedio2=temperaturaPromedio2*0.1116-35.358;

iluminacionPromedio=valIluminacion/3;

temperaturaPromedio3=valTemperatura3/3;

temperaturaPromedio3=temperaturaPromedio3*0.13318-43.9853;

escribeReporte();

delay(300);

digitalWrite(led, LOW);

delay(100);

digitalWrite(zumbador, HIGH);

delay(100);

digitalWrite(zumbador, LOW);

tiempoPrevio=millis();

intensidad = 0; }

if (tiempoTotal-tiempoPrevio < intervalo) {

analogWrite(led, intensidad);

delay(100);

analogWrite(led, 0);

Page 12: Calibración de sensores de temperatura e iluminación

delay(5000);

// Serial.println(intensidad);

intensidad=intensidad+4; } }

void escribeEncabezado() {

Serial.println(programa);

Serial.println(leyenda);

Serial.println(termometro1);

Serial.println(termometro2);

Serial.println(termometro3);

Serial.println(encabezado);

File dataFile = SD.open("TMP_ILUM.txt", FILE_WRITE);

if (dataFile) {

dataFile.println(programa);

dataFile.println(leyenda);

dataFile.println(termometro1);

dataFile.println(termometro2);

dataFile.println(termometro3);

dataFile.println(encabezado);

dataFile.close(); }

return; }

void escribeReporte() {

tiempoTranscurrido=tiempoTotal/60000;

Serial.print(tiempoTranscurrido);

Serial.print("\t");

Page 13: Calibración de sensores de temperatura e iluminación

Serial.print(temperaturaPromedio1);

Serial.print("\t");

Serial.print(temperaturaPromedio2);

Serial.print("\t");

Serial.print(temperaturaPromedio3);

Serial.print("\t");

Serial.print(iluminacionPromedio);

Serial.println();

File dataFile = SD.open("TMP_ILUM.txt", FILE_WRITE);

if (dataFile) {

dataFile.print(tiempoTranscurrido);

dataFile.print("\t");

dataFile.print(temperaturaPromedio1);

dataFile.print("\t");

dataFile.print(temperaturaPromedio2);

dataFile.print("\t");

dataFile.print(temperaturaPromedio3);

dataFile.print("\t");

dataFile.print(iluminacionPromedio);

dataFile.println(),

dataFile.close(); }

return; }