// Learn about the ESP32 WiFi simulation in
// https://docs.wokwi.com/guides/esp32-wifi
#include <WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHTesp.h>
const int DHT_PIN = 15;
#define LED 2
#define LED2 4
#define SOUND_SPEED 0.034
const int trigPin = 5;
const int echoPin = 18;
long duration;
float distanceCm;
DHTesp dhtSensor;
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
void setup() {
Serial.begin(115200);
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("Loadding...");
}
void loop() {
LCD.clear();
TempAndHumidity data = dhtSensor.getTempAndHumidity();
LCD.setCursor(0, 0);
LCD.print("Nhiet Do: " + String(data.temperature, 1));
LCD.setCursor(0, 1);
LCD.print("Do Am: " + String(data.humidity, 2));
if (data.temperature >= 35) {
digitalWrite(LED, LOW);
} else {
digitalWrite(LED, HIGH);
}
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm = duration * SOUND_SPEED/2;
if (distanceCm >= 100) {
digitalWrite(LED2, HIGH);
} else {
digitalWrite(LED2, LOW);
}
delay(1000);
}