#include <WiFi.h>
#include <HTTPClient.h>
#include <DHTesp.h>
#include <ESP32Servo.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* webhook = "https://hook.us2.make.com/61kkoma4zm8ti26tyve97vk8m8u5vvmf";
// Sensores
#define LDR_PIN 34
#define PIR_PIN 27
#define DHT_PIN 15
// LEDs
#define LED1 2
#define LED2 4
#define LED3 5
// Servo
#define SERVO_PIN 18
Servo servo;
DHTesp dht;
void setup() {
Serial.begin(115200);
pinMode(LDR_PIN, INPUT);
pinMode(PIR_PIN, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
dht.setup(DHT_PIN, DHTesp::DHT22);
servo.attach(SERVO_PIN);
servo.write(0);
WiFi.begin(ssid, password);
Serial.print("Conectando");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi conectado!");
}
void loop() {
int ldr = analogRead(LDR_PIN);
int pir = digitalRead(PIR_PIN);
TempAndHumidity dhtData = dht.getTempAndHumidity();
float temp = dhtData.temperature;
float hum = dhtData.humidity;
// LED LDR
digitalWrite(LED1, ldr < 2000);
// LED Temperatura
digitalWrite(LED2, temp < 30);
// Movimento
if (pir == HIGH) {
digitalWrite(LED3, HIGH);
servo.write(90);
} else {
digitalWrite(LED3, LOW);
servo.write(0);
}
String json = "{";
json += "\"luminosidade\":" + String(ldr) + ",";
json += "\"movimento\":" + String(pir) + ",";
json += "\"temperatura\":" + String(temp,1) + ",";
json += "\"umidade\":" + String(hum,1);
json += "}";
Serial.println(json);
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(webhook);
http.addHeader("Content-Type", "application/json");
int httpCode = http.POST(json);
Serial.print("HTTP: ");
Serial.println(httpCode);
http.end();
}
delay(5000);
}