#include #define BLYNK_PRINT Serial #include #include #include char auth[] = "kfoUFfZXDKLw3CQ0j0tzEGDYXYFS5ZJt"; char ssid[] = "Mix"; char pass[] = "1234567891"; #define LINE_TOKEN "nRUZ4wO7XKUWOTJ6VJvWC8ZC4nIU3jVdY6BasrrD3xg" // บรรทัดที่ 13 ใส่ รหัส TOKEN ที่ได้มาจากข้างบน #define DHTPIN 5 // GPIO 5 (pin D1 of ESP8266) #define DHTTYPE DHT11 // DHT 11 (use DHT22 for DHT22 sensor) DHT dht(DHTPIN, DHTTYPE); BlynkTimer timer; int mq135 = A0; //AQI sensor is connected with the analog pin A0 int data = 0; void sendSensor() { data = analogRead(mq135); //read A0 pin of NodeMCU Blynk.virtualWrite(V4, data); //virtual pin V4 for AQI float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } Blynk.virtualWrite(V2, h); //virtual pin V2 for humidity Blynk.virtualWrite(V3, t); //virtual pin V3 for temperature if (h >= 65) { String h2 = "ความชื้นมาก: " + String(h); delay(10000); LINE.notify(h2); } if (t >= 31) { String t2 = "ตอนนี้ร้อนมาก: " + String(t); delay(10000); LINE.notify(t2); } if (data >= 350) { String aqii = "ไฟไหม้ห้องแล้ว: " + String(data); delay(10000); LINE.notify(aqii); } } void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass, "blynk.iot-cm.com", 8080); dht.begin(); // Setup a function to be called every second timer.setInterval(1000L, sendSensor); Serial.println(LINE.getVersion()); // กำหนด Line Token LINE.setToken(LINE_TOKEN); // ตัวอย่างส่งข้อความ } void loop() { Blynk.run(); timer.run(); }