// Definição dos pinos
const int pirPin = 2; // Pino do sensor de movimento (PIR)
const int ledPin = 3; // Pino da lâmpada LED
const int relayIrrigationPin = 4; // Pino do relé de irrigação
const int solarPanelPin = A0; // Pino de leitura da tensão da placa solar
// Variáveis
bool motionDetected = false;
unsigned long irrigationInterval = 3600000; // Intervalo de irrigação (1 hora)
unsigned long lastIrrigationTime = 0;
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(relayIrrigationPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Leitura do sensor de movimento
motionDetected = digitalRead(pirPin);
// Acende a lâmpada se houver movimento
if (motionDetected) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
// Leitura da tensão da placa solar (pode ser usado para monitoramento ou controle avançado)
int solarVoltage = analogRead(solarPanelPin);
Serial.print("Solar Voltage: ");
Serial.println(solarVoltage);
// Controle do sistema de irrigação baseado em temporizador
unsigned long currentTime = millis();
if (currentTime - lastIrrigationTime >= irrigationInterval) {
// Ativa a irrigação
digitalWrite(relayIrrigationPin, HIGH);
delay(10000); // Liga a irrigação por 10 segundos
digitalWrite(relayIrrigationPin, LOW);
// Atualiza o tempo da última irrigação
lastIrrigationTime = currentTime;
}
}