Tabla de contenido:

IoT APIS V2 - Sistema autónomo de riego de plantas automatizado habilitado para IoT: 17 pasos (con imágenes)
IoT APIS V2 - Sistema autónomo de riego de plantas automatizado habilitado para IoT: 17 pasos (con imágenes)

Video: IoT APIS V2 - Sistema autónomo de riego de plantas automatizado habilitado para IoT: 17 pasos (con imágenes)

Video: IoT APIS V2 - Sistema autónomo de riego de plantas automatizado habilitado para IoT: 17 pasos (con imágenes)
Video: Sistema de riego automático con ARDUINO. 2024, Noviembre
Anonim
IoT APIS V2: sistema autónomo de riego de plantas automatizado habilitado para IoT
IoT APIS V2: sistema autónomo de riego de plantas automatizado habilitado para IoT
IoT APIS V2: sistema autónomo de riego de plantas automatizado habilitado para IoT
IoT APIS V2: sistema autónomo de riego de plantas automatizado habilitado para IoT

Este proyecto es una evolución de mi instructable anterior: APIS - Sistema automatizado de riego de plantas

He estado usando APIS durante casi un año y quería mejorar el diseño anterior:

  1. Capacidad para monitorear la planta de forma remota. Así es como este proyecto se habilitó para IoT.
  2. Sonda de humedad del suelo fácil de reemplazar. He pasado por tres diseños diferentes de la sonda de humedad, y no importa qué material usé, tarde o temprano se erosionó. Por lo tanto, se suponía que el nuevo diseño debía durar el mayor tiempo posible y ser reemplazado rápida y fácilmente.
  3. Nivel de agua en el balde. Quería poder saber cuánta agua queda todavía disponible en el balde y dejar de regar cuando el balde esté vacío.
  4. Mejor apariencia. Un cuadro de proyecto gris fue un buen comienzo, pero quería crear algo que se viera un poco mejor. Serás el juez si pude lograr ese objetivo …
  5. Autonomía. Quería que el nuevo sistema fuera autónomo en términos de potencia y / o disponibilidad de Internet.

El proyecto resultante no es menos configurable que su predecesor y tiene características útiles adicionales.

También quería utilizar mi impresora 3D recién adquirida, por lo que algunas de las piezas tendrán que imprimirse.

Paso 1: hardware

Hardware
Hardware
Hardware
Hardware

Necesitará los siguientes componentes para construir IoT APIS v2:

  1. NodeMcu Lua ESP8266 ESP-12E WIFI Development Board - en banggood.com
  2. Módulo de medición de distancia con sensor ultrasónico de 3 pines SODIAL (R), transductor doble, tres pines a bordo - en amazon.com
  3. Bomba de agua sumergible pequeña DC 3V-6V 5V Bomba de tanque de peces de acuario - en ebay.com
  4. LED de tres colores - en amazon.com
  5. Tablero Vero - en amazon.com
  6. Transistor PN2222 - en amazon.com
  7. Tornillos, pernos y tuercas de plástico
  8. Equipos y suministros de soldadura
  9. Cables, resistencias, encabezados y otros componentes electrónicos diversos
  10. Tarro vacío Tropicana OJ 2.78 QT
  11. 2 clavos galvanizados

Paso 2: Diseño general

Diseño general
Diseño general
Diseño general
Diseño general

El diseño general consta de los siguientes componentes: 1. Sonda de humedad del suelo y recinto de riego de plantas (combinado - impreso en 3d) 2. Tubería y cableado 3. Sensor de fugas de agua de la bandeja (impreso en 3d) 4. Módulo de control montado en la parte superior de la jarra OJ (colocado y encerrado en la caja impresa en 3D) 5. Bomba de agua sumergida 6. Bosquejo de NodeMCU 7. Configuración de IoT 8. Fuente de alimentación: USB a través de la toma de corriente -O- panel solar (modo autónomo) Analicemos cada componente individualmente

Paso 3: bomba de agua sumergida

Bomba de agua sumergida
Bomba de agua sumergida
Bomba de agua sumergida
Bomba de agua sumergida

La bomba de agua sumergida se encuentra debajo del asa de la jarra OJ (para evitar interferencias con la medición del nivel del agua). La bomba está colocada de tal manera que esté "flotando" unos 2-3 mm por encima del fondo de la jarra para permitir que el agua fluya libremente a la entrada.

