Ir al contenido principal

Desarrollo Del Proyecto

Ya que el sistema que se requiere es algo complejo, en primer lugar se construye un diagrama de bloques para dividir el proyecto en partes mas pequeñas y así trabajar de forma más cómoda; Se dividió el sistema en 4 bloques: entradas, control, visualización de procesos y motor; El bloque de entradas recibe los datos enviados por el sensor de luz, el sensor de humedad y el teclado matricial, el bloque de control estaría conformado por el microcontrolador, el cual almacena los datos recibidos, evalúa los casos y controla los bloques de visualización de procesos y motor. El bloque de visualización de procesos despliega un menú para realizar ciertas configuraciones del sistema (mediante el teclado matricial) además muestra los valores que entregan los sensores. Por último, el módulo bloque del motor enciende o apaga la bomba de agua para que el cultivo sea regado cuando el nivel de humedad este por debajo del valor establecido.


Inicialmente se diseñó el código para probar por separado cada uno de los módulos (lcd, teclado y sensores) después de realizar varias pruebas y al comprobar su correcto funcionamiento se procede a unir todo el código, al usar este método se puede detectar mas fácilmente los posibles errores tanto de lógica como de funcionamiento.

En primer lugar se probó el módulo LCD, el cual puede trabajar con 4 u 8 bits de entrada, en este caso se conectaron los 8 bits, luego se colocó el sensor de luz, que tiene una salida digital, es decir, entrega un 0  o 1 lógico dependiendo de si hay luz o no, por tanto, se lee su estado con el comando digitalRead(), cuando se probo el módulo de forma separada funcionaba perfectamente, pero al trabajar con dos módulos, por alguna razón no se detectaba las señales digitales, así que fue necesario leer los datos con analogRead() y comprobar si ese valor estaba por arriba o por abajo del valor promedio entregado por el sensor, con eso se garantiza tener un cero ó un uno lógico. Por otro lado el sensor de humedad entregaba datos de tipo analógico que variaban entre 0 y 1023, así que obligatoriamente deben leerse los datos de forma analógica para poder ser comparados; Para el caso de los modos A,B y C el valor de humedad requerido para que el sistema se active es de 200, 400 y 800 respectivamente, hay que tener en claro que una lectura de humedad de 1023 indica que el suelo esta extremamente seco y una humedad de cero indica que el suelo esta completamente mojado, tomando el caso del cultivo B, cuando hay una humedad mayor a 400, el suelo estará seco y la bomba de agua deberá activarse, poco a poco el suelo se ira humedeciendo y cuando el nivel detectado este por debajo de ese valor el suelo se habrá humedecido y dejara de fluir agua, pero para que se encienda la bomba debe tenerse en cuenta otro factor, la luz, en este caso cuando se detecta luz (día) el sensor envía un cero lógico, por tanto cuando no hay luz (noche) se tiene un uno lógico (estos son los valores entregados por el sensor de luz adquirido, es posible que con otro modelo los valores entregados cambien); La bomba se activara si y solo si el nivel de humedad esta por encima del valor fijado y el sensor de luz detecta si es de día o de noche, según lo haya escogido el usuario. Suponiendo que se haya elegido el modo B y trabajo nocturno, la bomba únicamente trabajara en la noche cuando el nivel detectado por el sensor de humedad sea mayor que 400, en cualquier otro caso la bomba se apagara. En la siguiente figura puede verse las conexiones realizadas, debe aclararse que en los dibujos las conexiones se hacen con fines ilustrativos y no aparecen todas para no saturar la imagen.


Al encender el sistema, en el lcd se despliega un menú, el cual le dice al usuario que existen 4 opciones para elegir, mediante las letras A,B,C,D del teclado, el usuario puede ingresar los datos, para ello, en el código se usa una función llamada menú, por medio de condicionales se evalúa la opción elegida, una vez que se ha escogido el tipo de cultivo, el sistema le preguntara si quiere que funcione únicamente en el día o en la noche, para ello el usuario debe presionar la tecla A o la tecla B respectivamente, después de esto el sistema pasara a evaluar el valor de las entradas, se ejecuta la función riego la cual compara los valores recibidos con los valores guardados, si las condiciones se cumplen, el sistema encenderá el motor, en caso contrario se apagara; Si se escoge el cultivo D, mediante las teclas A,B se podrá subir ó bajar el nivel de la humedad pero existen límites, por abajo el mínimo valor que se puede tomar es de 100 y por arriba el máximo valor será de 1000, el usuario no podrá exceder dichos límites. Una vez que se ejecuta la función riego, esta entra en un bucle infinito, comparando una y otra vez los valores guardados con los datos entregados por los sensores, de esta forma se encenderá o se apagara el motor según el caso, para realizar esta actividad el motor se activara por medio de un relé.

Adicionalmente se colocaron dos fuentes para alimentar el sistema, al principio todo estaba conectado a una sola pero cuando se activaba el motor, este consumía mucha corriente, la pantalla LCD parpadeaba y los demás componentes posiblemente hayan tenido inconvenientes para trabajar, por ello se colocó una fuente de 5.0 V y 500 mA para alimentar el microcontrolador y los módulos, al motor se le coloco una fuente mas poderosa, dado que el microcontrolador activa un relé, se puede controlar motores de baja, media y alta potencia para cubrir las necesidades del usuario.



Comentarios

Entradas populares de este blog

Mejoras para una siguiente versión

Después de presentar el proyecto, algunas de las personas quienes lo miraron en funcionamiento, propusieron algunas mejoras entre ellas están:  * Que el sistema  active la bomba por unos minutos y lo apague por unos instantes para ahorrar energía. * Que el sistema le permita al usuario ingresar cualquier valor de humedad (245, 368, etc), pues por el momento solo acepta valores como 600,700,800. * Adaptar los valores entregados por el sensor de humedad, para que una humedad de 0 indique que el suelo este seco y que una humedad de 1023 indique que la tierra esta completamente mojada, en la versión actual dichos valores están invertidos, (1023 es seco y 0 es completamente mojado). * Equipar el sistema para que trabaje con energía solar. * Meter el sistema en una pequeña caja para mejorar su estética y para usar mejor el espacio. Estas son las mejoras propuestas, si alguien tiene una sugerencia o duda comenten, toda opinión cuenta!!!

Propuesta

En la agricultura actualmente se riegan los cultivos con sistemas analógicos, no  se le da un uso a la tecnología, no se tienen controles, solo se abre el grifo y se  deja que el agua fl uya, ni siquiera se tiene en cuenta el grado de humedad del suelo.  El cultivo se riega hasta que el agricultor piensa que es necesario. Además al no  tener un sistema de monitoreo se estaría desperdiciando demasiada agua, dado que  algunos cultivos requieren de ciertos niveles de humedad en su suelo, si dicho nivel  es mayor o menor al requerido puede traer problemas notorios en la cosecha. Al implementarse el sistema de riego inteligente, el agricultor realizará unas pequeñas  configuraciones y el sistema se encargará de regar de forma autónoma los  cultivos cada vez que estos lo requieran, de esta forma el usuario podrá dejar abierta la llave del grifo cuanto tiempo quiera pero el sistema hará un uso eficiente de este  preciado líquido....