Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi

Componentes e Materiais

Componente Quantidade Observações
Arduino UNO 1
Raspberry Pi 2 Model B 1 Qualquer modelo serve
Módulo Câmera Raspberry Pi 1 Para timelapse
Arduino Ethernet Shield 2 1 Conectividade rede
Relé (genérico) 1 Módulo 4 canais recomendado
Cabo (por metro) 1 Fiação
Fotorresistor (LDR) 1 Sensor de luz
Bomba d'água (genérica) 1 Irrigação
Ventoinha (genérica) 1 Usei de PC antigo
Transistor NPN Uso Geral 1 Drive ventoinha
Cartão MicroSD (Genérico) 1 16 GB para timelapse

Aplicativos e Serviços

Sobre o Projeto

Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi

Segundo projeto usando meu jardim automatizado, agora controlado via Cayenne (muito mais fácil). Adicionei Raspberry Pi para timelapse do crescimento das plantas.

Configurando o Arduino

Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi

Para monitorar o jardim, usei vários sensores/atuadores. Lembre-se: conecte o Ethernet Shield ao Arduino antes de começar.

Conexões

Dispositivo Conexões
Umidade do Solo
(Verifica necessidade de água)
VCC: 5V
GND: GND
A0: A1
Ventoinha
(Resfriamento/ar fresco)
Resistor → pino 3
GND ventoinha → pino central transistor
+ ventoinha → relé (pino central)
Último pino transistor → GND
Diodo → pino central transistor + GND
Bomba d'água
(Ativada por umidade solo)
+ → relé (pino central)
GND → GND fonte externa
Fotorresistor (opcional)
(Mede luminosidade)
Um lado → A0 + resistor → GND
Outro lado → 5V
Luz Anodo (+) → relé
Outro → GND fonte externa
Sensor Umidade/Temperatura (DHT22)
(Requer código específico para Cayenne)
VCC: 3.3V
GND: GND
DAT: Pino digital 8
Sensor Nível d'Água VCC: 5V
GND: GND
SIG: A2

Montagem Final

Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi

Usei 2 relés no diagrama (Fritzing não tinha relé 4 canais). Na prática, uso um relé 4 canais com uma fonte 12V. Separei fios + e -, soldei 3 fios do positivo para cada atuador no relé. Um basta pois não ligam simultaneamente.

Fonte 5V para Arduino. Relé:

Configuração Cayenne

Fácil configuração:

  1. Crie conta no Cayenne
  2. Conecte Ethernet Shield com cabo RJ45
  3. Use código abaixo (para shield W5100; outros shields têm código no Cayenne). Não esqueça seu token (obtido no dashboard).
#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[] = "seu_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;
  }
}

Dispositivos no Cayenne

Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi

Agora adicione todos os dispositivos no Cayenne.

Adicionar Dispositivo → Widget Personalizado

Escolha tipo de widget: usei gráfico para umidade e nível d'água, valor para demais. Sensor DHT usa pinos virtuais:

Outros dispositivos: pino analógico correspondente. Atuadores (luz, ventoinha, bomba): tipo "actuator", pino do Arduino conectado ao relé.

Eventos e Gatilhos (Triggers)

Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi

Configuração dos gatilhos:

Configurando o Raspberry Pi

Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi

Timelapse do crescimento das plantas.

3 Softwares:

  1. Raspbian
  2. Win32DiskImager (gravar imagem no SD)
  3. PuTTY (SSH remoto)

Win32DiskImager:

  1. Selecione dispositivo (padrão OK se só SD conectado)
  2. Clique pasta azul → selecione imagem Raspbian Jessie baixada
  3. Write → pronto. Insira cartão no Raspberry.

PuTTY: SSH remoto. Abra PuTTY (sem instalação).

Atualizações necessárias (no PuTTY):

sudo apt-get update
sudo apt-get upgrade

VNC (controle remoto gráfico):

sudo apt-get install tightvncserver
vncserver :1

Baixe VNC Viewer no PC → conecte IP:1 (ex: 192.168.0.3:1)

Cayenne no Raspberry: Controle remoto via Cayenne:

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

Timelapse

Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi

Habilite câmera:

sudo raspi-config

→ Enable Camera.

Crie pasta para fotos:

cd /home/pi/Desktop
mkdir timelapse

Script para foto a cada hora:

cd /home/pi/Desktop
nano timelapse.sh

Cole:

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

Torne executável:

chmod +x timelapse.sh

Conclusão

Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi
Sistema de Jardim Automatizado Inteligente com Arduino UNO e Raspberry Pi

Tutorial longo mas fácil: poucos dispositivos para conectar e configurar plataforma. Foto mostra bagunça de fios longos — vou postar resultado do timelapse quando plantas crescerem.

Dica: Ethernet Shield pode dar erro "DHCP fail". Solução do fórum Arduino: solde dois resistores 100Ω em locais aleatórios para "irritar seus leitores" (brincadeira do autor — na verdade é fixar terminação de barramento).

Código

Trecho #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[] = "seu_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;
  }
}

Trecho #9 (Shell - Timelapse)

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

Processo de manufatura

  1. Construa um Controle Remoto Universal Profissional para Raspberry Pi com LIRC
  2. Convertendo RF em DC com Raspberry Pi: Construindo e Solucionando Problemas de um Detector de Envelope
  3. Cycle Chaser: Transforme Sua Bicicleta em um Show de Luzes Noturno com Raspberry Pi
  4. Construa um Detetor de Ladrão Baseado em Raspberry Pi – Guia Passo a Passo
  5. Construa Monitor de Temperatura Doméstico com Raspberry Pi, MCP9808, InfluxDB e Grafana
  6. Construa Sistema de Automação Residencial com Raspberry Pi para Controle Remoto
  7. Sistema Automatizado de Rega de Plantas com Raspberry Pi e Dashboard Web
  8. MrRobot: Robô Rapiro Controlado por Ubuntu Mobile com Voz, Toque e Interação por Movimento
  9. Robô DIY Inspirado no Wall‑E com Caixa de CD e Raspberry Pi
  10. Construa um Robô Raspberry Pi Controlado por Bluetooth com Feedback de Áudio