You are on page 1of 17

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

TIỂU LUẬN KẾT THÚC HỌC PHẦN


IOT VÀ ỨNG DỤNG

Họ và tên: Đỗ Minh Đức


Mã sinh viên: B19DCCN188
Lớp: D19CNPM04
Số điện thoại: 09414131492
Giảng viên hướng dẫn: Nguyễn Tài Tuyên

Hà Nội – 2022

Mục lục
1. Giới thiệu................................................................................................................. 3
1.1. Hỏa hoạn là gì?.................................................................................................3
1.2. Các yếu tố cấu thành nên 1 đám cháy...............................................................3
1.2.1. Lửa:............................................................................................................3
1.2.2. Khói:...........................................................................................................3
1.2.3. Nhiệt lượng:................................................................................................3
1.3. Thiết bị phù hợp:...............................................................................................4
2. Công cụ - thiết bị.....................................................................................................4
2.1. DHT22 – Cảm biến nhiệt độ và độ ẩm:.............................................................4
2.2. LDR - Photoresistor-sensor – Cảm biến ánh sáng.............................................6
2.3. ESP32 - Bo mạch ESP32..................................................................................8
2.4. Buzzer – Loa.....................................................................................................8
2.5. LED – Đèn LED...............................................................................................9
3. Thư viện...................................................................................................................9
3.1. DHT sensor library for ESPx – để kết nối với LDR sensor...............................9
3.2. Thingspeak – để kết nối với thingspeak............................................................9
4. Cài đặt...................................................................................................................... 9
4.1. Kết nối các linh kiện.........................................................................................9
4.2. Code hệ thống:................................................................................................10
4.2.1. Thư viện:..................................................................................................10
4.2.2. Hằng số:...................................................................................................10
4.2.3. Khởi tạo chương trình...............................................................................11
4.2.4. Hàm lặp – loop().......................................................................................12
5. Kết quả...................................................................................................................13
6. Tổng kết................................................................................................................. 16
7. Tham khảo.............................................................................................................16
7.1. Link bài làm trên wokwi:................................................................................16
7.2. Bài biết tham khảo:.........................................................................................17

2
1. Giới thiệu
1.1. Hỏa hoạn là gì?
Hỏa hoạn là hiểm họa do lửa gây ra. Hỏa hoạn là thuật ngữ để chỉ một đám
cháy lớn thiêu đốt phá hủy tài sản (cháy nhà và công trình xây dựng), đe dọa
đến sức khỏe và cuộc sống của con người, sự sống động vật và thiêu đốt
thảm thực vật (cháy rừng). Một trận hỏa hoạn có thể do tự nhiên gây ra
bởi thiên tai (như núi lửa phun, sét đánh gây cháy rừng; động đất gây chập điện,
nổ khí ga), hay do con người vô tình hay cố ý tạo ra (đốt cháy).

1.2. Các yếu tố cấu thành nên 1 đám cháy


1.2.1. Lửa:
Lửa (Tiếng Anh: fire) là quá trình oxy hóa nhanh chóng của một vật liệu
trong phản ứng cháy, giải phóng ra nhiệt, ánh sáng, và các sản phẩm phản ứng
khác; trong đó các chất kết hợp với oxy từ không khí thường phát ra ánh
sáng, nhiệt và khói.[1] Các quá trình oxy hóa chậm hơn không được bao gồm
trong định nghĩa này.

1.2.2. Khói:
Khói là tập hợp các khí và các hạt chất lỏng hoặc chất rắn lơ lửng trong
không khí sinh ra khi một nguyên liệu bị đốt cháy hoặc chưng khô, khô cạn, sau
phản ứng có sinh ra chất khí có màu, kèm theo đó là một lượng không khí bị
cuốn theo và trộn lẫn vào các phần tử đó.

1.2.3. Nhiệt lượng:


Nhiệt lượng từ các đám cháy bùng lên là rất lớn tập trung lại ở phần trung
tâm ngọn lửa. Nhiệt lượng càng cao quá trình giải phóng và phát sinh các
hạt photon càng cao và như vậy, ánh sáng phát ra từ ngọn lửa cũng càng
lớn
1.3. Thiết bị phù hợp:
Với những yếu tố trên, để nhận biết một đám cháy, một vụ hỏa hoạn, trong

3
phạm vi nhỏ hẹp của công sở hoặc nhà dân, chúng ta có thể sử dụng các thiết bị
nhận biết độ ẩm, nhiệt độ, ánh sáng để thu thập dữ liệu từ môi trường xung
quanh và báo cáo lại cho người quản lý thông qua thiết bị di động.

2. Công cụ - thiết bị
2.1. DHT22 – Cảm biến nhiệt độ và độ ẩm:

Cảm biến DHT22 là cảm biến nhiệt độ và độ ẩm, sử dụng 2 thiết bị cảm biến là
nhiệt điện trở và cảm biến độ ẩm, cảm biến độ ẩm có cấu tạo như sau:

4
Khi dòng khí chứa hơi nước tiếp xúc với bề mặt của cảm biến sẽ làm điện dung
trên cảm biến thay đổi và truyền về dưới dạng tín hiệu điện, máy tính hoặc thiết bị tiếp
nhận sẽ nhận tín hiệu và chuyển thành số đo nhiệt độ với độ chính xác khá cao.
Cảm biến nhiệt điện trở có cấu tạo như sau:

Dựa vào sự thay đổi của chất dẫn điện khi nhiệt độ thay đổi để do và tính toán
được nhiệt độ hiện tại của môi trường xung quanh.

5
Các chân kết nối của DHT22 gồm có:

2.2. LDR - Photoresistor-sensor – Cảm biến ánh sáng

Cảm biến anh sáng hoạt động dựa trên một quang trở có nhiệm vụ tạo ra điện
trở biến thiên tùy thuộc vào cường độ sáng của nguồn sáng. Quang trở có các giá trị và
tham số như sau:

6
Các chân kết nối của LDR gồm có:

7
Vì chúng ta cần sử dụng LDR để đo đạc và gửi thông tin theo thời gian thực và
thông tin cần hiển thị dưới dạng đồ thị nên trong bo mạch chúng ta sẽ sử dụng chân AO
(Analog Output) để truyền thông tin ra ngoài.

2.3. ESP32 - Bo mạch ESP32

Bo mạch ESP32 có thể được coi như một chiếc máy tính mini có thể kết nối với
các cảm biến, các thiết bị ngoại vi,… có thể tính toán và xử lý các công việc
IOT một cách nhẹ nhàng, có nhiều ứng dụng và tương thích với nhiều phần
cứng.

2.4. Buzzer – Loa

Có chức năng báo động khi có lệnh từ máy tính truyền xuống.

8
2.5. LED – Đèn LED

Phát tín hiệu cảnh báo ánh sáng.

3. Thư viện
3.1. DHT sensor library for ESPx – để kết nối với LDR sensor.
3.2. Thingspeak – để kết nối với thingspeak.

4. Cài đặt
4.1. Kết nối các linh kiện

Tại sao lại kết nối như trên:

9
- Các thành phần như DHT22, LED, Buzzer có thể tùy biến kết nối.
- Riêng LDR sensor phải kết nối với cổng 32 vì vấn đề về kĩ thuật. Khi ESP
kết nối với wifi và truyền tin thì nguồn điện năng của cả hệ thống sẽ bị gián
đoạn đôi chút ở các cổng khác. Và như thế LDR không thể truyền tin đến
cổng AO, khiến cho các thông tin nhận về chỉ là 0.

4.2. Code hệ thống:


4.2.1. Thư viện:

#include "DHTesp.h"
#include <WiFi.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "ThingSpeak.h"
4.2.2. Hằng số:

const int DHT_PIN = 15; // cổng dữ liệu của DHT


const int LDR_PIN = 32;// cổng dữ liệu của LDR
const int LED_PIN = 27;// cổng dữ liệu của LED
const int BUZZER_PIN = 26;// cổng dữ liệu của loa
const float GAMMA = 0.7; // hằng số log(R)/log(lux)
const float RL10 = 50;// hằng số điện trở của LDR khi có cường độ
sáng lux = 10
const long CHANEL_NUMBER = 1980130; // kênh number của
thingspeak

10
const char *API_KEY = "9ZZIIK4TZ3DXQ7Y4"; // API_KEY
4.2.3. Khởi tạo chương trình
WiFiClient client;
DHTesp dhtSensor;

void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
/* kết nối với wifi ở nhà hoặc ở một nơi nào đó ta sử dụng
*WiFi.begin(“tên wifi”, “mật khẩu”);
*/
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
ThingSpeak.begin(client);
}

Ở hàm trên, ta khởi tạo các biến và các giá trị kết nối WIFI, kết nối
Thingspeak. Vì sử dụng wokwi làm demo nên wifi có kết nối như trên. Khi đã
kết nối được với wifi thì chương trình sẽ chuyển qua hàm loop().

11
4.2.4. Hàm lặp – loop()

void loop() {
//đọc các giá trị về nhiệt độ và độ ẩm.
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float temprature = data.temperature;
float humidity = data.humidity;
// đọc các giá trị về mức sáng
float analogValue = analogRead(LDR_PIN) / 4;
Serial.println(analogValue);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1
/ GAMMA));
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("lux: " + String(lux,0) + "LM");
Serial.println(getLight(lux));
Serial.println("---");
int isFire = 0;
if(temprature > 60 && humidity > 55 && lux > 1500) {
isFire = 1;
digitalWrite(LED_PIN, HIGH);
tone(BUZZER_PIN, 31);
delay(100);
digitalWrite(LED_PIN, LOW);
} else {

12
isFire = 0;
tone(BUZZER_PIN, 0);
digitalWrite(LED_PIN, LOW);
}
// gửi các thông tin đến thingspeak
ThingSpeak.setField(1, humidity);
ThingSpeak.setField(2, temprature);
ThingSpeak.setField(3, lux);
ThingSpeak.setField(4, isFire(humidity, temprature, lux));
ThingSpeak.writeFields(CHANEL_NUMBER, API_KEY);
delay(1000);
}

Hàm lặp làm các nhiệm vụ chính như sau:

o Đọc các giá trị về nhiệt độ và độ ẩm của DTH gửi về và lưu vào biến.
o Đọc giá trị analog của LDR gửi về và chuyển giá trị đó thành cường
độ sáng.
o Nếu các giá trị về nhiệt độ và độ ẩm, ánh sáng tương ứng với mức
cảnh báo cháy thì còi báo động và đèn tín hiệu sẽ được bật lên. Và
ngược lại.
o Cài đặt các giá trị vào các bảng tương ứng trên thingspeak và gửi đi.

5. Kết quả
Chạy demo:

13
14
Với các thông số cài đặt để phù hợp với điều kiện cháy về nhiệt độ và độ ẩm và
ánh sáng, còi đã kêu và đèn nhấp nháy.

Thống kê được gửi về thingspeak:

15
6. Tổng kết

Như vậy hệ thống nhận diện hỏa hoạn được thiết kế đơn giản với những module cảm
biến và máy tính điều khiển, sử dụng cho mục đích dân dụng. Tuy nhiên hệ thống còn
nhiều hạn chế, chưa thể tự động nhận diện chính xác ngọn lửa hoặc đám cháy ngay lập
tức. Hệ thống chỉ mang tính chất cảnh báo cho con người về sự thay đổi đột ngột của
môi trường và có khả năng đó là một đám cháy để con người có những phương án xử
lý cũng như phản ứng kịp thời nếu đó là một đám cháy thật.
Với hạn chế như vậy, hệ thống chỉ phù hợp trong những khu vực nhỏ, như nhà riêng,
phòng nhỏ và phải tích hợp thêm cả hệ thống Computer Vision, Deep Leaning,
Mechine Learning để nhận diện đám cháy hiệu quả và chính xác nhất.

7. Tham khảo
7.1. Link bài làm trên wokwi:
https://wokwi.com/projects/350863393483129426

16
7.2. Bài biết tham khảo:
https://docs.wokwi.com/parts/wokwi-photoresistor-sensor
https://docs.wokwi.com/parts/wokwi-dht22
Conflict Between Wifi & analogRead()? · Issue #102 · espressif/arduino-esp32
· GitHub

17

You might also like