Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Componentes y materiales

Arduino Nano R3 × 1
Expansor de E/S (IO Expander) × 1
Paquete de expansor de E/S × 1

Aplicaciones y servicios en línea

Sobre este proyecto

Crear un controlador de riego inteligente con Arduino

Riegue su jardín de forma inteligente con ciclos de agua dinámicos. Deje de regar si llueve o ha lluvido desde el último riego. Utilice el sensor de luz para detectar el amanecer y ajustar automáticamente los horarios de inicio. Detenga el riego si hace demasiado frío.

Lista de características

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Componentes necesarios para construir el controlador

Diagrama de cableado

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Pantalla OLED

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Presione el botón Menú para mostrar el menú y continúe presionando para recorrer todas las opciones. El menú se oculta automáticamente tras 30 segundos de inactividad. Presione el botón Seleccionar para ejecutar la función deseada.

¿Por qué usar el expansor de E/S?

Construir el sistema

Conecte el Arduino Nano al expansor de E/S y prográmelo con el siguiente código. El header de 6 pines es el puerto de depuración serial por software y no es necesario en la instalación final.

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Asegúrese de cambiar las direcciones ONEWIRE_TO_I2C_ROM1 y ONEWIRE_TO_I2C_ROM2 definidas para que coincidan con la dirección de sus conversores 1-Wire a I2C.

Código principal (C/C++)

/* Sketch optimizado para IO Expander
 * Sistema de Riego v1.1 */
#include <math.h>
#include <time.h>
#include <util/crc16.h>
#include <avr/wdt.h>
#include <SoftwareSerial.h>
#include "IOExpander.h"

#define FAHRENHEIT
#define INIT_BOARD "g5w1;g11w1;g11d0,75;g12w1;g12d0,75;rsf"
#define ONEWIRE_TO_I2C_ROM1 "i4scc"
#define ONEWIRE_TO_I2C_ROM2 "i6s8f"
#define ONEWIRE_TEMPERATURE "t6s0300"
#define RTC_SENSOR "s4te"
#define I2C_EEPROM "s4tf"
#define I2C_OLED "s4t10"
#define I2C_LIGHT "s3t9;sc0"
#define OPTICAL_SENSOR "g5a"
#define BUTTON1 "g11d"
#define BUTTON2 "g12d"

#define WATER_TIME_BEFORE_SUNRISE 60
#define SUNRISE_LUX 100
#define RAIN_DETECT_LEVEL 4.0
#define DO_NOT_WATER_TEMP 4.4444 // 40°F

#define MAX_ZONES 4
// ... constantes de tiempo y días ...

ZONE zone[] = {
  {"Front Right", RELAY1},
  {"Front Left", RELAY2},
  {"Bushes", RELAY3},
  {"Left Side", RELAY4},
};

SCHEDULE schedule[] = {
  {ZONE1, SUNRISE | EVERYDAY, -1, 0, 4},
  {ZONE2, EVERYDAY, 6, 15, 5},
  {ZONE3, EVERYDAY, 6, 0, 10},
  {ZONE4, EVERYDAY, 6, 10, 6},
};

// ... funciones principales: NextScheduleTime, StartScheduleTime, WaterScheduleTime ...
// ... setup() y loop() con lógica completa de control ...

Nota: Si usa el puerto USB para programar el Arduino Nano, debe desconectarlo del expansor de E/S ya que usa el mismo puerto serial. Para depuración, use el puerto ICSP para programar el ATmega328P. Para habilitar el puerto de depuración por software, descomente la definición SERIAL_DEBUG.

El divisor debe configurarse primero para aislar la línea de datos del sensor infrarrojo óptico de la línea del sensor remoto 1-Wire. Suelde un resistor de 0 ohmios 0603 en R2.

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Perfore un agujero de 7/16" en la caja pequeña y 11/16" en la grande en el lado derecho para los prensaestopas PG7 y PG11. Use una herramienta Dremel para agrandar ligeramente hasta que encajen. El PG7 alimentará los sensores remotos y el PG11 los cables de 12VDC, 24VAC, colectores y cable RJ11 de sensores remotos.

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Conecte los microinterruptores SPST momentáneos al jack RJ11. Use termorretráctil para aislar los contactos.

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Conecte todos los cables y ensamble/alimente todas las partes en la caja grande. El cable RJ11 de 50 pies para sensores remotos debe pasar por el prensaestopas PG11 sin necesidad de cortarlo.

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Perfore un agujero de 9/16" en la parte superior de la caja pequeña para el sensor de agua infrarrojo óptico. La caja remota es un ajuste apretado, pero si los componentes se colocan en la orientación recomendada debería encajar. Hacer los cables RJ11 lo más cortos posible ayuda. Se recomienda añadir pegamento marino en la arandela del prensaestopas antes de apretar la tuerca para mejor sellado.

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Instale la caja de sensores remotos en el exterior y móntela elevada en el lado este de su casa con el sensor infrarrojo óptico y el sensor de luz apuntando al cielo sin obstrucciones.

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Perfore agujeros de 1/4" en la parte superior, media e inferior de la caja grande y monte los botones.

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Pruebe el sistema y verifique que todo funciona correctamente. Para probar relés y sensores, desconecte el Arduino del expansor y conéctelo directamente a la PC para control manual. Una vez verificado, ensamble todo en la caja usando cinta de doble cara y espuma de embalaje para asegurar las placas, y disfrute de los beneficios y ahorro de su controlador de riego inteligente.

Vídeo en funcionamiento

Actualización 12/09/2019

Versión v1.1 que corrige un problema de inicio si el sistema perdió energía por varios días.

Actualización 02/10/2019

Al conectar el 1-Wire a I2C al DS3231 y luego a la pantalla SSD1306 OLED, tendrá tres pull-ups diferentes en las líneas SDA y SCL. Esto resulta en un pull-up efectivo de 4.7k/3 = 1.56k que puede ser demasiado fuerte y causar corrupciones aleatorias en pantalla.

Controlador de riego inteligente con Arduino: Auto-riego con sensores climáticos y de luz

Como el DS3231 usa un array de resistencias compartido, elimine los otros pull-ups:

Proceso de manufactura

  1. Construya un Controlador Domótico 433 MHz con Sensorflare y Raspberry Pi
  2. Monitor de temperatura casero con Raspberry Pi, MCP9808, InfluxDB y Grafana
  3. Papelera Inteligente: Solución IoT Celular para Gestión Automatizada de Residuos
  4. Barman Inteligente: Construye tu Propia Estación de Cócteles con Raspberry Pi
  5. Sensor de Emociones y EEG: Hardware de Bajo Coste para Detección de Emociones en Tiempo Real
  6. Controlador de Riego Inteligente con Windows 10 IoT, Raspberry Pi y Sensores de Humedad XBee
  7. Revolucionando la producción de sensores: Sensata usa mecatrónica inteligente
  8. Construyendo sistemas de agricultura inteligente open-source: empoderando agricultores con IoT asequible e interoperable
  9. ECM3532: Primera placa sensor IA integrada ultra-bajo consumo de Eta Compute acelera desarrollo edge
  10. Sensor de Deformación Ultra-Sensible y Duradero Revoluciona Textiles Inteligentes
  11. Sensor Ultra-Fino Revolucionario Mejora la Funcionalidad de Lentes de Contacto Inteligentes