You are on page 1of 7

#define BLYNK_TEMPLATE_ID "TMPL6Q_PcpbUk"

#define BLYNK_TEMPLATE_NAME "Đồ án nhập môn kỹ thuật nhóm 5"

#define BLYNK_AUTH_TOKEN "gZwrzxdlRWYTgECRH-PTMrGSYgjVhYZY"

// -----------INCLUDE THƯ VIỆN CHO CHƯƠNG TRÌNH--------------------------

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

#include <DHT.h>

#include <Servo.h>

//----------------------------------ID đồ án-----------------------------

#define BLYNK_TEMPLATE_ID "TMPL6Q_PcpbUk"

#define BLYNK_TEMPLATE_NAME "Đồ án nhập môn kỹ thuật nhóm 5"

#define BLYNK_AUTH_TOKEN "gZwrzxdlRWYTgECRH-PTMrGSYgjVhYZY"

//--------------Chân cảm biến---Quạt---Đèn---Cửa---Loa----------------------

#define DHTPIN 5 //D1

#define cambienlua 4 //D2

#define relay 0 //D3 là chân kết nối cho relay thứ 1


#define cambienkhiga 2 //D4

#define den1 14 //D5

#define den2 12 //D6

#define den3 13 //D7

#define cuanha 15 //D8

#define DHTTYPE DHT22 // loại cảm biến nhiệt độ ,độ ẩm

#define buzzer 3 //Rx là chân kết nối cho relay thứ 2


//-------------------------------------------------------------------------------

int giatricambienkhiga;

int giatricambienlua;

DHT dht(DHTPIN, DHTTYPE);

BlynkTimer timer;

Servo myServo;

WidgetLED led1(V0);
-
//-----------------ID WIFI VÀ TOKEN KẾT NỐI VỚI BLYNK----------------------------

char auth[] = "gZwrzxdlRWYTgECRH-PTMrGSYgjVhYZY";

char ssid[] = "NNKP";

char pass[] = "phuquy9705";

//----------------LED kết nối tín hiệu Board-------------------------------------

void sendSensor()

if (led1.getValue()) {
led1.off();

} else {

led1.on();

// -----------------SETUP-----------------------------

void setup()

//--------------------------------Setup------------------------------------------

Serial.begin(9600);

Blynk.begin(auth, ssid, pass);

dht.begin();

timer.setInterval(1000L, sendSensor);

myServo.attach(cuanha);

//----------------------------------Set chân cho ESP8266-------------------------


pinMode(buzzer,OUTPUT);

pinMode(D0,OUTPUT);

pinMode(cuanha,OUTPUT);

pinMode(relay,OUTPUT);

pinMode(den1,OUTPUT);
pinMode(den2,OUTPUT);

pinMode(den3,OUTPUT);

pinMode(cambienkhiga,INPUT);

//-------------!!-------VÒNG LẶP-----------------------!!------------------------

void loop()

Blynk.run();

timer.run();
//-----------------------Cảm biến nhiệt độ DHT22---------------------------------

float h = dht.readHumidity(); //Đọc độ ẩm

float t = dht.readTemperature(); //Đọc nhiệt độ

delay(1000);

Serial.print("Nhiet do: ");

Serial.println(t); //Xuất nhiệt độ

Serial.print("Do am: ");

Serial.println(h); //Xuất độ ẩm

Serial.println(); //Xuống hàng

Blynk.virtualWrite(V2, h); // in độ ẩm lên Blynk

Blynk.virtualWrite(V1, t); // in nhiệt độ lên Blynk


//----------------------------Cảm biến khí gaz-khói----------------------------
/*Nguyên lý : nếu tín hiệu digital từ cảm biến trả về là 0 (có khí gaz trong
không khí) thì đồng thời cùng lúc xuất hiện cảnh báo trên Blynk,(đèn báo
động,còi,quạt thông gió) bật
,cửa nhà tự động mở.*/

giatricambienkhiga = digitalRead(cambienkhiga);

if(giatricambienkhiga == 0){

Blynk.virtualWrite(V5,"!!!CẢNH BÁO CÓ KHÍ GAZ-CÓ CHÁY!!!");

myServo.write(0); //cửa mở

digitalWrite(den1,HIGH);

digitalWrite(den2,HIGH);

digitalWrite(den3,HIGH);

digitalWrite(relay,HIGH);

digitalWrite(buzzer,HIGH);

delay(5000);

if(giatricambienkhiga !=0){

Blynk.virtualWrite(V5,"An toàn-Không có khí gaz!!");

myServo.write(180); //cửa đóng

digitalWrite(den1,LOW);

digitalWrite(den2,LOW);

digitalWrite(den3,LOW);

digitalWrite(buzzer,LOW);

digitalWrite(relay,LOW);

}
//-----------------------Cảm biến lửa--------------------------------------------
/*Nguyên lý : nếu tín hiệu digital từ cảm biến trả về là 0 (phát hiện lửa) thì
đồng thời cùng lúc xuất hiện cảnh báo trên Blynk,(đèn báo động,còi,quạt thông
gió) bật
,cửa nhà tự động mở.*/
/* Có thể phát hiện lửa tốt nhất
là loại có bước sóng từ 760nm – 1100nm.
*/
giatricambienlua = digitalRead(cambienlua);

if(giatricambienlua == 0){

Blynk.virtualWrite(V4,"!!!CẢNH BÁO CÓ CHÁY!!!");

myServo.write(0); //cửa mở

digitalWrite(den1,HIGH);

digitalWrite(den2,HIGH);

digitalWrite(den3,HIGH);

digitalWrite(buzzer,HIGH);

digitalWrite(relay,HIGH);

delay(5000);

if(giatricambienlua != 0){

Blynk.virtualWrite(V4,"An toàn không phát hiện lửa!!");

myServo.write(180); //cửa đóng

digitalWrite(den1,LOW);

digitalWrite(den2,LOW);

digitalWrite(den3,LOW);

digitalWrite(buzzer,LOW);
digitalWrite(relay,LOW);

}
}

You might also like