{"id":34250552,"url":"https://github.com/pedropereiradev/automatic-irrigation-system","last_synced_at":"2026-05-29T17:31:37.912Z","repository":{"id":300647864,"uuid":"1006182864","full_name":"pedropereiradev/automatic-irrigation-system","owner":"pedropereiradev","description":"Sistema de irrigação automática com Arduino que monitora umidade do solo e condições ambientais, controlando bomba d'água automaticamente. Inclui display LCD, sensor DHT11, controle por relé e sistema de cooldown inteligente.","archived":false,"fork":false,"pushed_at":"2025-06-24T23:02:54.000Z","size":10434,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-19T19:22:27.164Z","etag":null,"topics":["arduino","automation","iot","irrigation"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pedropereiradev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-21T17:17:26.000Z","updated_at":"2025-06-24T23:02:57.000Z","dependencies_parsed_at":"2025-06-22T22:38:06.574Z","dependency_job_id":null,"html_url":"https://github.com/pedropereiradev/automatic-irrigation-system","commit_stats":null,"previous_names":["pedropereiradev/automatic-irrigation-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pedropereiradev/automatic-irrigation-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedropereiradev%2Fautomatic-irrigation-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedropereiradev%2Fautomatic-irrigation-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedropereiradev%2Fautomatic-irrigation-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedropereiradev%2Fautomatic-irrigation-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pedropereiradev","download_url":"https://codeload.github.com/pedropereiradev/automatic-irrigation-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedropereiradev%2Fautomatic-irrigation-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33664259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","automation","iot","irrigation"],"created_at":"2025-12-16T09:24:40.017Z","updated_at":"2026-05-29T17:31:37.906Z","avatar_url":"https://github.com/pedropereiradev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sistema de Irrigação Automática com Arduino\n\n## 🌱 Descrição do Projeto\n\nEste sistema de irrigação automática foi desenvolvido para monitorar e controlar automaticamente a irrigação de plantas com base na umidade do solo. O sistema utiliza sensores para medir a umidade do solo e as condições ambientais (temperatura e umidade do ar), exibindo as informações em um display LCD e acionando automaticamente uma válvula solenóide para liberar o fluxo de água quando necessário.\n\n### Características Principais:\n- **Monitoramento contínuo** da umidade do solo\n- **Controle automático** de irrigação\n- **Display LCD** com informações em tempo real\n- **Sensor de temperatura e umidade** ambiente\n- **Sistema de cooldown** para evitar irrigação excessiva\n- **Interface amigável** com ícones customizados\n\n## ⚙️ Funcionalidades\n\n### 🔧 Automação\n- Irrigação automática quando umidade do solo \u003c 30%\n- Tempo de irrigação configurável (padrão: 10 segundos)\n- Período de espera entre irrigações (padrão: 5 minutos)\n- Verificação imediata na inicialização do sistema\n\n### 📊 Monitoramento\n- **Tela 1**: Temperatura e umidade do ar\n- **Tela 2**: Umidade do solo com barra visual e status\n- Alternância automática entre telas a cada 10 segundos\n- Ícones customizados para melhor visualização\n\n### 🛡️ Segurança\n- Sistema de cooldown para evitar irrigação excessiva\n- Verificação de sensores na inicialização\n- Controle adequado do relé (HIGH=OFF, LOW=ON)\n- Monitoramento via Serial para debug\n\n## 🔧 Componentes Necessários\n\n### Hardware Principal\n| Componente | Quantidade | Especificação |\n|------------|------------|---------------|\n| Arduino Uno | 1 | Microcontrolador principal |\n| Sensor DHT11 | 1 | Temperatura e umidade do ar |\n| Sensor de Umidade do Solo | 1 | Analógico |\n| Display LCD 16x2 | 1 | Com pinos diretos |\n| Módulo Relé | 1 | 5V, 1 canal |\n| Válvula Solenóide | 1 | 12V |\n| Fonte de Alimentação | 1 | 12V para Arduino e Válvula Solenóide |\n\n## 🔌 Esquema de Ligação\n\n### Pinagem do Arduino\n```\nArduino Uno → Componente\n├── Pino 2  → LCD (D4)\n├── Pino 3  → LCD (D5)\n├── Pino 4  → LCD (D6)\n├── Pino 5  → LCD (D7)\n├── Pino 7  → DHT11 (DATA)\n├── Pino 8  → Relé (IN)\n├── Pino 11 → LCD (Enable)\n├── Pino 12 → LCD (RS)\n├── Pino A0 → Sensor de Umidade (Analógico)\n├── 5V      → Alimentação sensores\n└── GND     → Terra comum\n```\n\n### Ligações Detalhadas\n\n#### DHT11 (Sensor de Temperatura/Umidade)\n```\nDHT11    → Arduino\nVCC      → 5V\nDATA     → Pino 7\nGND      → GND\n```\n\n#### LCD 16x2\n```\nLCD      → Arduino\nVSS      → GND\nVDD      → 5V\nV0       → Potenciômetro (contraste)\nRS       → Pino 12\nEnable   → Pino 11\nD4       → Pino 5\nD5       → Pino 4\nD6       → Pino 3\nD7       → Pino 2\nA        → 5V (backlight)\nK        → GND (backlight)\n```\n\n#### Sensor de Umidade do Solo\n```\nSensor   → Arduino\nVCC      → 5V\nGND      → GND\nA0       → Pino A0\n```\n\n#### Módulo Relé\n```\nRelé     → Arduino/Válvula\nVCC      → 5V\nGND      → GND\nIN       → Pino 8\nCOM      → Fonte positiva\nNO       → Válvula positiva\n```\n\n## 📥 Instalação\n\n### 1. Preparação do Ambiente\n\n#### Instalar Arduino IDE\n1. Baixe a Arduino IDE do site oficial\n2. Instale as bibliotecas necessárias:\n   - `DHT sensor library` by Adafruit\n   - `Adafruit Unified Sensor`\n   - `LiquidCrystal` (já incluída)\n\n#### Instalar Bibliotecas\n```cpp\n// No Arduino IDE:\n// Sketch → Include Library → Manage Libraries\n// Buscar e instalar:\n// - \"DHT sensor library\" by Adafruit\n```\n\n### 2. Montagem do Hardware\n\n#### Ordem de Montagem\n1. **Monte o LCD** primeiro e teste a exibição\n2. **Conecte o DHT11** e verifique leituras\n3. **Instale o sensor de umidade** no solo\n4. **Configure o relé** com a bomba\n5. **Teste cada componente** individualmente\n\n### 3. Upload do Código\n1. Conecte o Arduino ao computador\n2. Abra o código no Arduino IDE\n3. Selecione a porta correta (Tools → Port)\n4. Faça o upload (Ctrl+U)\n\n## ⚙️ Configuração\n\n### Parâmetros Principais\n```cpp\n// Configurações no código\nconst int VALOR_MAXIMO = 500;        // Sensor solo seco\nconst int VALOR_MINIMO = 200;        // Sensor solo úmido\nconst int CONCENTRACAO_MINIMA = 30;  // Umidade mínima (%)\nconst int IRRIGATION_TIME = 10000;   // Tempo irrigação (ms)\nconst int COOLDOWN_TIME = 300000;    // Espera entre irrigações (ms)\n```\n\n### Personalização\n- **Tempo de irrigação**: Ajuste `IRRIGATION_TIME` (em milissegundos)\n- **Umidade mínima**: Modifique `CONCENTRACAO_MINIMA` (0-100%)\n- **Cooldown**: Altere `COOLDOWN_TIME` (em milissegundos)\n- **Alternância de telas**: Mude o valor 10000 na função `updateDisplay()`\n\n## 🚀 Como Usar\n\n### Primeira Inicialização\n1. **Conecte** todos os componentes conforme o esquema\n2. **Ligue** o sistema - verá tela de inicialização\n3. **Sistema testa** os sensores automaticamente\n4. **Aguarde** \"Sistema Pronto!\" aparecer\n5. **Verificação imediata** da umidade do solo\n\n### Operação Normal\n- **Tela 1**: Mostra temperatura e umidade do ar\n- **Tela 2**: Mostra umidade do solo e status\n- **Irrigação automática** quando solo \u003c 30% umidade\n- **Cooldown de 5 minutos** após cada irrigação\n\n### Status do Sistema\n| Status | Significado |\n|--------|-------------|\n| `IRRIGANDO` | Válvula acionada, irrigando |\n| `Aguard: Xmin` | Tempo restante para próxima irrigação |\n| `Aguard: Xs` | Menos de 1 minuto restante |\n| `SECO - PRONTO` | Solo seco, pronto para irrigar |\n| `UMIDO` | Solo com boa umidade (\u003e70%) |\n| `NORMAL` | Solo com umidade adequada |\n\n## 🔧 Calibração\n\n### Calibração do Sensor de Umidade\n\n#### Procedimento\n1. **Abra o Serial Monitor** (Tools → Serial Monitor)\n2. **Observe os valores** \"Sensor A0 = XXX\"\n3. **Teste em solo seco**: Anote o valor máximo\n4. **Teste em solo úmido**: Anote o valor mínimo\n\n#### Ajuste no Código\n```cpp\n// Substitua pelos valores obtidos\nconst int VALOR_MAXIMO = XXX;  // Valor solo seco\nconst int VALOR_MINIMO = XXX;  // Valor solo úmido\n```\n\n### Exemplo de Calibração\n```\nSolo Seco:    Sensor A0 = 850\nSolo Úmido:   Sensor A0 = 300\n\nConfiguração:\nVALOR_MAXIMO = 850\nVALOR_MINIMO = 300\n```\n\n## 💻 Código Fonte\n\n### Estrutura do Código\n```cpp\n// Principais funções:\nsetup()           // Inicialização do sistema\ninitializeSystem() // Tela de boot e testes\nupdateDisplay()   // Atualização do LCD\ncontrolIrrigation() // Controle da irrigação\ndisplayClimateScreen() // Tela do clima\ndisplaySoilScreen()    // Tela do solo\nloop()            // Loop principal\n```\n\n### Variáveis Importantes\n```cpp\nbool irrigating           // Status da irrigação\nbool firstIrrigationCheck // Primeira verificação\nunsigned long lastIrrigationEnd // Última irrigação\nint currentScreen        // Tela atual (0 ou 1)\n```\n\n### Constantes Configuráveis\n```cpp\nIRRIGATION_TIME   // Tempo de irrigação (ms)\nCOOLDOWN_TIME     // Tempo entre irrigações (ms)\nCONCENTRACAO_MINIMA // Umidade mínima (%)\nVALOR_MAXIMO      // Calibração sensor seco\nVALOR_MINIMO      // Calibração sensor úmido\n```\n\n## Circuito prototipado\n\n![Imagem 1](./assets/IMG_5368.jpg)\n\n![Imagem 2](./assets/IMG_5369.jpg)\n\n[Video Demo](https://youtu.be/boT2rhKMm9Y)\n\n## 📝 Notas Importantes\n\n### Segurança\n- ⚠️ **Nunca** deixe o sistema sem supervisão por longos períodos\n- ⚠️ **Proteja** componentes eletrônicos da água\n- ⚠️ **Use** fonte adequada para a válvula\n\n### Limitações\n- Sistema adequado para plantas pequenas/médias\n- Requer calibração específica para cada tipo de solo\n- Não adequado para uso externo sem proteção\n- Necessita supervisão regular\n\n### Melhorias Futuras\n- [ ] Conectividade WiFi para monitoramento remoto\n- [ ] Log de dados em cartão SD\n- [ ] Aplicativo mobile\n- [ ] Múltiplas zonas de irrigação\n- [ ] Sensor de pH do solo\n\n---\n\n**Versão:** 1.0  \n**Data:** Junho 2025  \n**Compatibilidade:** Arduino Uno/Nano/Pro Mini  \n**Licença:** Código aberto para uso educacional\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedropereiradev%2Fautomatic-irrigation-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedropereiradev%2Fautomatic-irrigation-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedropereiradev%2Fautomatic-irrigation-system/lists"}