#define BLYNK_TEMPLATE_ID "TMPL2-btQvdL"
#define BLYNK_DEVICE_NAME "DHT11"
//#include <DHT.h>
#include "DHTesp.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define BLYNK_FIRMWARE_VERSION "0.1.0"
#define BLYNK_PRINT Serial
#define APP_DEBUG
#define USE_NODE_MCU_BOARD
#include "BlynkEdgent.h"
//DHT dht(13, DHT11); //DHT out -->D7
DHTesp dht;
float t_canhbao;
float h_canhbao;
float t,h;
byte degree[8] = {0B01110,0B01010,0B01110,0B00000,0B00000,0B00000,0B00000,0B00000};
BlynkTimer timer;
WidgetLED led(V0);
boolean blynkState=0;
void setup(){
Serial.begin(115200);
delay(100);
Wire.begin(14,12); //Khởi tạo chân kết nối I2C
lcd.init(); //Khởi tạo LCD
lcd.clear(); //Xóa màn hình
lcd.backlight(); //Bật đèn nền cho LCD
lcd.createChar(0, degree); //Tạo ký tự lưu vào byte thứ 0
lcd.setCursor(4,0); //Cột 2, dòng 0
lcd.print("He thong"); //Ghi chữ bắt đầu từ cột thứ 2 dòng 0
lcd.setCursor(0,1); //Cột 0, dòng thứ 1
lcd.print("canh bao nhiet!");
delay(2000);
lcd.clear();
lcd.setCursor(1,0); //Cột 2, dòng 0
lcd.print("Dang thiet lap"); //Ghi chữ bắt đầu từ cột thứ 2 dòng 0
lcd.setCursor(2,1); //Cột 0, dòng thứ 1
lcd.print("cau hinh...!");
BlynkEdgent.begin();
//dht.begin();
dht.setup(13, DHTesp::DHT11);
timer.setInterval(3000,readSensor);
timer.setInterval(1000,updateBlynk);
}
void loop(){
BlynkEdgent.run();
timer.run();
if(Blynk.connected()){
if(blynkState==0){
blynkState=1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Nhiet do: ");
lcd.setCursor(0,1);
lcd.print("Do am : ");
}
}
}
void readSensor(){
// float h_temp = dht.readHumidity();
// float t_temp = dht.readTemperature();
float h_temp = dht.getHumidity();
float t_temp = dht.getTemperature();
Serial.print(dht.getStatusString());
if (isnan(h_temp) || isnan(t_temp)) {
Serial.println("Failed to read from DHT sensor!");
//return;
}else{
h = h_temp;
t = t_temp;
if(blynkState==1){
lcd.setCursor(10,0);
lcd.print(t,1);
lcd.write(0);
lcd.print("C ");
lcd.setCursor(10,1);
lcd.print(h,0);
lcd.print("%");
}
Serial.print("Nhiệt độ: "); Serial.println(t);
Serial.print("Độ ẩm: "); Serial.println(h);
}
}
void updateBlynk(){
if (led.getValue()) {
led.off();
} else {
led.on();
}
Blynk.virtualWrite(V1,t);
Blynk.virtualWrite(V2,h);
}