Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Sistema de Riego Desde App
Manual Sistema de Riego Desde App
Proyecto final
Microcontroladores
1
Objetivo
El funcionamiento de este proyecto es lograr un sistema de riego manejado por una aplicación, la cual
permitirá ver el porcentaje de humedad de la planta, el riego de está será mediante el uso de un botón, al
presionar este botón se encenderá una bomba que suministrará el agua por una manguera, regando así
nuestra planta. Se utilizará el protocolo de comunicación WIFI, mediante el uso de una NodeMCU.
Materiales
NodeMcu
Sensor de humedad de suelo Arduino Pic
Relevador
Bomba sumergible
Batería de 5V a 9V (depende de la bomba)
Manguera
Cables hembra macho
Powerbank (Alimentación del NodeMCU)
NodeMCU
Sensor de humedad
Relevador 5V Bomba
sumergible de
3V a 6V
Batería de 6V
2
Código de Arduino
Antes de comenzar con el código, descargarnos la librería de Firebase, una vez descargada abrimos el menú
Programa - Incluir Librería - Añadir librerías .ZIP.
Después de haberla incluido, se instalará la tarjeta ESP8266 en gestor de tarjetas, ahí se descargará la
misma.
3
Programa
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
void setup() {
Serial.begin(9600);
// Conectar al wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
void loop() {
sensorYI = analogRead(A0); //Guardamos dentro de la variable sensorYI el valor que entra en la entrada
analógica de NodeMCU
4
Serial.println("Porcentaje de agua que necesita la planta:"); // imprimimos esta frase en el serial
Serial.println(sensorYI); // Imprimimos en el puerto serie el valor de la variable sensorYI
//Coger datos
String interruptor = Firebase.getString("interruptor"); // Para encender o apagar la bomba.
}
delay(100);
// Acciones
//Al presionar el botón regar se encenderá la bomba.
if ((interruptor.toInt() == 1)) {
digitalWrite(13, HIGH);
}
//Al presionar nuevamente el botón regar se apagará la bomba.
if ((interruptor.toInt() == 0)) {
digitalWrite(13, LOW);}
}
5
App Inventor
Diseñador:
En el recuadro se mostrará el porcentaje de agua que necesita la planta, en este caso fue debido a que mi
sensor entre más grande es el número que muestra, mas seca se encuentra la planta, asi que maneje la
etiqueta de esta manera para que fuera más entendible. Al oprimir el botón de regar la bomba de agua se
activará y se regará la planta, al oprimirlo nuevamente se apagará la bomba.
Se agregará firebase para poder hacer la conexión entre el código de Arduino y la aplicación.
Bloques:
Se inicializa una variable global como interruptor.
Conforme el valor del sensorYI va cambiando, la firebase le envía el valor a la aplicación y este valor toma la
etiqueta llamada “CTsensorYI” que es donde se estarán mostrando los cambios dependiendo del sensor de
humedad.
6
Cuando se presiona el botón “Regar” se llama al interruptor global y ya que este toma un valor de “1” el
relevador se enciende y la bomba también, al presionarlo de nuevo toma el valor de “0” y estos se apagan.
Firebase
1) Se crea una base de datos en la plataforma
firebase, se inicia sesión, una vez iniciada la
sesión se oprime “Add Project”.
7
4) Cambiamos las "reglas" de la Base de
Datos, el false se cambia por un true y se
presiona el botón publish para guardar los
cabios.
5) Finalmente, nuestra base de datos en tiempo real queda de esta manera, las variables que se muestran
son las que nos arrojara el sensor de humedad y si la bomba prende o no, estas varían continuamente.
Resultado final
Este sistema funciona para poder observar el nivel de agua que necesitan tus plantas o tu jardín, dependiendo del uso que
le quieras dar. Si tú lo consideras necesario la podrás regar simplemente oprimiendo el botón de riego. Finalmente
comprobaras que tu planta realmente tiene el agua suficiente que necesita.