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

Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi

Componentes y suministros

Componente Cantidad Notas
Arduino UNO 1
Raspberry Pi 2 Model B 1 Cualquier modelo sirve
Módulo cámara Raspberry Pi 1 Para timelapse
Arduino Ethernet Shield 2 1 Conectividad red
Relé genérico 1 Módulo 4 canales
Cable OpenBuilds (por metro) 1 Cableado
Fotorresistencia (LDR) 1 Sensor luz
Bomba agua genérica 1 Riego
Ventilador genérico 1 De PC viejo
Transistor NPN uso general 1 Control ventilador
Tarjeta MicroSD genérica 1 16 GB para timelapse

Aplicaciones y servicios online

Sobre el proyecto

Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi

Este es mi segundo proyecto con jardín automatizado, pero esta vez todo controlado por Cayenne, lo que lo hace mucho más fácil. Además añadí una Raspberry Pi para hacer video timelapse.

Configuración del Arduino

Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi

Para monitorizar el jardín usé varios dispositivos útiles. Antes de empezar, recuerda conectar el Ethernet Shield al Arduino.

Conexiones

Sensor humedad suelo:

Comprueba si las plantas necesitan agua.

Ventilador:

Se activa si hace mucho calor o para renovar aire.

Bomba agua:

Se activa con sensor humedad suelo.

Fotorresistencia (opcional):

Mide si hay suficiente luz en la estancia.

Luz:

Sensor humedad/temperatura (DHT22):

Requiere código específico para funcionar bien con Cayenne.

Sensor nivel agua:

Montaje final

Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi

Usé 2 relés en el gráfico porque Fritzing no tiene relé de 4 canales. Para el relé usé una sola fuente 12V. Separé positivo y negativo, soldé 3 cables del positivo y conecté cada parte al relé. Uno basta ya que no todo se enciende a la vez.

Usé fuente 5V para Arduino. Relé:

Configuración Cayenne

Veremos cómo configurar Cayenne, muy fácil.

  1. Crea cuenta aquí.
  2. Conecta Ethernet Shield con cable RJ45.
  3. Código para conectar a Cayenne y configurar sensor humedad/temperatura (abajo).

Este código funciona para shield W5100 (en Cayenne hay código para otros shields WiFi/Ethernet). No olvides añadir tu token (lo obtienes al crear cuenta).

#include "DHT.h"
//#define CAYENNE_DEBUG // Descomenta para mensajes debug
#define CAYENNE_PRINT Serial // Comenta para desactivar prints y ahorrar espacio
#include <CayenneMQTTEthernet.h>

#define DHTPIN 8        // Pin digital conectado
#define DHTTYPE DHT22   // DHT 22 (AM2302), AM2321

#define VIRT_TEMP V1
#define VIRT_HUM V2

// Token autenticación Cayenne (obtener del Dashboard)
char token[] = "tu_token_aqui";

DHT dht(DHTPIN, DHTTYPE);
unsigned long prev_DHT_refresh, interval_DHT_refresh = 1000;

void setup() {
  Serial.begin(9600);
  Cayenne.begin(token);
  dht.begin();
}

void loop() {
  Cayenne.run();
  getDhtValues();
}

void getDhtValues() {
  unsigned long now = millis();
  if (now - prev_DHT_refresh > interval_DHT_refresh) {
    // Lectura temp/humedad ~250ms. Lecturas pueden ser hasta 2s "viejas" (sensor lento)
    float h = dht.readHumidity();
    float t = dht.readTemperature(); // Celsius por defecto
    if (!isnan(h) && !isnan(t)) {
      Cayenne.virtualWrite(VIRT_HUM, h);
      Cayenne.celsiusWrite(VIRT_TEMP, t);
    }
    prev_DHT_refresh = now;
  }
}

Dispositivos en Cayenne

Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi

Casi terminamos con Arduino. Ahora la parte fácil: añadir todos los dispositivos en Cayenne.

Añadir dispositivo → Widget personalizado

Elige tipo de widget. Usé gráfica para humedad y nivel agua, valor para el resto. Para sensor humedad/temperatura usamos pin virtual:

Para los demás, en lugar de pin virtual elige Analógico con el pin correspondiente. Mismo procedimiento pero en actuadores, selecciona el pin de Arduino conectado al relé para luz/ventilador/bomba.

Eventos y disparadores

Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi

Con el dashboard listo, configuramos los Disparadores (Triggers):

Configuración Raspberry Pi

Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi

Hagamos timelapse del crecimiento de la planta.

3 Software necesarios:

