#define BLYNK_PRINT Serial
// ขาที่ต่อกับ ultrasonic sensor
#define TRIGGER_PIN D2
#define ECHO_PIN D3
#include
#include
char auth[] = "2jE_ErnrSIOMNiABqo0A_8p0RLsxQvJ6";
char ssid[] = "number";
char pass[] = "0955075552";
//ตัวแปลสำหรับคำนวนระยะ และ เก็บค่าระยะทาง
long duration, distance;
#include
#include
#include
#define DHTPIN D1
#define DHTTYPE DHT11 // เปลี่ยนเป็น DHT22 หรือ DHT21 ตามที่คุณใช้
DHT_Unified dht(DHTPIN, DHTTYPE);
float Temperature;
float Humidity;
const int ledPin = D6;
const int buttonPin = V1;
// BLYNK_WRITE(V4) เป็นชุดคำสั่งให้เปิดปิดไฟ LED ในแอพ Blynk
BLYNK_WRITE(V4) {
// อ่านค่าจากปุ่ม
int buttonValue = param.asInt();
// ตรวจสอบค่าปุ่ม
if (buttonValue == HIGH) {
// เปิด LED เมื่อกดปุ่ม
digitalWrite(ledPin, HIGH);
} else {
// ปิด LED เมื่อปล่อยปุ่ม
digitalWrite(ledPin, LOW);
}
}
// BLYNK_WRITE(V2) เป็นชุดคำสั่งให้เซนเซอร์วัดระยะทำงานเมื่อกดปุ่มในแอพ Blynk
BLYNK_WRITE(V2)
{
// ตรวจสอบการกด ว่ากด(1) หรือ ปล่อย(0)
if(param.asInt())
{
// ทำการเช็คระยะ
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
// คำนวนระยะ หน่วย CM
distance = (duration/2) / 29.1;
// แสดงค่าออก Serial
Serial.print(distance);
Serial.println(" cm");
//เขียนค่าไปที่ Blynk V0 Labeled Value Widget
Blynk.virtualWrite(V3,distance);
}
}
void setup()
{
Serial.begin(9600);
// กำหนด pin mode
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
// กำหนเค่าเริ่มต้น Blynk
Blynk.begin(auth, ssid, pass, "elec.cmtc.ac.th", 8080);
sensor_t sensor;
dht.temperature().getSensor(&sensor);
dht.humidity().getSensor(&sensor);
dht.begin();
// กำหนดขาเป็น Output
pinMode(ledPin, OUTPUT);
// กำหนดขาเป็น Input
pinMode(buttonPin, INPUT);
}
void loop()
{
// เริ่มการทำงาน
Blynk.run();
sensors_event_t event;
dht.temperature().getEvent(&event);
if (!isnan(event.temperature)) {
Temperature = event.temperature;
Serial.print("Temperature: ");
Serial.print(Temperature);
Serial.println(" °C");
Blynk.virtualWrite(V0, Temperature);
}
dht.humidity().getEvent(&event);
if (!isnan(event.relative_humidity)) {
Humidity = event.relative_humidity;
Serial.print("Humidity: ");
Serial.print(Humidity);
Serial.println(" %");
Blynk.virtualWrite(V1, Humidity);
}
delay(1000);
}