// Servo Sweep example for the ESP32
// https://wokwi.com/arduino/projects/323706614646309460
#include <ESP32Servo.h>
#include "Arduino.h"
#include "DHTesp.h"
const int DHT_PIN = 15; // Pino do sensor DHT22
const int LED_PIN = 4; // Pino do LED
const int SERVO_PIN = 2; // Pino do servo motor
DHTesp dhtSensor;
Servo servoMotor;
void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
pinMode(LED_PIN, OUTPUT);
servoMotor.attach(SERVO_PIN);
servoMotor.write(0); // Inicialmente, definir a posição do servo para 0 graus
}
void loop() {
float temperature = dhtSensor.getTemperature();
float humidity = dhtSensor.getHumidity();
if (temperature >= 10 && temperature <= 40) {
// Se a temperatura estiver no intervalo de 10°C a 40°C
digitalWrite(LED_PIN, HIGH); // Ligar o LED
delay(1000); // Aguardar 1 segundo
digitalWrite(LED_PIN, LOW); // Desligar o LED
delay(1000); // Aguardar 1 segundo
}
if (humidity > 70 && temperature >= 10 && temperature <= 40) {
// Se a umidade for maior que 70% e a temperatura estiver no intervalo de 10°C a 40°C
// Girar o servo de 0 a 180 graus
for (int pos = 0; pos <= 180; pos++) {
servoMotor.write(pos);
delay(15); // Pequeno atraso para suavizar o movimento
}
// Girar o servo de 180 a 0 graus
for (int pos = 180; pos >= 0; pos--) {
servoMotor.write(pos);
delay(15); // Pequeno atraso para suavizar o movimento
}
digitalWrite(LED_PIN, HIGH); // Ligar o LED
} else {
servoMotor.write(0); // Manter o servo na posição 0 graus
digitalWrite(LED_PIN, LOW); // Desligar o LED
}
}