Debido a que la bomba debe estar completamente sumergida para su funcionamiento normal, el nivel mínimo de agua en la jarra debe ser de unos 3 cm (aproximadamente 1 pulgada).

Paso 4: Módulo de control montado en la parte superior del tarro OJ

Módulo de control montado en la parte superior del tarro OJ
Módulo de control montado en la parte superior del tarro OJ
Módulo de control montado en la parte superior del tarro OJ
Módulo de control montado en la parte superior del tarro OJ
Módulo de control montado en la parte superior del tarro OJ
Módulo de control montado en la parte superior del tarro OJ

Elegí un frasco grande estándar de Tropicana OJ para ser un recipiente de agua. Están ampliamente disponibles y son estándar.

El módulo de control se coloca en la parte superior del frasco después de quitar el grifo original.

La plataforma en la que se encuentra el módulo de control está impresa en 3D. El archivo STL se proporciona en las secciones de archivos y bocetos de este instructivo.

La bomba, los tubos y el cableado pasan a través del asa de la jarra Tropicana para dejar espacio para la medición del nivel del agua.

El nivel del agua se mide mediante el sensor de distancia ultrasónico integrado con la plataforma del módulo de control. El nivel del agua se determina como una diferencia entre la medición de la distancia de un frasco vacío y el frasco lleno de agua hasta un cierto nivel.

El módulo de control y el sensor de EE. UU. Están cubiertos con un "domo" impreso en 3D. El archivo STL del domo se proporciona en la sección de archivos y bocetos de este instructivo.

Paso 5: Módulo de control - Esquemas

Módulo de control - Esquemas
Módulo de control - Esquemas
Módulo de control - Esquemas
Módulo de control - Esquemas

Los esquemas del módulo de control (incluida la lista de componentes) y los archivos de diseño de la placa de pruebas se proporcionan en la sección de archivos y bocetos de este instructivo.

NOTA: Trabajar con NodeMCU demostró ser una tarea desafiante en términos de pines GPIO disponibles. Casi todos los GPIO cumplen una serie de funciones, lo que hace que no estén disponibles para su uso o que sean imposibles de usar en el modo de suspensión profunda (debido a las funciones especiales que desempeñan durante el proceso de arranque). Al final, logré encontrar un equilibrio entre el uso de GPIO y mis requisitos, pero me tomó algunas iteraciones frustrantes.

Por ejemplo, varios GPIO permanecen "calientes" durante el sueño profundo. Conectando LED a aquellos derrotados con el propósito de reducir el consumo de energía durante el sueño profundo.

Paso 6: Sensor de fugas de agua de la bandeja

Sensor de fugas de agua de la bandeja
Sensor de fugas de agua de la bandeja
Sensor de fugas de agua de la bandeja
Sensor de fugas de agua de la bandeja
Sensor de fugas de agua de la bandeja
Sensor de fugas de agua de la bandeja

Si su maceta tiene un orificio de desbordamiento en la parte inferior, entonces existe el riesgo de que el agua se desborde de la bandeja inferior y se derrame en el piso (estante o lo que sea que esté ubicada su planta).

Noté que la medición de la humedad del suelo se ve muy afectada por la posición de la sonda, la densidad del suelo, la distancia desde la salida de riego, etc. En otras palabras, ir solo por la humedad del suelo podría dañar su hogar si el agua desborda la bandeja inferior y se derrama.

El sensor de desbordamiento es un espaciador entre la olla y la bandeja inferior, con dos cables enrollados alrededor de las barras. Cuando el agua llena la bandeja, los dos cables se conectan, lo que indica al microcontrolador que hay agua en la bandeja inferior.

Finalmente, el agua se evapora y los cables se desconectan.

La bandeja inferior está impresa en 3D. El archivo STL está disponible en la sección de archivos y bocetos de este instructivo.

Paso 7: Sonda de humedad del suelo y recinto de riego

Image
Image
Sonda de humedad del suelo y recinto de riego
Sonda de humedad del suelo y recinto de riego
Sonda de humedad del suelo y recinto de riego
Sonda de humedad del suelo y recinto de riego

Diseñé un recinto hexagonal impreso en 3D para que fuera una sonda combinada de humedad del suelo y un recinto de riego.

Un archivo de impresión 3D (STL) está disponible en la sección de archivos y bocetos de este instructivo.

El recinto consta de dos partes, que deben pegarse entre sí. Un accesorio de púas modificado se pega en el costado del gabinete para sujetar la tubería.

