Está en la página 1de 8

Descripción del problema:

El usuario por las prisas se olvida de regar las plantas de su casa o anda fuera y no puede regarlas.

Solución planeada:

Por medio del particle las personas pueden regar sus plantas desde su cel entrando a la app y
presionando un botón o con el asistente de Google o en todo caso que también se le allá olvidado
eso las plantas automáticamente se riegan todos los días a las 10:30 de la mañana cuenta con un
sensor de humedad que detecta si la tierra esta muy seca riega las plantas.

Material:

- particle photon

-protoboard

-sensor dht11

-2 pilas AA

-bomba de agua

-tubos para el agua

-cables

Botón de la aplicación
Aplicación en la PC

Aplicación en el Celular
Evento

Se creo un evento para llamar a la función de regado del particle cada vez que se presiona el botón
de encendido

Se crearon 4 acciones a realizar en este evento,


llamar a la función de regado,

mandar un correo ,

mandar un mensaje de texto con un mensaje a un compañero,

Mandar otro mensaje a el otro compalero con el texto diferente


IFTTT

Se creo unas aplicaciones que cuando decimos “riega”, “protocolo 11” o “riega las plantas” se
llama a la función de regado del particle y la asistente de Google responde plantas regadas
Pruebas de las notificaciones

Codigo

// This #include statement was automatically added by the Particle IDE.


#include <Adafruit_DHT_Particle.h>
#include <Ubidots.h>

#define TOKEN "BBFF-wqofiOEKObz3dmjuyWvkyEtt5F60NA"


#define DHTPIN D0
#define DHTTYPE DHT11
DHT dht(DHTPIN,DHTTYPE);
Ubidots ubidots(TOKEN,UBI_TCP);

float gradosc =0;


float gradosf =0;
float humedad =0;
unsigned long lastTime=0;
void setup() {
Serial.begin(9600);// inicializamos el serial para poder ver la humedad en el monitor, ya sea por
CMD o por TERA TEM
Particle.function("led",led);// esta funcion nos va a servir para poder controlar desde OK
GOOGlE el sistema de riego
pinMode(D1,OUTPUT);// esta conectado el relevador
Particle.syncTime();//ESTA FUNCION SINCRONIZA EL TIEMPO CON LA NUBE DE PARTICLE
Time.zone(-5);// YA UNA VEZ QUE OBTUVIMOS
ubidots.send();
}

void loop()
{
gradosc = dht.getTempCelcius();
gradosf = dht.getTempFarenheit();
humedad = dht.getHumidity();
if(isnan(gradosc)||isnan(gradosf)||isnan(humedad))
{
Serial.println("Error de lectura");
return;

// acontinuacion manipulamos la lectura para dar un estatus de la tierra


Serial.print("La Humedad es: ");
Serial.println(humedad);

if(humedad<= 50){
Serial.print(">>SUELO EXTREMADAMENTE SECO<<");
Serial.println(">>Revisa que el sensor este en tierra<<");

}
else if (humedad < 50 && humedad >= 60) {
Serial.println("Riega la planta");
digitalWrite(D1,HIGH);
delay(3000);
digitalWrite(D1,LOW);
}
else if (humedad < 70 && humedad >= 80) {
Serial.println("la tierra esta humedad");
}
else if (humedad < 80 ){
Serial.println("la tierra tiene exceso de agua");
Serial.println("No regar por ahora");

delay(3000);// tiempo entre lectura y lectura

if(Time.hour()==10&&Time.minute()==30){
if(flag==false){
//hora en 24 hrs(0-24) minutos (0-59)
digitalWrite(D1,HIGH);
delay(10000);
digitalWrite(D1,LOW);
flag = true ;
}

}
}

int led(String comando){


if(comando == "on"){
digitalWrite(D1,HIGH);
delay(3000);
digitalWrite(D1,LOW);
return 1;
}
else if(comando == "off"){
digitalWrite(D1,LOW);
return 0;
}
else
return -1;
}

También podría gustarte