Cómo construir un monitor fitosanitario usando ESP8266 y MIT App Inventor

La mayoría de las plantas de interior requieren control de temperatura, humedad y humedad para un cuidado óptimo. Las temperaturas que exceden el rango ideal pueden causar estrés, marchitez, retraso en el crecimiento e incluso la muerte, mientras que las temperaturas frías pueden retardar el desarrollo de las plantas, provocando un crecimiento deficiente y susceptibilidad a los daños por heladas. La humedad excesiva favorece las enfermedades fúngicas e impide una transpiración adecuada, mientras que el aire más seco suele provocar que las hojas se sequen y caigan, lo que afecta la fotosíntesis y la salud general de las plantas.

El riego excesivo también puede provocar pudrición de las raíces y otras enfermedades. Es un delicado equilibrio de cuidado óptimo dependiendo de la planta. Aunque diferentes plantas tienen diferentes necesidades, las preferencias generales de temperatura están entre 18° y 23° C, con niveles de humedad entre el 40% y el 60%. Los niveles de humedad pueden variar más según la especie de planta.

En este proyecto construiremos un monitor fitosanitario en línea utilizando ESP8266, un sensor de humedad y el sensor de temperatura y humedad DHT11. Los datos relacionados de temperatura, humedad y humedad se publicarán en un sitio web local alojado en un servidor web basado en ESP8266. También diseñaremos una aplicación móvil utilizando MIT App Inventor donde podremos acceder a estos datos con solo hacer clic en un botón.

Componentes necesarios

  1. ESP8266x1
  2. DHT11x1
  3. Sensor de humedad x1
  4. Cables de conexión/cables de puente

Conexiones de circuito
Estos son los pasos para construir este proyecto para sus plantas:

  • Interfaz DHT11 y sensor de humedad con ESP8266.
  • Conecte los pines VCC y GND del DHT11 con los pines 3Vout y tierra del ESP8266, respectivamente.
  • Conecte el pin de salida de DHT11 al pin GPIO5 de ESP8266.
  • Conecte la resistencia de 4.7K entre GPIO5 y 3Vout de ESP8266.
  • Conecte los pines VCC y GND del sensor de humedad con 3Vout y tierra del ESP8266 respectivamente.
  • Conecte la salida analógica del sensor de humedad a A0 del ESP8266.

Bosquejo de Arduino

Como funciona
El ESP8266 funciona como un servidor web, leyendo la temperatura y la humedad del sensor DHT11 y la humedad del sensor de humedad. Luego, el ESP8266 publica los datos del sensor en una página web: /root/read. La URL raíz es la URL de la red WIFI o enrutador. Se puede acceder a los datos del sensor sobre parámetros fitosanitarios navegando por la página /root/read, donde la raíz es la dirección IP de la red WIFI.

Cualquier navegador que acceda a la página web actúa como cliente web. Los datos del sensor siempre se obtienen en tiempo real cada vez que hay una solicitud del cliente web.

La aplicación móvil también actúa como un cliente web, creado con MIT App Inventor. También puede acceder a valores en tiempo real de las condiciones de la planta a través de un teléfono inteligente realizando solicitudes HTTP al servidor web basado en ESP8266. Siempre que se realiza una solicitud HTTP a través de un navegador web o una aplicación, el ESP8266 recopila las condiciones de la planta en tiempo real y las publica en la URL web. Se accede a través del navegador o la aplicación móvil.

La aplicación del MIT
MIT App Inventor se utiliza para crear una aplicación móvil que puede acceder a las condiciones actuales de la planta. La aplicación tiene el siguiente diseño de interfaz.

La aplicación tiene una sola pantalla, rebautizada como “Plant Health Monitor”. La interfaz de usuario de la aplicación tiene tres componentes: una etiqueta, un botón y un cliente web. La etiqueta tiene las siguientes propiedades.

El botón tiene estas propiedades:

La aplicación se programa en base a este diagrama de bloques:

Código

El boceto comienza importando las bibliotecas DHT.h y ESP8266WiFi.h. La biblioteca DHT.h funciona con el sensor DHT11 y la biblioteca ESP8266WiFi.h realiza funcionalidades WIFI en el ESP8266. A esto le siguen las asignaciones de pines del sensor DHT y la creación de instancias de un objeto DHT. Se declaran variables para almacenar las credenciales de WiFi y se crea una instancia de un objeto de servidor WiFi. Se declaran las variables para almacenar el valor analógico del sensor de humedad, el porcentaje de humedad, la humedad y la temperatura.

En la función de configuración, la velocidad en baudios para la comunicación en serie se establece en 9600 BPS y se proporciona un tiempo de espera de dos segundos para el sensor DHT. ESP8266 se conecta a WiFi y se inicia el servidor web. El sensor DHT se inicializa y se imprime un mensaje en la consola serie indicando que el sensor está funcionando.

En la función de bucle, el ESP8266 lee los valores de los sensores de humedad y DHT11, almacenándolos como variables globales. El servidor ESP8266 "busca" cualquier cliente web potencial (un navegador de computadora o una aplicación de teléfono inteligente). Si se recibe una solicitud HTTP desde un navegador o una aplicación de protección de plantas, la dirección IP de ese cliente web se imprimirá en la consola serie. Cuando el cliente web está disponible, se le envía una página que contiene valores de humedad, temperatura y humedad en tiempo real.

Cuando la aplicación de monitoreo de la salud de la planta accede a los datos del sensor desde el servidor web ESP8266, muestra el contenido de la página web en la etiqueta de la interfaz de usuario de la aplicación.

Solucion de problemas
El servidor web basado en ESP8266 se conecta a la dirección IP de un enrutador WiFi. Esta dirección se imprime en la consola serie cuando el ESP8266 se conecta a WiFi. Sin embargo, el estado de su dirección IP puede marcar la diferencia en su aplicación.

  • Si tu enrutador tiene una IP estática, esa dirección permanecerá constante, lo cual es ideal.
  • Si su enrutador tiene una dirección IP dinámica (DHCP), cambia con frecuencia cada vez que se reinicia el enrutador. Esto significa que el servidor web basado en ESP8266 alojará la página web en una dirección IP completamente nueva.

Si esto ocurre, es posible que deba cambiar la URL del componente web en la aplicación móvil para acceder a los datos del sensor.

Resultados
Así es como se ve el proyecto:

Cuando el ESP8266 está encendido, se conecta a WiFi, inicializando el sensor DHT. Cuando un cliente web, como un navegador o la aplicación Plant Health Monitor, accede a la URL, '/root/read' envía una solicitud HTTP. Los datos del sensor también se imprimen en la consola serie.

Los mensajes de la consola serie se muestran a continuación.

Se accede a los datos fitosanitarios a través de la URL '/root/read' en un navegador web. Su raíz es la dirección IP de la red WiFi, como se muestra a continuación.

A continuación se muestran los datos de salud vegetal a los que se accede en la aplicación Plant Health Monitor.

Notas adicionales

Es posible que su conexión WiFi sea lenta o que el servidor basado en ESP8266 tarde en responder. Tenga paciencia y preste atención a los mensajes impresos en la consola serie. Cuando un navegador o una aplicación solicita datos del servidor basado en ESP, imprime la dirección IP del cliente remoto conectado y los datos del sensor en la consola.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.