#include <DHTesp.h>
const int pin = 15; // DHT sensor data pin
const int trig = 12; // Ultrasonic sensor trigger pin
const int echo = 14; // Ultrasonic sensor echo pin
const int ledPin = 13; // LED pin
DHTesp dhtsensor;
TempAndHumidity data;
float duration;
float distance;
void setup() {
Serial.begin(115200); // Set serial communication speed
dhtsensor.setup(pin, DHTesp::DHT22); // Initialize DHT sensor
pinMode(trig, OUTPUT); // Set trigger pin as output
pinMode(echo, INPUT); // Set echo pin as input
pinMode(ledPin, OUTPUT); // Set LED pin as output
}
float getDistance() {
digitalWrite(trig, LOW); // Trigger low pulse
delayMicroseconds(2); // Short delay
digitalWrite(trig, HIGH); // Send trigger pulse
delayMicroseconds(10); // Short delay
duration = pulseIn(echo, HIGH); // Measure echo pulse duration
float distance = duration * 0.03405 / 2; // Calculate distance
return distance;
}
void loop() {
data = dhtsensor.getTempAndHumidity(); // Read temperature and humidity
Serial.println("TEMP: " + String(data.temperature));
Serial.println("Humid: " + String(data.humidity));
distance = getDistance(); // Get distance reading
Serial.println("Distance: " + String(distance));
// LED control based on conditions
if (data.temperature >= 50 || distance >= 50) {
digitalWrite(ledPin, HIGH); // Turn LED on (solid)
Serial.println("High temperature or object detected!");
} else {
digitalWrite(ledPin, LOW); // Turn LED off
// Delay for blinking effect
}
delay(3000);
}