Retos con Smart Agriculture Kit
- Reto 1 Humedad del suelo y nivel del agua
- Reto2 Riego automático
- Reto 3 Alarma depósito vacío
- Reto 4 Intruso
- Reto 5 Mejorando intrusos
- Reto 6 : Envío por Internet la humedad del suelo
- Reto 7 Regar a distancia
Reto 1 Humedad del suelo y nivel del agua
Enunciado
Mostrar en la pantalla OLED la temperatura y la humedad del aire, el nivel de humedad del suelo y el nivel del depósito de agua
Solución
Para la humedad y temperatura del aire vamos a Octopus y cogemos las funciones correspondientes.
Para la humedad del suelo y el nivel del agua también vimos que en esa extensión, hay funciones que te da los valores en tanto por cien %.
https://makecode.microbit.org/S64895-39903-08613-08722
Reto2 Riego automático
Enunciado
RIEGO AUTOMÁTICO realizar un programa que detecte la humedad del suelo, y cuando llegue a cierto margen de "sequía", por ejemplo el 30% de humedad que active el servo para regar. El servo vuelve a su posición cuando el detecto de humedad vuelve a recuperar la humedad desesada.
Mecanismo de riego
Solución 1 cutre con una pajita
Venga, ya lo sé, es chapucero, pero funciona 👿👿👿:
Solución 2 Con palitos, hacer una acequia casera
Esta solución es la que idearon en el CRIET CALAMOCHA:
Solución 3 Más profesional
Si se quiere hacer más "profesional" el servo que active un interruptor de la motobomba, una sencilla cuesta 1€ y con unos tubos de 0.60€ apañao:
Fuente Adaptado de ElecFreaks https://wiki.elecfreaks.com/en/microbit/wisdom-life/microbit-smart-home-kit/smart_home_case_05/?highlight=water
PROGRAMA
Vamos a utilizar el programa anterior y crear una función de la visualización de datos de la humedad y del agua con todo ese código para que "no moleste"
Vamos a crear una condición, si la humedad del suelo es menor del 30% pues que mueva arriba y abajo el servo :
https://makecode.microbit.org/S58732-03354-26551-26627
Reto 3 Alarma depósito vacío
Enunciado
En este caso vamos a añadir al programa anterior que suene una alarma si el depósito se queda vacío. La alarma puede consistir en parpadeo rojo del led neopixel y alternancia de tono agudo y grave
Solución
Llevamos el riego automático a una función
Añadimos una función de lógica si el depósito esta bajo al 10% que haga la alarma, en caso contrario que el led este verde
Recuerda que hay que usar la extensión NEOPIXEL inicializar el strip neopixel al pin 14 y solo un led
https://makecode.microbit.org/S17469-80061-38311-73745
Solución mejor
- ¿Tiene que regar si no hay agua en el depósito?
- ¿Puedes crear una función Alarma para "limpiar el código" ?
Como puedes ver ahora la función RIEGOAUTOMATICO esta dentro de la condición de que el depósito esta lleno
Y hemos creado una función ALARMA para que le código quede más "limpio"
Reto 4 Intruso
Estamos hartos que los jabalíes vengan a estropearnos la cosecha, vamos a asustarlos si se acercan
Enunciado
Si se acerca un objeto a menos de 20 cm a nuestra cosecha, que suene la alarma
Solución
Añadimos una variable DISTANCIA y lo ponemos en la función de vissualizar
y el resto de programa es MUY SENCILLO PUES APROVECHAMOS LA FUNCIÓN ALARMA
AQUÍ PODEMOS APROVECHAR PARA ENFATIZAR EL VALOR DE REUTILIZAR CÓDIGO
https://makecode.microbit.org/S51550-75797-73915-29343
Reto 5 Mejorando intrusos
Enunciado
El sensor de ultrasonidos es un pesado, da falsas alarmas, añade el sensor PIR para quitarlas.
Solución 1
https://makecode.microbit.org/S25361-76721-60771-88083
Solución 2
Aquí se utiliza la función AND
pero en la función VER ya definimos PIR con su valor y lo visualizamos
https://makecode.microbit.org/S46838-99630-55860-40869
Reto 6 : Envío por Internet la humedad del suelo
Enunciado
Queremos visualizar remotamente la humedad del suelo
Solución
En Smart.io https://www.smartiot.space/ creamos nuestro device y en Field 1 le vamos a decir SUELO tal y como vimos en https://libros.catedu.es/books/smart-agriculture-kit-microbit/page/que-es-smartiot
Ponemos un componente, por ejemplo el medidor de aguja y el visualizador de gráfica
En el programa, primero al inicio que se conecte a una Wifi
Y luego una función que simplemente conecta con el tópico 1 y que si conecta que envíe el Data 1 la variable SUELO que recoge la humedad del suelo
El resultado es muy bueno:
RETO: PON MÁS CAMPOS A TU DEVICE !!!
distancia, humedad, temperatura, ...
https://makecode.microbit.org/S30944-15750-08422-29951
Reto 7 Regar a distancia
Enunciado
Como controlamos a distancia la humedad, podemos decir si regar o no. Hacer un pulsador que por Internet se active el riego
Solución
Es muy fácil, en Smart IoT añadimos un interruptor
Y en el programa añadimos esta instrucción, super fácil
Pero para que no se contradiga con el riego automático, hay que cambiar la función de riego automático a este bloque: