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

Smart Herb Box: Sistema de Jardinagem Inteligente com Alexa e Arduino

Componentes e Materiais

Componente Quantidade Função
Amazon Alexa Echo Dot 1 Interface de voz
Arduino UNO R3 1 Controlador principal
ESP8266 ESP-01 1 Conectividade WiFi
Arduino Proto Shield 1 Base para circuitos personalizados
Shield 4 Relés (5V) 1 Controle de bombas (12V) e lâmpada (220V)
Bomba de Água Submersa 12V 2 Irrigação por gravidade/pressão
Lâmpada de Crescimento para Plantas (220V) 1 Iluminação suplementar
Fonte 220V/12V DC (para bombas) 1 Alimentação bombas
Fonte 12V DC (para Arduino/relés) 1 Alimentação lógica
Carregador USB + Cabo 1 Alimentação 5V do Arduino
Mangueira de Ar/Água (silicone 4-6mm) 1 Conexão bombas → vasos
Jumpers (macho-macho, macho-fêmea) 1 kit Conexões
Sensores de Umidade de Solo YL-69 4 Monitoramento por vaso
Madeira (compensado/MDF 12-18mm) Conforme corte Caixa estrutural
Vasos de ervas (supermercado, ~11cm) 3 Recipientes das plantas
Reservatório de água externo 1 Garrafa/balde 2-5L

Sobre o Projeto

O Smart Herb Box é um sistema de irrigação automática para ervas culinárias em ambiente interno, com monitoramento de umidade, iluminação suplementar e controle por voz via Amazon Alexa. A caixa acomoda 3 vasos padrão de supermercado, cada um com sensor de umidade dedicado e linha de irrigação independente.

Funcionalidades principais:

Arquitetura do Sistema

┌─────────────┐     Serial      ┌──────────────┐     WiFi/HTTP      ┌─────────────┐
│   Arduino   │ ◄─────────────► │   ESP-01     │ ◄────────────────► │  Web API    │
│   (UNO)     │   (9600 baud)   │  (AT cmds)   │   (REST/JSON)      │  (PHP/JSON) │
└──────┬──────┘                 └──────────────┘                    └──────┬──────┘
       │                                                                    │
       ▼                                                                    ▼
┌─────────────┐                                                        ┌─────────────┐
│ Sensores/   │                                                        │  AWS Lambda │
│ Atuadores   │                                                        │  (Alexa)    │
└─────────────┘                                                        └─────────────┘

Passo a Passo Detalhado

Passo 1: Sensor de Umidade YL-69

O sensor YL-69 usa duas sondas que formam um resistor variável: solo úmido = menor resistência = maior condutividade.

Ligação otimizada (evita corrosão):

Código de leitura:

byte vccPin = 6;
byte dataPin = A1;

int readHumidity() {
  digitalWrite(vccPin, HIGH);    // Liga sensor
  delay(500);                    // Estabilização
  int value = analogRead(dataPin); // 0-1023
  digitalWrite(vccPin, LOW);     // Desliga sensor (evita eletrólise)
  return 1023 - value;           // Inverte: maior valor = mais úmido
}

Calibração: teste em solo seco (valor ~200-400) e solo encharcado (valor ~800-1000). Defina limiar de "seco" (ex: < 500) para acionar irrigação.

Passo 2: Shield de Relés para Bombas e Lâmpada

O shield de 4 relés isola eletricamente o Arduino (5V) das cargas:

Lógica de acionamento (relés "active LOW"):

// Desligado = pino INPUT ou HIGH
// Ligado = pino OUTPUT + LOW

void setup() {
  pinMode(pump1Pin, OUTPUT); digitalWrite(pump1Pin, HIGH); // Inicia desligado
  pinMode(pump2Pin, OUTPUT); digitalWrite(pump2Pin, HIGH);
  pinMode(lampPin, OUTPUT);  digitalWrite(lampPin, HIGH);
}

void activatePump(byte pin, int seconds) {
  pinMode(pin, OUTPUT);
  digitalWrite(pin, LOW);        // Liga
  delay(seconds * 1000);
  digitalWrite(pin, HIGH);       // Desliga
  pinMode(pin, INPUT);           // Garante desligado (high-Z)
}

Passo 3: WiFi com ESP-01 (AT Commands)

O ESP-01 é um microcontrolador separado que requer comunicação serial:

Configuração inicial (baud rate 9600):


AT+RST              // Reset
AT+CWMODE=1         // Modo Station
AT+CWJAP="SSID","SENHA"  // Conecta WiFi
AT+CIPMUX=1         // Múltiplas conexões
AT+CIPSERVER=1,80   // Servidor porta 80 (opcional)

Comunicação HTTP GET para API:


AT+CIPSTART=0,"TCP","meuservidor.com",80
AT+CIPSEND=0,
GET /api/planta?action=humidity&code=LEFT&humidity=750 HTTP/1.0
Host: meuservidor.com
Connection: close