Se proporcionan dos orificios de 4,5 mm para colocar los clavos galvanizados, que sirven como sondas de humedad del suelo. La conectividad con el microcontrolador se logra mediante espaciadores metálicos seleccionados específicamente para adaptarse a los clavos.

El diseño 3D se realiza utilizando www.tinkercad.com, que es una herramienta de diseño 3D excelente y fácil de usar pero poderosa.

NOTA: Es posible que desee preguntar por qué no utilicé simplemente una de las sondas de suelo prefabricadas. La respuesta es: la lámina de esos se disuelve en unas semanas. De hecho, incluso con un tiempo limitado, los clavos están bajo voltaje, todavía se erosionan y deben reemplazarse al menos una vez al año. El diseño anterior permite reemplazar las uñas en segundos.

Paso 8: Tubería y cableado

Tubería y cableado
Tubería y cableado

El agua se entrega al plano a través de una tubería semitransparente de caucho de látex súper suave (con un diámetro interior de 1/4 "y un diámetro exterior de 5/16").

La salida de la bomba requiere un tubo más grande y un adaptador: Racor dentado de polipropileno resistente a productos químicos, recto reductor para diámetros internos de tubo de 1/4 "x 1/8".

Por último, una conexión con púas de polipropileno resistente a los productos químicos, recta para un diámetro interno de tubo de 1/8 , sirve como conector para el recinto de riego.

Paso 9: Bosquejo de NodeMCU

Bosquejo de NodeMCU
Bosquejo de NodeMCU

El boceto de NodeMCU implementa varias características de IoT APIS v2:

  1. Se conecta a la red WiFi existente -O- funciona como un punto de acceso WiFi (según la configuración)
  2. Consulta los servidores NTP para obtener la hora local.
  3. Implementa un servidor web para el monitoreo de la planta y el ajuste de los parámetros de riego y redes.
  4. Mide la humedad del suelo, las fugas de agua de la bandeja inferior, el nivel de agua en el frasco y proporciona una indicación visual a través de un LED de 3 colores
  5. Implementa modos de operación en línea y de ahorro de energía
  6. Guarda información sobre cada una de las ejecuciones de riego localmente en la memoria flash interna

Paso 10: Bosquejo de NodeMCU - WiFi

Bosquejo de NodeMCU - WiFi
Bosquejo de NodeMCU - WiFi

De forma predeterminada, IoT APIS v2 creará un punto de acceso WiFi local llamado "Plant_XXXXXX", donde XXXXXX es el número de serie del chip ESP8266 a bordo de NodeMCU.

Puede acceder al servidor web integrado a través de la URL: https://plant.io El servidor DNS interno conectará su dispositivo a la página de estado de APIS.

Desde la página de estado, puede navegar a la página de parámetros de riego y a la página de parámetros de red, donde puede hacer que IoT APIS v2 se conecte a su red WiFi y comenzar a informar el estado a la nube.

IoT APIS admite modos de operación en línea y de ahorro de energía:

  1. En el modo en línea, IoT APIS mantiene la conexión WiFi activa todo el tiempo, por lo que puede verificar el estado de su planta en cualquier momento
  2. En el modo de ahorro de energía, IoT APIS verifica la humedad del suelo y el nivel del agua periódicamente, poniendo el dispositivo en modo de "sueño profundo" en el medio, lo que reduce drásticamente su consumo de energía. Sin embargo, el dispositivo no está disponible en línea todo el tiempo, y los parámetros solo se pueden cambiar durante el tiempo que el dispositivo se enciende (actualmente cada 30 minutos, alineado con el reloj en tiempo real de hora / media hora). El dispositivo permanecerá en línea durante 1 minuto cada 30 minutos para permitir cambios de configuración y luego ingresará al modo de suspensión profunda. Si el usuario se conecta al dispositivo, el tiempo "activo" se extiende a 3 minutos por cada conexión.

Cuando el dispositivo está conectado a la red WiFi local, su dirección IP se informa al servidor en la nube de IoT y es visible en el dispositivo de monitoreo móvil.

Paso 11: Bosquejo de NodeMCU - NTP

Bosquejo de NodeMCU - NTP
Bosquejo de NodeMCU - NTP

