#include <DHT.h>
// Definições para o sensor DHT22
#define DHTPIN 15 // Pino de dados do DHT22
#define DHTTYPE DHT22 // Tipo do sensor DHT
// Definições para o sensor ultrassônico
#define TRIG_PIN 5 // Pino Trig do ultrassônico
#define ECHO_PIN 18 // Pino Echo do ultrassônico
// Instância do sensor DHT
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
// Configuração dos pinos do ultrassônico
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
// Leitura do sensor DHT22
float temperature = dht.readTemperature(); // Lê a temperatura em Celsius
float humidity = dht.readHumidity(); // Lê a umidade em %
// Leitura do sensor ultrassônico
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Calcula a distância em centímetros
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = (duration * 0.034) / 2;
// Verifica se a leitura do sensor DHT22 falhou
if (isnan(temperature) || isnan(humidity)) {
Serial.println("{\"error\": \"Falha na leitura do sensor DHT22\"}");
} else {
// Formato JSON para os dados dos sensores
Serial.print("{");
Serial.print("\"temperature\": ");
Serial.print(temperature);
Serial.print(", \"humidity\": ");
Serial.print(humidity);
Serial.print(", \"distance\": ");
Serial.print(distance);
Serial.println("}");
}
// Intervalo entre leituras
delay(2000); // Delay de 2 segundos
}