Pingüino es una plataforma similar a Arduino, por lo tanto el código creado en una plataforma puede adaptarse muy fácilmente para pasarlo a la otra, en pocas palabras un proyecto diseñado para Arduino puede implementarse en Pingüino o viceversa.
En primer lugar se declaran las variables o registros que almacenaran los valores entregados por los sensores y por el usuario, se usan nombres cortos porque mas adelante se "invocara" a estas variables, por ejemplo la variable H almacena el valor de humedad entregado por el sensor; HA, HB, HC, y HD almacenan el valor de humedad determinado para que la bomba se apague o se encienda, HR toma el valor de humedad de uno de los 4 cultivos, su valor ahora es el dato de referencia y se usa para compararlo con el que esta almacenado en H. En la siguiente imagen se puede ver la declaración de variables:
En la función setup() se realiza la configuración inicial para el pic, cuando se enciende, este es el primer código que se ejecuta, entre otras cosas se hace la asignación de pines (de entrada o salida) se inicializa el contenido de los registros, etc. en la siguiente imagen se puede ver un fragmento de esta función:
La función loop() es un bucle infinito que repetirá las instrucciones que se encuentren dentro una y otra y otra vez, en este caso solo se repite una vez ya que luego se ejecuta la función riego() esta última se repite infinitamente o hasta que el usuario la detenga; como se puede apreciar el la imagen cuando loop() se ejecuta se llama al menú y se despliegan las opciones para que el usuario pueda configurar el sistema, luego le muestra las opciones que eligió, asigna los respectivos valores de humedad y realiza otras acciones para que el sistema quede correctamente configurado.
En la imagen anterior aparece la función menu() la cual en primer lugar le pide al usuario escoger el tipo de cultivo que se desea regar, luego lee los valores recibidos y los guarda en un registro.
En el caso de seleccionarse el cultivo D, al usuario se le pide que modifique el nivel de humedad requerido para que se encienda la bomba de agua mediante las teclas A y B del teclado matricial.
En la función riego() se leen los datos enviados por el sensor de humedad y por el sensor de luz, los compara con los datos almacenados y con esta información se enciende o se apaga la bomba, adicionalmente, en la pantalla lcd se muestra los datos entregados por los sensores, es decir el nivel de humedad y si es de día o de noche, también se muestra el estado de la bomba, si se enciende o se apaga.
El código en si es algo complejo y tiene muchas otras cosas que debería mencionarse pero, en este blog se trata de describir su funcionamiento de la forma mas sencilla posible.
En youtube se ha subido un vídeo donde puede ver el funcionamiento del circuito, aquí dejo el enlace:
Comentarios
Publicar un comentario