Introduction: Sensor De Humedad Con ESP8266 Y Adafruit IO

Hola a todos!

Para cuidar nuestras plantas que tenemos en nuestros hogares o huertos se necesitan diversos cuidados dependiendo el tipo de especie, algo indispensable indipendientemente lo antes mencionado es el riego. Todas las plantas necesitan un riego, algunas con más frecuencia que otras.

En base a esto, realicé este sensor de humedad, que nos indica cuando tierra de la planta esta seca para regarla, esto lo hace mediante la nube de Adafruit que nos proporciona un booleano (humeda o seca).

Los Materiales son:

1. Caja para contener el sistema (en mi caso como la voy a usar posteriormente en exterior utilicé una con protección IP55)

https://articulo.mercadolibre.com.mx/MLM-733811889...

2. ESP8266 en este caso usé el wemos D1 pero se puede utilizar cualquier versión.

https://articulo.mercadolibre.com.mx/MLM-640646445...

3. Sensor de humedad que tenga salida digital

https://articulo.mercadolibre.com.mx/MLM-602081436...

Step 1: Conexión

Antes de realizar la conexión se debe tener en cuenta la entrada ¿Analógica o digital? Gracias a este módulo de humedad nos podemos simplificar el código usando la salida digital del mismo, este fue mi caso y la conexión la realicé de la manera del circuito de arriba. Si no se quiere utilizar la digital, se debe ver qué pin del ESP8266 es una entrada analógica y modificar el código.

El wemos D1 tiene una entrada micro USB por lo que usé un cargador de pared un cable de celular para alimentar el microcontrolador y el sensor.

Step 2: Código

Una vez teniendo la conexión se sube el siguiente código al ESP8266:


#define IO_USERNAME "Acortes" #define IO_KEY "aio_HfDy47AuYECU1V0clyDZX13iCmrg"

#define WIFI_SSID "INFINITUM0490_2.4" #define WIFI_PASS "T2PHw6QSsd"

#include "AdafruitIO_WiFi.h"

AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
#define Temp 14

AdafruitIO_Feed *humedad = io.feed("Humedad");

void setup() {

Serial.begin(115200);

Serial.setTimeout(2000);

pinMode(Temp, INPUT);

pinMode(15,OUTPUT); while(! Serial);

Serial.print("Conectando a Adafruit IO");

io.connect();

while(io.status() < AIO_CONNECTED) { Serial.print("."); delay(500); } Serial.println(); Serial.println(io.statusText());

bool Est_Temp=digitalRead(Temp);

digitalWrite(15,Est_Temp);

io.run();

humedad->save(Est_Temp);

delay(500);

while(!Serial) {}

//Deep sleep para ahorro de energía

Serial.println("I'm awake, but I'm going into deep sleep mode for 60 seconds");

ESP.deepSleep(60e6);

}

void loop() {

}

Este código tiene la función del deep sleep ya que no se necesita medir en tiempo real la humedad de la planta. Se tiene que tener instalada la librería de Adafruit IO.

Step 3: Adafruit IO

Una vez teniendo el código necesitamos establecer el enlace con la nube de Adafruit y esto lo hacemos con los siguientes pasos:

1. Ingresa a https://io.adafruit.com/

2. Crea una cuenta o logeate

3. Crea un nuevo dashboard si no tienes uno específico para el proyecto.

4. En el dashboard, crea un nuevo block, puede ser un indicador, una gráfica o lo que requieras para ver la información

5. Se necesita un feed para almacenar el dato y este debe coincidir con el código del arduino donde colocamos

AdafruitIO_Feed *humedad = io.feed("Humedad");

Si le dejamos este feed por default entonces se crea uno con el nombre de Humedad.

6. Se configura el bloque

7. Conectas el ESP8266 a la alimentación y listo.