#include <DHT.h>
#include <ArduinoJson.h> // Biblioteca para manipulação de JSON
#define LDR_PIN 34 // Pino do ESP32 (ADC0) conectado ao sensor de luz
#define LDR_LED_PIN 2 // Pino do ESP32 conectado ao LED de luminosidade
#define DHT_PIN 32 // Pino do ESP32 conectado ao sensor DHT22
#define TEMP_LED_PIN 5 // Pino do ESP32 conectado ao LED de temperatura
#define ANALOG_THRESHOLD 500
#define TEMP_THRESHOLD 30 // Valor de temperatura para ativar o LED
#define DHT_TYPE DHT22 // Tipo de sensor DHT22
DHT dht(DHT_PIN, DHT_TYPE);
StaticJsonDocument<200> json; // Objeto JSON para armazenar os dados
void setup() {
Serial.begin(115200);
pinMode(LDR_PIN, INPUT);
pinMode(LDR_LED_PIN, OUTPUT);
pinMode(TEMP_LED_PIN, OUTPUT);
dht.begin(); // Inicializa o sensor DHT
}
void loop() {
// Leitura analógica do sensor de luz
float brilho = analogRead(LDR_PIN);
// Armazena o valor do sensor de luz no objeto JSON
json["brilho"] = brilho;
// Controle do LED de luminosidade
if (brilho > ANALOG_THRESHOLD) {
digitalWrite(LDR_LED_PIN, HIGH); // Liga o LED de luminosidade se a leitura do LDR for maior que o limite
} else {
digitalWrite(LDR_LED_PIN, LOW); // Desliga o LED de luminosidade caso contrário
}
// Leitura da temperatura e umidade do sensor DHT22
float temperatura = dht.readTemperature();
float umidade = dht.readHumidity();
// Armazena os valores de temperatura e umidade no objeto JSON
json["temperatura"] = temperatura;
json["umidade"] = umidade;
// Envia o objeto JSON pela porta serial
serializeJson(json, Serial);
Serial.println();
// Controle do LED de temperatura
if (temperatura > TEMP_THRESHOLD) {
digitalWrite(TEMP_LED_PIN, HIGH); // Liga o LED de temperatura se a temperatura passar do limite
} else {
digitalWrite(TEMP_LED_PIN, LOW); // Desliga o LED de temperatura caso contrário
}
delay(2000); // Aguarda 2 segundos antes de fazer a próxima leitura
}