const int trigPin = 13; //ประกาศค่าตายตัวสำหรับเก็บ Pin สำหรับต่อกับ Trig ของ Ultrasonic
#define echoPin 12 //ประกาศค่าตายตัวสำหรับเก็บ Pin สำหรับต่อกับ Echo ของ Ultrasonic
#define ledPin 5
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHTesp.h"
const int DHT_PIN = 15;
DHTesp dhtSensor;
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
Serial.begin(9600);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.init();
lcd.setCursor(0,0);
lcd.backlight();
lcd.print("Ultrasonic");
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
long duration =0, cm = 0;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin,HIGH);
cm = duration / 29 / 2;
Serial.println(cm);
lcd.setCursor(0,1);
lcd.print("Distance:");
lcd.setCursor(10,1);
lcd.print(cm);
lcd.print(" Cm ");
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println(" ");
delay(1000);
if(cm <=200){
digitalWrite(ledPin, HIGH);
}else{
digitalWrite(ledPin, LOW);
}
}