Win32 Disk Imager:

  1. Verás "device". Por defecto suele estar bien (si solo tienes SD conectada).
  2. Clic en icono carpeta azul y selecciona imagen Raspbian Jessie descargada.
  3. Clic "Write" y listo. Inserta tarjeta en Raspberry.

PuTTY:

Permite conexión SSH. Abre PuTTY (no requiere instalación).

Actualizaciones necesarias en PuTTY:

sudo apt-get update
sudo apt-get upgrade

VNC (control remoto gráfico):

Si no tienes pantalla para Raspberry, instala VNC.

sudo apt-get install tightvncserver
vncserver :1

Descarga vncviewer en tu PC, conecta con IP:número_servidor (ej. 192.168.0.3:1)

Cayenne en Raspberry:

Control remoto de Raspberry con Cayenne, solo instalar:

wget https://cayenne.mydevices.com/dl/rpi_03wl1tt4nt.sh
sudo bash rpi_03wl1tt4nt.sh -v

Timelapse

Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi

Último paso. Habilita cámara en PuTTY o terminal:

sudo raspi-config

Ve a "Enable camera". Crea carpeta para fotos:

cd /home/pi/Desktop
mkdir timelapse

Tras conectar cámara, crea script para foto cada hora:

cd /home/pi/Desktop
nano timelapse.sh

Pega esto:

SAVEDIR=/home/pi/Desktop/timelapse/
while [ true ]; do
  filename=-$(date -u +"%d%m%Y_%H%M-%S").jpg
  /opt/vc/bin/raspistill -o $SAVEDIR/$filename
  sleep 3600;
done;

Haz el script ejecutable:

chmod +x timelapse.sh

Conclusión

Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi
Sistema de Jardín Automatizado Inteligente con Arduino UNO y Raspberry Pi

El tutorial fue largo pero muy fácil: solo unos dispositivos para conectar y configurar la plataforma. En la foto hay mucho lío de cables (usé cables demasiado largos). Publicaré resultado del timelapse cuando las plantas crezcan.

Consejo: El Ethernet Shield puede dar error "DHCP fail". Solución del foro Arduino: suelda dos resistencias de 100 ohm en sitios aleatorios para molestar a tus lectores. (Nota: esto parece broma del autor original; la solución real suele ser verificar cableado RJ45 y alimentación).

Código

Fragmento código #1 (Arduino)

#include "DHT.h"
//#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial
#include <CayenneMQTTEthernet.h>

#define DHTPIN 8
#define DHTTYPE DHT22

#define VIRT_TEMP V1
#define VIRT_HUM V2

char token[] = "tu_token_aqui";

DHT dht(DHTPIN, DHTTYPE);
unsigned long prev_DHT_refresh, interval_DHT_refresh = 1000;

void setup() {
  Serial.begin(9600);
  Cayenne.begin(token);
  dht.begin();
}

void loop() {
  Cayenne.run();
  getDhtValues();
}

void getDhtValues() {
  unsigned long now = millis();
  if (now - prev_DHT_refresh > interval_DHT_refresh) {
    float h = dht.readHumidity();
    float t = dht.readTemperature();
    if (!isnan(h) && !isnan(t)) {
      Cayenne.virtualWrite(VIRT_HUM, h);
      Cayenne.celsiusWrite(VIRT_TEMP, t);
    }
    prev_DHT_refresh = now;
  }
}

Fragmento código #9 (Script timelapse SH)

SAVEDIR=/home/pi/Desktop/timelapse/
while [ true ]; do
  filename=-$(date -u +"%d%m%Y_%H%M-%S").jpg
  /opt/vc/bin/raspistill -o $SAVEDIR/$filename
  sleep 3600;
done;

Proceso de manufactura

  1. Construya un Mando Universal Profesional para Raspberry Pi con LIRC
  2. Conversión de RF a CC con Raspberry Pi: Construcción y Solución de Problemas de un Detector de Envolvente
  3. Cycle Chaser: Transforme su Bici en un Espectáculo de Luces Nocturno con Raspberry Pi
  4. Construya un Detector de Ladrones Basado en Raspberry Pi – Guía Paso a Paso
  5. Monitor de temperatura casero con Raspberry Pi, MCP9808, InfluxDB y Grafana
  6. Construye sistema domótico con Raspberry Pi para control remoto
  7. Sistema de Riego Automático para Plantas con Raspberry Pi y Panel Web
  8. MrRobot: Robot Rapiro controlado por móvil Ubuntu con voz, tacto e interacción por movimiento
  9. Robot DIY inspirado en Wall‑E con Raspberry Pi y caja de CD
  10. Construya un robot Raspberry Pi controlado por Bluetooth con retroalimentación de audio
  11. Construya un robot con streaming de vídeo controlado por Internet con Arduino y Raspberry Pi