Skip to content

hqnicolas/PlantaComArduinoAi

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

No releases published

Packages

No packages published

Contributors 2

  •  
  •