IoT APIS v2 utiliza el protocolo NTP para obtener la hora local de los servidores de tiempo NIST. Se utiliza la hora correcta para determinar si el dispositivo debe entrar en modo "nocturno", es decir, evitar el funcionamiento de la bomba o el LED parpadeante.

El horario nocturno se puede configurar para los días laborables y los fines de semana por la mañana por separado.

Paso 12: Bosquejo de NodeMCU - Servidor web local

Sketch de NodeMCU: servidor web local
Sketch de NodeMCU: servidor web local
Sketch de NodeMCU: servidor web local
Sketch de NodeMCU: servidor web local
Sketch de NodeMCU: servidor web local
Sketch de NodeMCU: servidor web local

IoT APIS v2 implementa un servidor web local para informes de estado y cambios de configuración. La página de inicio proporciona información sobre la humedad y el nivel de agua actuales, la presencia de agua de desbordamiento en la bandeja inferior y las estadísticas de la ejecución de riego más reciente. a través del botón de configuración de red) proporciona la capacidad de conectarse a la red WiFi local y cambiar entre los modos En línea y Ahorro de energía. (Los cambios en la configuración de la red harán que el dispositivo se reinicie) La página de configuración de riego (accesible mediante el botón de configuración de agua) proporciona la capacidad de cambiar los parámetros de riego (humedad del suelo para iniciar / detener el riego, duración del riego y pausa de saturación entre ciclos, número de ciclos), etc.) Los archivos HTML del servidor web se encuentran en la carpeta de datos del boceto IDE de IoT APIS Arduino. Deben cargarse en la memoria flash NodeMCU como un sistema de archivos SPIFF utilizando la herramienta "Carga de datos de bocetos ESP8266" que se encuentra aquí.

Paso 13: Bosquejo de NodeMCU: registro de riego local y acceso al sistema de archivos interno

Bosquejo de NodeMCU: registro de riego local y acceso al sistema de archivos interno
Bosquejo de NodeMCU: registro de riego local y acceso al sistema de archivos interno

En caso de que la conectividad de red no esté disponible, el sistema IoT APIS v2 registra todas las actividades de riego a nivel local.

Para acceder al registro, conéctese al dispositivo y navegue a la página '/ editar', luego descargue el archivo watering.log. Este archivo contiene el historial de todas las ejecuciones de riego desde que se inició el registro.

Se adjunta a este paso un ejemplo de dicho archivo de registro (en formato separado por tabulaciones).

NOTA: La página de descarga no está disponible cuando IoT APIS v2 se está ejecutando en el modo de punto de acceso (debido a la dependencia de la biblioteca Java Script en línea).

Paso 14: Bosquejo de NodeMCU: humedad del suelo, fugas de agua en la bandeja inferior, nivel del agua, LED de 3 colores

Image
Image
Bosquejo de NodeMCU: humedad del suelo, fugas de agua en la bandeja inferior, nivel de agua, LED de 3 colores
Bosquejo de NodeMCU: humedad del suelo, fugas de agua en la bandeja inferior, nivel de agua, LED de 3 colores
Bosquejo de NodeMCU: humedad del suelo, fugas de agua en la bandeja inferior, nivel de agua, LED de 3 colores
Bosquejo de NodeMCU: humedad del suelo, fugas de agua en la bandeja inferior, nivel de agua, LED de 3 colores

La medición de la humedad del suelo se basa en el mismo principio que el APIS original. Consulte ese instructivo para obtener más detalles.

Las fugas de la bandeja de agua se detectan aplicando momentáneamente voltaje a los cables ubicados debajo de la olla usando resistencias PULLUP internas. Si el estado del PIN resultante es BAJO, entonces hay agua en la bandeja. El estado del PIN de ALTO indica que el circuito está "roto", por lo que no hay agua en la bandeja inferior.

El nivel del agua se determina midiendo la distancia desde la parte superior de la jarra hasta la superficie del agua y comparándola con la distancia hasta el fondo de una jarra vacía. ¡Tenga en cuenta el uso del sensor de 3 pines! Esos son más caros que los sensores de cuatro clavijas HC-SR04. Desafortunadamente, me quedé sin GPIO en NodeMCU y tuve que cortar todos los cables que pude para que el diseño funcionara en solo un NodeMCU sin circuitos adicionales.

