#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 2 // Pin where the DHT11 sensor is connected
#define DHTTYPE DHT11 // Type of the DHT sensor
DHT_Unified dht(DHTPIN, DHTTYPE);
#define TRIGGER_PIN 23 // Pin for the ultrasonic sensor's trigger
#define ECHO_PIN 22 // Pin for the ultrasonic sensor's echo
long duration;
int distance;
void setup() {
Serial.begin(115200);
// Initialize DHT sensor
dht.begin();
// Ultrasonic sensor pins
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
// Read temperature and humidity from DHT sensor
sensors_event_t event;
dht.temperature().getEvent(&event);
float temperature = event.temperature;
dht.humidity().getEvent(&event);
float humidity = event.relative_humidity;
// Print temperature and humidity
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// Read distance from ultrasonic sensor
distance = getDistance();
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(2000); // Delay for 2 seconds
}
int getDistance() {
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2;
return distance;
}