https://github.com/tyxiel/auto-greenhouse
An automatic greenhouse with wifi connection based on arduino and ESP32
https://github.com/tyxiel/auto-greenhouse
actuators arduino automation c-plus-plus callmebot embedded-systems esp32 hardware iot lcd-display sensors smart-greenhouse whatsapp-notification wifi
Last synced: about 1 month ago
JSON representation
An automatic greenhouse with wifi connection based on arduino and ESP32
- Host: GitHub
- URL: https://github.com/tyxiel/auto-greenhouse
- Owner: Tyxiel
- License: agpl-3.0
- Created: 2025-02-13T14:35:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-02T20:06:31.000Z (about 1 year ago)
- Last Synced: 2025-06-03T09:58:18.929Z (about 1 year ago)
- Topics: actuators, arduino, automation, c-plus-plus, callmebot, embedded-systems, esp32, hardware, iot, lcd-display, sensors, smart-greenhouse, whatsapp-notification, wifi
- Language: C++
- Homepage:
- Size: 95.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Auto Greenhouse - Estufa Automatizada com Arduino MEGA e ESP32
Um projeto de estufa automatizada com controle ambiental e notificações via Wi-Fi, utilizando Arduino MEGA para gerenciamento local e ESP32 para conectividade e alertas via WhatsApp.
## Sobre o Projeto
A Auto Greenhouse é um sistema DIY (Faça Você Mesmo) projetado para automatizar o controle de condições ambientais cruciais em uma estufa, como umidade do solo, luminosidade e ventilação. O Arduino MEGA atua como o cérebro principal, lendo dados de sensores e acionando componentes como bombas de irrigação, ventiladores e um servo para o teto. O ESP32 adiciona capacidade de conexão Wi-Fi, permitindo o envio de notificações (por exemplo, através do CallMeBot para o WhatsApp) sobre o status ou eventos da estufa.
## Funcionalidades
* **Controle de Umidade do Solo:** Ativação automática de bombas de irrigação ou drenagem com base nos níveis de umidade.
* **Controle de Luminosidade:** Acionamento de LEDs (simulando luz de crescimento) com base na luminosidade ambiente.
* **Controle de Ventilação:**
* Ventilador com acionamento manual via botão.
* Abertura/fechamento do teto da estufa via servo motor, controlado por botão.
* **Monitoramento Local:** Display LCD 16x2 para exibir dados de sensores (umidade, luminosidade) e status dos atuadores (ventilador).
* **Notificações Remotas (via ESP32):**
* Conexão Wi-Fi.
* Envio de mensagens de status ou alertas para o WhatsApp utilizando a API CallMeBot (acionado por evento, por exemplo, quando o teto é aberto/fechado pelo Arduino).
* **Interface Serial:** Saída de dados de debug e status via monitor serial.
## Componentes Necessários
*(Esta seção pode usar a lista já fornecida no seu README original, bem formatada)*
### Arduino MEGA (2560)
* 1x Arduino MEGA 2560
* 1x Fonte 12V AC/DC (para ventilador e alimentação geral, se necessário)
* Resistores: 2x 220 ohms (LEDs), 1x 1k ohm, 1x 10k ohm (pull-ups/pull-downs)
* 1x Display LCD 16x2
* 2x Botões de pressão (para servo e ventilador)
* 1x Servo Motor (ex: SG90, MG996R)
* 1x Sensor de Umidade do Solo (analógico)
* 1x Sensor de Luminosidade (LDR)
* 1x Sensor de Temperatura LM35 (opcional, não totalmente implementado no loop principal do código atual)
* 1x Micro-ventilador 12V (conectar ao Vin do Arduino ou fonte externa com relé)
* 1x LED (para simular iluminação de crescimento)
* 1x Módulo Relé de 2 canais 5V (para bombas)
* 2x Pequenas bombas d'água 5V/12V (para irrigação e drenagem)
* Jumpers e protoboard
### ESP32
* 1x Placa de desenvolvimento ESP32
* (O ESP32 pode ser alimentado via USB ou compartilhar alimentação se planejado corretamente)
## Configuração do Ambiente de Desenvolvimento (Arduino IDE)
1. **Instale o Arduino IDE:** [arduino.cc/en/software](https://www.arduino.cc/en/software)
2. **Instale os Drivers (se necessário):**
* Para ESP32 com chip CP210x: [CP210x USB to UART Bridge VCP Drivers](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers)
3. **Adicione o Suporte para Placas ESP32:**
* No Arduino IDE, vá em `Arquivo > Preferências`.
* No campo "URLs Adicionais para Gerenciadores de Placas", adicione:
```
[https://dl.espressif.com/dl/package_esp32_index.json](https://dl.espressif.com/dl/package_esp32_index.json)
```
* Vá em `Ferramentas > Placa > Gerenciador de Placas...`.
* Procure por "esp32" e instale o pacote da Espressif Systems.
* Selecione a placa ESP32 correta em `Ferramentas > Placa` (ex: "ESP32 Dev Module").
4. **Instale as Bibliotecas Necessárias (via Gerenciador de Bibliotecas):**
* `LiquidCrystal` (geralmente já vem com o IDE)
* `Servo` (geralmente já vem com o IDE)
* Para ESP32: `WiFi`, `HTTPClient` (geralmente já vêm com o core ESP32)
## Montagem e Código
* **Diagrama de Conexões:** (Recomendado adicionar um diagrama Fritzing ou similar aqui)
* Conecte os sensores, atuadores, LCD e botões ao Arduino MEGA conforme os pinos definidos no código (`.ino` do Arduino).
* Conecte um pino de saída digital do Arduino MEGA (ex: pino 13 no código) a um pino de entrada digital do ESP32 para sinalizar eventos (ex: abertura do teto).
* **Código Arduino MEGA:**
* Faça o upload do sketch fornecido (`seu_sketch_arduino.ino`) para o Arduino MEGA.
* Ajuste os limiares dos sensores (`humRead`, `brightRead`) conforme necessário para sua calibração.
* **Código ESP32:**
* Faça o upload do sketch fornecido (`seu_sketch_esp32.ino`) para o ESP32.
* **Importante:** No código do ESP32, configure:
* `ssid`: Nome da sua rede Wi-Fi.
* `password`: Senha da sua rede Wi-Fi.
* `token`: Seu API token do CallMeBot.
* `phoneNumber`: Seu número de telefone para WhatsApp (com código do país, ex: 55XXXXXXXXXXX).
* `message`: A mensagem que deseja enviar.
* Modifique o `loop()` do ESP32 para ler o sinal do Arduino e chamar `sendMessage()` quando o evento ocorrer.
## Como Usar
1. Após a montagem e upload dos códigos, energize o sistema.
2. O Arduino MEGA começará a monitorar os sensores e controlar os atuadores.
3. O display LCD mostrará leituras de umidade, luminosidade e status do ventilador.
4. Use os botões para controlar o teto (servo) e o ventilador manualmente.
5. Quando um evento configurado ocorrer (ex: abertura do teto, acionando o sinal para o ESP32), o ESP32 se conectará ao Wi-Fi e enviará uma notificação para o WhatsApp via CallMeBot.
## Demonstração / Vídeo (Opcional)
[Link para um vídeo do projeto em funcionamento, se houver]
## Licença
Este projeto é licenciado sob a **GNU Affero General Public License v3.0**.
---