Passo 4: Caixa de Madeira (Estrutura)

Dimensões sugeridas (para 3 vasos 11cm + eletrônica):

Montagem: cola madeira D3 (resistente à água) + parafusos. Acabamento com verniz marítimo ou epóxi nas partes internas.

Passo 5: Website/API (Backend)

Tecnologias: PHP, jQuery, Bootstrap, Chart.js, ArduinoJson.

Endpoints principais:

Endpoint Método Função
/api/plant?action=get&code=LEFT GET Retorna config: dataPin, interval
/api/plant?action=humidity&code=LEFT&humidity=750 GET Recebe leitura do Arduino
/api/action?action=pop GET Arduino busca comandos pendentes
/api/action?action=processed&entryNo=123 GET Confirma execução de comando

Interface Web: dashboard com gráfico Chart.js (últimas 24h/7d/30d), formulários inline (X-editable) para ajustar pinos, intervalos, limiares.

Passo 6: Integração Alexa (Alexa Skill + AWS Lambda)

Fluxo: Usuário fala → Alexa → AWS Lambda (Node.js) → Web API → Arduino (polling) → Execução → Resposta → Lambda → Alexa

Intents implementados:

Lambda (Node.js) – encaminhamento:


const https = require('https');
exports.handler = (event, context, callback) => {
  const postData = JSON.stringify(event);
  const options = {
    host: 'meuservidor.com',
    path: '/api/alexa',
    port: 443,
    method: 'POST',
    headers: { 'Content-Type': 'application/json', 'Content-Length': postData.length }
  };
  const req = https.request(options, (res) => {
    let body = '';
    res.on('data', (chunk) => body += chunk);
    res.on('end', () => callback(null, JSON.parse(body)));
  });
  req.write(postData);
  req.end();
};

Passo 7: Código Arduino (Estrutura Modular)

O código está organizado em classes/structs:

Loop principal (WhiteWalnut.ino):


void setup() {
  Serial.begin(9600);
  while(!WhiteWalnutApi::connectToWiFi()) delay(2000);
  
  leftPlant.code = "LEFT";  centerPlant.code = "CENTER"; 
  rightPlant.code = "RIGHT"; externalPlant.code = "EXTERNAL";
  
  leftPlant.checkHumidity();  // Inicia leituras periódicas
  centerPlant.checkHumidity();
  rightPlant.checkHumidity();
  externalPlant.checkHumidity();
  
  // Timers: API a cada 60s, ações a cada 1s
  StensTimer::getInstance()->setInterval(&apiTimer, ACTION_PLANT_UPDATE, 60000);
  StensTimer::getInstance()->setInterval(&actionBuffer, ACTION_ECOACTION_READ, 1000);
}

void loop() {
  stensTimer->run(); // Processa todos timers
}

Exemplos de Comandos de Voz (Alexa)

Comando Resposta Esperada
"Alexa, pergunte à herb box como estão minhas plantas" "Planta 1 está boa, Planta 2 está seca, Planta 3 está úmida"
"Alexa, diga à herb box para irrigar o manjericão por 5 segundos" "Irrigando manjericão por 5 segundos"
"Alexa, pergunte à herb box quais plantas precisam de irrigação" "Planta 1 e Planta 3 estão secas"
"Alexa, pergunte à herb box quando foi a última irrigação do meu manjericão" "Última irrigação do manjericão foi há 36 horas"
"Alexa, diga à herb box para ligar a lâmpada" "Lâmpada de crescimento ligada"

Recursos Planejados (Roadmap)

Arquivos de Código (Resumo)

Esquemático Resumido

Ver seção "Schematics" para diagramas de: comunicação Arduino↔ESP↔API↔Lambda, intents Alexa, fluxo de dados JSON.

Processo de manufatura

  1. Sistema de Iluminação DMX Controlado via Web – Controlador Mestre Arduino
  2. Construa um Spybot Controlado por Bluetooth com Arduino
  3. SERENA: Sistema de Alarme Personalizado Arduino Mega 2560 com Touchscreen TFT LCD
  4. Estação Meteorológica Compacta: Arduino Nano e ESP8266 com BMP280 e Display OLED/Nokia LCD
  5. Sistema Inteligente de Ventilação de Porão: Controle de Umidade com Arduino
  6. Sistema de Presença em Tempo Real com RFID, Arduino e Google Sheets
  7. Shield de Programação Wireless Arduino com HC-05 Bluetooth – Sem Cabo USB
  8. Sistema Avançado de Alerta de Colisão com Arduino – Alertas Visuais e Sonoros para Segurança Veicular
  9. Shield TFT 2,8" para Arduino Nano – Display SPI 320×240 de Alto Desempenho
  10. Shield Relógio Nixie NCS314 para Arduino UNO/MEGA – Compatibilidade IN‑14/IN‑12