Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Nov 6, 2025. It is now read-only.

hqnicolas/PlantaComArduinoAi

Open more actions menu

Repository files navigation

PlantaComArduinoAi

Projeto IA

Projeto: Sistema de Irrigação Inteligente com Lógica Fuzzy e Algoritmo Genético

Descrição do Projeto

Sistema de irrigação automático que utiliza lógica fuzzy para determinar a necessidade hídrica em tempo real e algoritmo genético para otimizar dinamicamente os parâmetros de irrigação. Opera em dois modos (Manual/Automático) com persistência em EEPROM.

Diagrama de Blocos

Principais Características

  • Controle dual: Manual (botão físico) / Automático (lógica inteligente)
  • Lógica Fuzzy: 2 entradas (temperatura, umidade solo), 6 regras, saída singleton
  • Algoritmo genético:
    • Otimiza tempo de irrigação (1-20 segundos)
    • Otimiza intervalo entre irrigações (10-1440 minutos)
  • Persistência: Armazena modo operacional e melhor indivíduo na EEPROM
  • Monitoramento: LCD 16x2 + Serial Monitor para depuração
  • Proteções: Debounce para botão, controle seguro do motor com BJT

Lista de Componentes Atualizada

Componente Quantidade Notas Técnicas
Arduino Uno R3 1 ATMega328P
Sensor DHT11 (temp/umid. ar) 1 Pino A1
Sensor capacitivo solo 2 Pinos A0 e A2
LCD 16x2 (I2C) 1 Display status em tempo real
Motor CC 5V/200mA 1 Controlado via pino 9
Transistor BC547 1 Controle de potência do motor
Resistores 3 100Ω (motor), 1kΩ (pull-down botão)
Botão táctil 1 Modo 6 (com debounce)

Funcionamento do Sistema

Lógica Fuzzy (Núcleo de Decisão)

  1. Fuzzificação:

    • Temperatura: Baixa (<25°C), Média (25-55°C), Alta (>55°C)
    • Umidade Solo: Seco (<40%), Normal (40-70%), Úmido (>70%)
  2. Regras de Inferência (Exemplos):

    SE Temperatura ALTA E Solo SECONecessidade ALTA (0.8)
    SE Temperatura MÉDIA E Solo NORMALNecessidade BAIXA (0.2)
  3. Desfuzzificação:

    • Método singleton: necessidade = (Σ(regra_i * peso_i)) / Σ(regra_i)
    • Aciona irrigação se necessidade > 0.5

Algoritmo Genético (Otimização)

Estrutura do Indivíduo:

struct Individuo {
  int tempoIrrigacao; // 1-20 segundos
  int intervalo;      // 10-1440 minutos (até 24h)
  float fitness;      // Calculado por: 
};                    // (eficiência*0.6 + conservação*0.3 + estabilidade*0.1)

Fluxo do AG:

  1. Inicialização aleatória (população: 10 indivíduos)
  2. Avaliação de fitness baseada em:
    • Eficiência hídrica
    • Conservação de recursos
    • Estabilidade do solo
  3. Seleção por torneio (tamanho 3)
  4. Cruzamento aritmético
  5. Mutação gaussiana (±60 minutos)
  6. Elitismo (preserva melhor indivíduo)

Diagrama de Blocos

Diagrama de Conexões Correto

#define MOTOR_PIN 9       // Controle do motor
#define BOTAO_MANUAL 6    // Botão de modo (com debounce)
#define DHTPIN A1         // Sensor DHT11
#define SENSOR_SOLO_1 A0  // Sensor solo 1
#define SENSOR_SOLO_2 A2  // Sensor solo 2
// LCD: SDA-A4, SCL-A5 (I2C)

About

Projeto iA

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.