El LED de 3 colores se utiliza para indicar visualmente el estado de APIS:

  1. Verde intermitente moderado: conectándose a la red WiFi
  2. VERDE parpadeando rápidamente: consultando el servidor NTP
  3. VERDE sólido breve: conectado a WiFi y obtenido correctamente la hora actual de NTP
  4. Breve BLANCO sólido: finalización de la inicialización de la red
  5. BLANCO parpadeando rápidamente: iniciando el modo de punto de acceso
  6. Azul parpadeando rápidamente - riego
  7. AZUL moderadamente parpadeante: saturado
  8. ÁMBAR brevemente sólido seguido de ROJO brevemente sólido: no se puede obtener tiempo de NTP
  9. BLANCO brevemente sólido durante el acceso al servidor web interno

El LED no funciona en el modo "noche". El modo de noche solo podría determinarse de manera confiable si el dispositivo pudo obtener la hora local de los servidores NTP al menos una vez (se usará el reloj de tiempo real local hasta que se establezca la próxima conexión a NTP)

Un ejemplo de la función LED está disponible en YouTube aquí.

Paso 15: Energía solar, banco de energía y operación autónoma

Energía solar, banco de energía y funcionamiento autónomo
Energía solar, banco de energía y funcionamiento autónomo
Energía solar, banco de energía y funcionamiento autónomo
Energía solar, banco de energía y funcionamiento autónomo
Energía solar, banco de energía y funcionamiento autónomo
Energía solar, banco de energía y funcionamiento autónomo

Una de las ideas detrás de IoT APIS v2 fue la capacidad de operar de forma autónoma.

El diseño actual utiliza un panel de energía solar y un banco de energía provisional de 3600 mAh para lograrlo.

  1. El panel solar está disponible en amazon.com
  2. El banco de energía también está disponible en amazon.com

El panel solar también tiene una batería incorporada de 2600 mAh, pero no pudo mantener el funcionamiento APIS de 24 horas incluso en el modo de ahorro de energía (sospecho que la batería no se adapta bien a la carga y descarga simultáneas). Una combinación de dos baterías parece proporcionar la energía adecuada y permitir la recarga de ambas baterías durante el día. El panel solar carga el banco de energía, mientras que el banco de energía enciende el dispositivo APIS.

Tenga en cuenta:

Esos componentes son opcionales. Puede alimentar el dispositivo con cualquier adaptador USB que proporcione 1A de corriente.

Paso 16: Integración de IoT - Blynk

Integración de IoT - Blynk
Integración de IoT - Blynk
Integración de IoT - Blynk
Integración de IoT - Blynk
Integración de IoT - Blynk
Integración de IoT - Blynk

Uno de los objetivos del nuevo diseño fue la capacidad de controlar la humedad del suelo, el nivel del agua y otros parámetros de forma remota.

Elegí Blynk (www.blynk.io) como plataforma de IoT debido a su facilidad de uso y su atractivo diseño visual.

Dado que mi boceto se basa en la biblioteca multitarea cooperativa TaskScheduler, no quería usar las bibliotecas de dispositivos Blynk (no están habilitadas para TaskScheduler). En su lugar, utilicé Blynk HTTP RESTful API (disponible aquí).

Configurar la aplicación es tan intuitivo como podría ser. Siga las capturas de pantalla adjuntas.

Paso 17: bocetos y archivos

Bocetos y archivos
Bocetos y archivos

El boceto de IoT APIS v2 se encuentra en el github aquí: Sketch

Algunas bibliotecas utilizadas por el boceto se encuentran aquí:

  1. TaskScheduler - biblioteca cooperativa multitarea para Arduino y esp8266
  2. AvgFilter: implementación entera del filtro Promedio para suavizar los datos del sensor
  3. RTCLib - implementación del reloj en tiempo real de hardware y software (modificado por mí)
  4. Hora: modificaciones de la biblioteca de tiempo
  5. Zona horaria: biblioteca que admite cálculos de zona horaria

NOTA:

Las hojas de datos, la documentación de los pines y los archivos 3D se encuentran en la subcarpeta "archivos" del boceto principal.

Los archivos HTML para el servidor web incorporado deben cargarse en la memoria flash NODE MCU usando arduino-esp8266fs-plugin (que crea un archivo de sistema de archivos desde la subcarpeta "datos" de la carpeta principal de bocetos y lo carga en la memoria flash)

Concurso de jardinería interior 2016
Concurso de jardinería interior 2016
Concurso de jardinería interior 2016
Concurso de jardinería interior 2016

Finalista del Concurso de Jardinería Interior 2016

Recomendado: