Sie sind auf Seite 1von 15

Sistema de

control
automático
de
temperatura
y
ventilación
de un
Invernadero

Capítulo 4_ Sensado de humedad

4.1- El sensor

Para el sensado de la humedad del suelo, adquirimos un par de sensores Watermark®,


como el que se observa en la figura

Figura 4.1_ Sensor Watermark

El sensor Watermark (del tipo granular matricial), ofrece un método indirecto de


medición de la humedad del suelo, a partir de la medida de la succión del agua en el
terreno en centibares, con un rango aceptablemente lineal entre 0 y 200 centibares. En
sí, el sensor es una resistencia eléctrica variable lograda por dos electrodos contenidos
en una barrera permeable (con componente reactiva capacitiva menor del 7% en el
rango de 0 a 10KHz de frecuencia, igualmente el método de sensado que adoptamos, no
se ve afectado por componentes reactivas). Es decir, que cada valor de resistencia del
sensor corresponde linealmente a un valor de presión en centibares, que a su vez se
toma como indicador de un cierto valor de humedad en el suelo.
Tiene la ventaja de ser un sensor económico, robusto, de rápido tiempo de respuesta y
de no necesitar mantenimiento ni calibraciones, pero no es de tanta precisión como un
sensor tensiométrico y se degrada con el tiempo (vida útil de algunos años).

Del fabricante obtuvimos la siguiente información y sugerencias para el diseño del


circuito excitador del sensor:

 Tabla de conversión entre valores de resistencia y presión de succión para el


rango de 0-200 centibars (550-28000 Ohms ). Notar que un menor valor de
resistencia (y por ende una menor lectura en centibars) corresponde a un suelo
mas húmedo.
 La resistencia del sensor es inversamente proporcional a la temperatura del
suelo. Ajustar un 1% por grado farenheit de variación tomando como referencia
inicial 75 ºF.
 No es recomendable aplicar al sensor una tensión continua, ya que los electrodos
se pueden dañar por efecto electrolítico.
 No debiera dejarse el sensor continuamente excitado, ni la corriente a través del
mismo debiera superar 1mA. (para obtener una mayor vida útil).

4.1.1- Tabla de conversión

Pres[c Resist[Oh Pres[c Resist[Oh Pres[c Resist[Oh Pres[c Resist[Oh Pres[c Resist[Oh
b] ms ] b] ms ] b] ms ] b] ms ] b] ms ]
0 550 40 6800 80 12875 120 18075 160 23075
1 600 41 6960 81 13010 121 18200 161 23200
2 650 42 7120 82 13145 122 18325 162 23325
3 700 43 7280 83 13280 123 18450 163 23450
4 750 44 7440 84 13415 124 18575 164 23575
5 800 45 7600 85 13550 125 18700 165 23700
6 850 46 7760 86 13685 126 18825 166 23825
7 900 47 7920 87 13820 127 18950 167 23950
8 950 48 8080 88 13955 128 19075 168 24075
9 1000 49 8240 89 14090 129 19200 169 24200
10 1100 50 8400 90 14225 130 19325 170 24325
11 1280 51 8560 91 14360 131 19450 171 24450
12 1460 52 8720 92 14495 132 19575 172 24575
13 1640 53 8880 93 14630 133 19700 173 24700
14 1820 54 9040 94 14765 134 19825 174 24825
15 2000 55 9200 95 14900 135 19950 175 24950
16 2200 56 9350 96 15035 136 20075 176 25075
17 2400 57 9500 97 15170 137 20200 177 25200
18 2600 58 9650 98 15305 138 20325 178 25325
19 2800 59 9800 99 15440 139 20450 179 25450
20 3000 60 9950 100 15575 140 20575 180 25575
21 3200 61 10100 101 15700 141 20700 181 25700
22 3400 62 10250 102 15825 142 20825 182 25825
23 3600 63 10400 103 15950 143 20950 183 25950
24 3800 64 10550 104 16075 144 21075 184 26075
25 4000 65 10700 105 16200 145 21200 185 26200
26 4200 66 10850 106 16325 146 21325 186 26325
27 4400 67 11000 107 16450 147 21450 187 26450
28 4600 68 11150 108 16575 148 21575 188 26575
29 4800 69 11300 109 16700 149 21700 189 26700
30 5000 70 11450 110 16825 150 21825 190 26825
31 5200 71 11600 111 16950 151 21950 191 26950
32 5400 72 11750 112 17075 152 22075 192 27075
33 5600 73 11900 113 17200 153 22200 193 27200
34 5800 74 12050 114 17325 154 22325 194 27325
35 6000 75 12200 115 17450 155 22450 195 27450
36 6160 76 12335 116 17575 156 22575 196 27575
37 6320 77 12470 117 17700 157 22700 197 27700
38 6480 78 12605 118 17825 158 22825 198 27825
39 6640 79 12740 119 17950 159 22950 199 27950

4.2- Circuito de sensado de humedad

Planteamos básicamente un divisor resistivo, como se observa en la figura. La


resistencia Rx simboliza el sensor de humedad, la resistencia de 56kOhms limita la
corriente y define el rango utilizable del sensor. Los capacitores a ambos lados de Rx
buscan eliminar el paso de una eventual tensión continua hacia el sensor.

Alimentamos con tensión alterna de 15V, reducida desde 220VAC a través de un


transformador. En el secundario va conectado un relé para la activación/desactivación
del sensado de humedad.

Como alimentamos desde la red de 220 CA a través de un transformador, consideramos


necesario también medir la tensión de alimentación del divisor de tensión (tensión del
secundario del transformador) para incorporarla al cálculo de la humedad, ya que es de
esperar fluctuaciones de tensión en la red que afectarían la calidad de la medición si no
se la midiese. Esto lo hacemos mediante la resistencia sensora Rd, de 1kOhms .
Figura 4.2_ Divisor Resitivo

La etapa siguiente, trata de un rectificador de precisión media onda con una tensión
umbral de alterna de unos 15mV. Resumidamente, el circuito sensa la caída de tensión
sobre Rx, la rectifica y almacena el valor pico de la media onda con una constante de
tiempo dada por el capacitor y las resistencias R2 + R3 (  1seg; el ripple es
despreciable) . Finalmente el nivel de continua obtenido es adquirido por el conversor
analógico/digital.

Al igual que en el caso del circuito de sensado de temperatura, en la última etapa antes
de entrar al conversor A/D, alimentamos al amplificador LM324 con una tensión
acotada a 6,5V para evitar posibles daños al conversor en caso de un funcionamiento
anómalo.
Figura 4.3_ Etapa Rectificadora

4.3- Diseño del circuito

Datos:

 Tensión nominal de alimentación: 15V


 Tensión máxima medible por el conversor A/D: 5V DC
 Máximo valor en la escala de presión que se desea medir: 115 centibares

Primero determinamos el rango de medición:

Con 115 cB por la tabla del sensor obtenemos una resistencia de 17450 Ohms y como
éste es el valor máximo que queremos medir, pretendemos que equivalga a 5 V DC en
el conversor A/D. Notar que la tensión que llega al conversor es el valor pico de la onda
de alterna rectificada y filtrada, es decir que los
sería la máxima tensión medible antes de saturar el conversor.

Con 115 cB , la corriente sobre el sensor será

Ahora determinamos el valor de la resistencia limitadora, Ra. Cuando en Rx caen


3,54V, la restante tensión lo debe hacer sobre Ra, es decir:
Podemos elegir una resistencia normalizada de 56KOhms al 5%

No es de esperar que la presión a la cual se sature el conversor sea exactamente 115 cB,
debido a que para el cálculo de Ra utilizamos un valor fijo de alimentación de 15V y
como ya mencionamos esto puede variar según las condiciones de la red de alterna.
Pero el valor de 115 cB está bastante alejado del máximo de "sequedad" al cual
responderá el control de riego ( alrededor de 60 cB)

Con 0 cB (lo cual es consecuencia de un sensor completamente saturado en humedad) la

corriente sobre el sensor será de:

Resumiendo, tenemos:

Rango de "sequedad" Presión [cB] Reistencia [Ohms ] Tensión en el C A/D


[V]
Mínimo 0 500 0,187
Máximo 115 17450 5

Para monitorear la tensión del secundario del transformador, se hace necesario


acondicionar su valor a un nivel adecuado e ingresarlo a un canal del conversor A/D.
Esto lo logramos mediante otro divisor resistivo.

Adoptamos que para el valor nominal de 15V se traduzca a una tensión de 4V a la


entrada del conversor, de modo de dejar un margen para una sobretensión.

Planteando la ecuación queda:

Adoptando Rd = 1KOhms , se obtiene: Rc = 4,3KOhms  4,7KOhms

A modo de ejemplo se citan en la siguiente tabla distintos valores de tensión de


alimentación y su correspondencia con la tensión medida en el canal del ADC

Tensión de alimetación (en el secundario del Tensión medida en el conversor A/D


transformador)
[VDC]
[V eficaz]
12 3,20
14 3,74
15 4
16 4,27
18 4,80
18,8 5

Al desenergizar el circuito, la tensión sobre Rx cae a cero con una constante de tiempo
de aproximadamente 1,5 segundos ( debido a la presencia de los capacitores de
desacople de 100uF).

4.3.1- Circuito de activación de los sensores de Humedad

La habilitación se maneja escribiendo un estado alto (1 lógico) en la línea 1 del puerto A


( pata PA1) del 82C255. Éste puede entregar en cada salida del puerto como máximo
2,5mA, teniendo esto en cuenta colocamos una resistencia limitadora de 2,2KOhms
junto con el optoacoplador. Al habilitar, se pone en conducción al optoacoplador ,que al
inyectar corriente en la base del transistor lo satura permitiendo energizar la bobina del
relé. De esta manera se logra la activación del circuito de sensado.

Notar que no existe aislación eléctrica entre el circuito de excitación del relé y el
circuito de sensado, esto resultó inevitable para poder referenciar la tensión sobre los
sensores de humedad.

Figura 4.4_ Circuito de Activación

4.3.2- Diagrama de cálculo de humedad

El siguiente diagrama en bloques sintetiza como se obtiene el valor de humedad desde


el sensor en el suelo hasta el valor que utiliza el algoritmo de control.
Figura 4.5_ Diagrama de cálculo de humedad

4.3.3- Corrección por temperatura

Como se mencionó anteriormente, el sensor se ve afectado por la temperatura del suelo.


Según información del fabricante, éste viene calibrado a una temperatura de 75ºF
(23,89ºC); para temperaturas mayores se debe incrementar el valor obtenido de
resistencia a razón de 1% por cada ºF (0,56ºC ó 1,8% por cada ºC) ; análogamente, pero
decrementando, se corrige para temperaturas por debajo de 75ºF.

La corrección por temperatura del suelo se realiza a nivel software, en el módulo de


humedad del programa, de la siguiente manera:

[Ohms ]

4.3.4- Conversión a centiBares

Con el valor final de R, se ingresa a una tabla donde se obtiene el valor correspondiente
en centiBares. En el siguiente diagrama en bloques se detalla como funciona el
algoritmo de acceso a la tabla.
Figura 4.6_ Conversión a centiBares

4.4- Control de Humedad

Una alternativa interesante para controlar la humedad propuesta por el fabricante del
sensor, se detalla a continuación, aunque no se trata de la estrategia que se implementó.
La idea es colocar algunos sensores cerca de la superficie y otros a mayor profundidad,
donde se localizan las raíces del cultivo. De esta manera, cuando el sensor superficial se
seca hasta alcanzar el valor mínimo prefijado, se puede iniciar un riego superficial que
devuelva la humedad necesaria aunque el sensor profundo esté dentro del rango
aceptado.
La limitación encontrada para implementar esta idea, fue no contar con un mayor
número de sensores de humedad, ya que se disponen sólo de dos, por lo que se optó por
elegir criteriosamente la ubicación de cada uno y colocarlos a la misma profundidad ( a
unos 10-15 cm del suelo).

El algoritmo de control de humedad implementado responde básicamente al siguiente


diagrama en bloques:

Figura 4.7_ Algoritmo de Control de Humedad

Cada 8 horas, se activan los sensores de humedad, se espera un minuto para que se
estabilicen y se inicia la adquisición. Se toman 10 muestras de H1 y H2 separadas
alrededor de 1ms y se calcula el valor promedio de cada uno. Luego se obtiene la
humedad media del suelo promediando los valores finales obtenidos de H1 y H2.

Si en la lectura de algún sensor se obtuviese el valor de 110 cB o superior, es indicio de


que se llegó al límite superior medible por el ADC. Esto puede ocurrir, si es que no se
trata de un suelo extremadamente seco, de que se ha cortado el vínculo eléctrico entre el
sensor propiamente dicho y su amplificador en la placa de adquisición. El algoritmo de
humedad responde imprimiendo la leyenda:" Sensor Hx cable cortado" , donde x es el
número del sensor afectado, en la pantalla de LCD y luego sale del programa.

Si por el contrario, la lectura del sensor es de 0cB, correspondería a un sensor


completamente saturado en agua, situación imposible de lograr, por lo que sería indicio
de un defecto en el referenciado a masa del amplificador del sensor. En este caso se
imprimirá la leyenda: "Sensor Hx saturado" y también se sale del programa.

Dado que se cuenta con un retardo importante de tiempo entre que se comienza a regar
y se verifica un aumento de humedad en la zona de interés, resulta conveniente tomar
una decisión de riego antes de alcanzar el límite mínimo tolerado de humedad. Mediante
el control de la pendiente, lo que se busca es detectar una tasa de disminución de
humedad tope a fin de iniciar un riego moderado preventivo, aunque la humedad
sensada esté dentro del rango aceptado. Básicamente, lo que realiza el algoritmo de
control de pendiente es restar al valor de humedad obtenido en la medición anterior el
valor actual; luego divide el resultado por un número que está en función del período de
medición (originalmente 8 horas) y almacena el resultado final que es comparado con la
referencia para tomar una decisión.

4.5- Circuito de activación de riego

El circuito de activación de riego es de la misma estructura que el circuito de activación


de los sensores de humedad. La habilitación se maneja con la línea 0 del puerto A (pata
PA0) del 82C255. Al activarse, se le aplican 24 VAC a la electroválvula que de
inmediato procede a desbloquearse permitiendo el inicio del riego. Notar que en este
caso si existe una aislación eléctrica entre el circuito de potencia y el circuito de señal.

Figura 4.8_ Circuito de activación de riego


Leer temperatura con Arduino usando
un LM35

Eres Musico?

www.Taringa.net/musica

Hazte escuchar por Taringa! Musica

Que es Arduino? Pues es una plataforma open source bastante económica que nos
permite de manera sencilla interactuar con sensores y toda clase de componentes (desde
leds, y potenciometros, hasta tarjetas SD/MMC y Wiimotes) mediante 13
entradas/salidas digitales (algunas con PWM) y 6 entradas analógicas.

Cual es la ventaja? La esquematica para diseñar la placa se bajan de internet sin ningún
costo y uno puede hacer la placa en su propia casa sin muchos problemas porque no
tienen componentes SMD (superficiales) y la mayoria de las cosas se consiguen
fácilmente.

De la página oficial de Arduino, http://www.arduino.cc/ podremos descargar el software


con el que escribiremos el código para comunicarnos con los demás periféricos. El
mismo se encuentra basado en Processing (proyecto del MIT) y se programa en C sin
mas problemas.

Y porque no seguir usando un PIC? El Arduino no es un reemplazo, mas bien un


complemento. Se utiliza para realizar prototipos rápidos y poder plasmar ideas en un
instante. Como en el ejemplo que veremos a continuación, leer la temperatura de un
sensor requieren de unas pocas lineas de código solamente.

Aunque también tendremos otras opciones que juntan lo mejor de ambos mundos, como
lo es el Pinguino, http://www.hackinglab.org/pinguino/index_pinguino.html donde
aunque aun se encuentra bajo testeo, podremos tener un 18F4550 y aprovechar de las 30
entradas/salidas, y las 13 que pueden usarse como entradas analógicas.

Pero mejor que decir, es mostrar, por lo que sigue leyendo para ver como poder medir
temperatura con el Arduino a través de un sensor LM35.

Antes que nada, desde aqui pueden bajarse la datasheet,


http://www.national.com/ds/LM/LM35.pdf

El LM35 es un sensor que nos medirá la temperatura de la siguiente manera: 0 +


10mV/ºC, con una precisión de 0.5ºC a temperatura ambiente. Además trabajará
(dependiendo del modelo) entre -55 y 150ºC.

En Argentina podemos encontrar el LM35 (supongo el modelo LM35D que toma


temperaturas de 0 a 100, no pude verificarlo) a unos 2,7 U$D.
Y se conecta de la siguiente manera

R1 será una resistencia de 100K

* LEE UN SENSOR DE TEMPERATURA


* ---------------
*
* Lee un sensor LM35 y nos bota la lectura
* en el puerto serial
*
* PublicDomain 2007 by Gabriel Zea
* <http://randomlab.net>
* <mailto:zeaATrandomlabDOTnet>
*
*/

int lm35 = 0; //pin de conexion del sensor


int temperatura = 0; //variable para la temperatura
void setup(){
pinMode(lm35, INPUT); //declara pin del LM de entrada
Serial.begin (9600); //inicia comunicacion serial
}

void loop(){
//Calcula la temperatura usando como referencia 5v
temperatura = (5.0 * analogRead(lm35)*100.0)/1023.0;
Serial.println (temperatura); //escribe la temperatura en el serial
delay (3000); //espera 3 segundos para la siguiente medicion
}

Das könnte Ihnen auch gefallen