Professional Documents
Culture Documents
BTL Co Cau Đã Fix
BTL Co Cau Đã Fix
ĐỀ TÀI: CẢNH BÁO CHÁY SỬ DỤNG CẢM BIẾN LỬA, CẢM BIẾN
NHIỆT ĐỘ, ĐỘ ẨM, ESP32
2
1. Đánh giá hiệu năng sử dụng của mạch...............................................................18
1.1 Cảm biến nhiệt độ độ ẩm DHT11...........................................................18
1.2 Cảm biến lửa............................................................................................18
1.3 Khắc phục................................................................................................18
2. Kết luận.............................................................................................................18
3. Ứng dụng..........................................................................................................19
Tài liệu tham khảo................................................................................................20
3
LỜI NÓI ĐẦU
Trong thời đại công nghệ ngày nay, việc sử dụng các thiết bị thông minh để
đo nhiệt độ, độ ẩm và phát hiện lửa là điều không còn xa lạ, cùng với những vấn
đề về phòng cháy chữa cháy đang vô cùng nhức nhố . Trong môn học “ Cảm
biến và cơ cấu chấp hành”, nhóm em xin được trình bày với chủ để “Hệ thống
cảnh báo cháy ”.
Nhóm em xin được phép giới thiệu về cảm biến nhiệt độ, độ ẩm và cảm
biến lửa, LCD16x2, còi và cách sử dụng ESP32 để thiết kế mạch cảnh báo cháy.
Trong bài cũng đưa ra các ứng dụng thực tiễn của hệ thống này và những lợi ích
mà nó mang lại.
Ngoài ra, trong bài tập lớn này, nhóm em cũng sẽ trình bày về quá trình
thực hiện dự án và các vấn đề mà nhóm em gặp phải trong quá trình thiết kế và
lắp đặt mạch cảnh báo cháy. Nhóm em sẽ chia sẻ kinh nghiệm và hướng dẫn
cách khắc phục các vấn đề này.
Xin trân thành cảm ơn sự quan tâm và tham gia của các bạn trong nhóm và
thầy Hiếu đã giúp nhóm em có cơ hội được thực hiện đề tài này. Mong rằng chủ
đề này sẽ mang lại cho người đọc nhiều kiến thức bổ ích.
4
CHƯƠNG 1: CÁC LINH KIỆN CẦN THIẾT CHO DỰ ÁN
Tên linh kiện Số lượng
Module ESP32 Wroom32 1
Module cảm biến nhiệt độ, độ ẩm 1
DHT11
Module cảm biến lửa 1
Còi chíp 1
Màn hình LCD16x2 1
Bảng 1: Các linh kiện cần thiết
ESP32 là 1 chip kết nối kết hợp Wi-Fi và Bluetooth 2,4 GHz duy nhất được kết
kế với công suất cực thấp 40nm TSMC công nghệ. Sản phẩm của công ty Espressif
Systems, được phát triển từ ESP8266. Nó được thiết kế để đạt được công suất RF tốt
nhất, thể hiện sự mạnh mẽ, linh hoạt và độ tin cậy trong nhiều ứng dụng và tình huống
nguồn điện.
ESP32 được thiết kế cho các ứng dụng di động, thiết bị điện tử đeo được và IoT.
Nó có tất cả các đặc tính tiên tiến của các chip năng lượng thấp, bao gồm cổng xung
nhịp chi tiết, nhiều chế độ năng lượng và chia tỉ lệ công suất động. Trong ứng dụng
trung tâm cảm biến IoT công suất thấp, ESP32 được đánh thức định kì và chỉ khi phát
hiện được một điều kiện cụ thể. Chu kì hoạt động thấp để giảm thiểu năng lượng mà
chip tiêu thụ.
ESP32 là một giải pháp tích hợp cao dành cho các ứng dụng IoT và bluetooth.
5
Hình 1: Vi điều khiển ESP32
1.1 Sơ đồ khối
- Sử dụng bộ vi xử lý Tensilica Xtensa LX6 ở cả 2 biến thế lõi kép và lõi đơn
- Công tắc antenna tích hợp
- RF balun
- Bộ khuếch đại công suât
- Bộ lọc và module quản lí năng lượng
1.3 Các tính năng chính
Cảm biến nhiệt độ độ ẩm DHT11 là cảm biến thông dụng nhất hiện nay vì chi phí
rẻ và rất dễ lấy dữ liệu thông qua giao tiếp onewire. Bộ tiền xử lí tín hiệu tích hợp
trong cảm biến giúp bạn có được giữ liệu chính xác mà không phải qua bất kỳ tính
7
toán nào. So với cảm biến đời mới hơn là DHT22 thì DHT11 cho khoảng đo và độ
chính xác kém hơn rất nhiều.
DHT11 là một loại cảm biến kỹ thuật số giá rẻ để cảm nhận nhiệt độ và độ ẩm.
Cảm biến này có thể dễ dàng giao tiếp với bất kì vi điều khiển nào như ESP32,
Arduino, STM32,… để đo độ ẩm và nhiệt độ ngay lập tức.
DHT11 là một cảm biến nhiệt độ độ ẩm tương đối. Để đo không khí xung quanh,
cảm biến này sử dụng một điện trở nhiệt và một cảm biến độ ẩm điện dung.
2.2 Cấu tạo của biến nhiệt độ, độ ẩm DHT11
Cảm biến DHT11 bao gồm một phần tử cảm biến độ ẩm điện dung và một điện
trở nhiệt để cảm nhận nhiệt độ. Tụ điện cảm biến độ ẩm có hai điện cực với chất nền
giữ ẩm làm chất điên môi giữa chúng thay đổi giá trị điện dung xảy ra với sự thay đổi
các mức độ ẩm. IC đo, xử lý các giá trị điện trở đã thay đổi này và chuyển chúng thành
dạng kỹ thuật số.
Để đo nhiệt độ, cảm biến này sử dụng một nhiệt điện trở có hệ số nhiệt độ âm,
làm giảm giá trị điện trở của nó khi nhiệt độ tăng. Để có được giá trị điện trở lớn hơn
ngay cả đối với sự thay đổi nhỏ nhất của điện trở, cảm biến này thường được làm bằng
gốm bán dẫn hoặc polymer.
2.3 Thông số kĩ thuật
8
3. Module cảm biến lửa
Cảm biến phát hiện lửa (flame sensor) thường được sử dụng cho các ứng dụng
phát hiện lửa như: xe robot chữa cháy, cảm biến lửa,... Tầm phát hiện của cảm biến
trong khoảng 80cm, góc quét là 60 độ, có thể phát hiện lửa tốt nhất là loại có bước
sóng từ 760nm - 1100nm.
Cảm biến phát hiện lửa (flame sensor) có hai ngõ ra tín hiệu là Digital và Analog
rất dễ dử dụng.
Khả năng phát hiện lửa hoặc nguồn sáng có bước sóng tương tự.
Sử dụng cảm biến hồng ngoại YG1006 với tốc độ đáp ứng nhanh và độ nhạy cao.
Tích hợp IC LM393 để chuyển đổi ADC, tạo 2 ngõ ra cả số và tương tự, rất linh
động trong việc sử dụng.
Biến trở để tùy chỉnh độ nhạy cảm biến.
9
3.3 Nguyên lí hoạt động
Màn hình LCD 16x2 là một linh kiện được sử dụng rộng rãi trong các dự án và
lập trình.
Thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều
các ứng dụng của vi điều khiển. LCD có rất nhiều ưu điểm so với các dạng hiển thị
khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ
dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài
nguyên hệ thống và giá thành rẽ …
Màn hình LCD 16x2 là một hiển thị ký tự phổ biến trong các ứng dụng nhúng
và các dự án điện tử. “16x2” chỉ đơn giản là miêu tả kích thước của màn hình, với 16
cột và 2 dòng kí tự.
Chân Kí hiệu Mô tả
1 VSS Chân nối đất cho LCD, khi thiết kế mạch ta nối chân
này với GND của mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân
này với VCC=5V của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của LCD.
4 RS Chân chọn thanh ghi (Register select). Nối chân RS với
logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh
ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh
IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ
đếm địa chỉ của LCD (ở chế độ “đọc” - read)
11
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
DR bên trong LCD.
7-14 DB0-DB7 Tám đường của bus dữ liệu dùng để trao đổi thông tin
với MPU. Có 2 chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường,
với bit MSB là bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ
DB4 tới DB7, bit MSB là DB7
- Điện áp MAX : 7V
- Điện áp MIN : - 0,3V
- Hoạt động ổn định : 2.7-5.5V
- Điện áp ra mức cao : > 2.4
- Điện áp ra mức thấp : <0.4V
- Dòng điện cấp nguồn : 350uA - 600uA
- Nhiệt độ hoạt động : - 30 - 75 độ C
12
4.4 Giao tiếp I2C
I2C ( Inter – Integrated Circuit) là 1 giao thức giao tiếp nối tiếp đồng bộ được
phát triển bởi Philips Semiconductors, sử dụng để truyền nhận dữ liệu giữa các IC với
nhau chỉ sử dụng hai đường truyền tín hiệu.
Các bit dữ liệu sẽ được truyền từng bit một theo các khoảng thời gian đều đặn
được thiết lập bởi 1 tín hiệu đồng hồ.
Bus I2C thường được sử dụng để giao tiếp ngoại vi cho rất nhiều loại IC khác
nhau như các loại vi điều khiển, cảm biến, EEPROM, … .
Cấu tạo
I2C sử dụng 2 đường truyền tín hiệu:
SCL - Serial Clock Line : Tạo xung nhịp đồng hồ do Master phát đi
SDA - Serial Data Line : Đường truyền nhận dữ liệu.
13
Master và Slave được kết nối với nhau như hình trên. Hai đường bus SCL và
SDA đều hoạt động ở chế độ Open Drain, nghĩa là bất cứ thiết bị nào kết nối với mạng
I2C này cũng chỉ có thể kéo 2 đường bus này xuống mức thấp (LOW), nhưng lại
không thể kéo được lên mức cao. Vì để tránh trường hợp bus vừa bị 1 thiết bị kéo lên
mức cao vừa bị 1 thiết bị khác kéo xuống mức thấp gây hiện tượng ngắn mạch. Do đó
cần có 1 điện trờ ( từ 1 – 4,7 kΩ) để giữ mặc định ở mức cao.
Bit Read/Write:
Bit này dùng để xác định quá trình là truyền hay nhận dữ liệu từ thiết bị Master.
Nếu Master gửi dữ liệu đi thì ứng với bit này bằng ‘0’, và ngược lại, nhận dữ liệu khi
bit này bằng ‘1’.
Bit ACK/NACK:
Viết tắt của Acknowledged / Not Acknowledged. Dùng để so sánh bit địa chỉ vật
lý của thiết bị so với địa chỉ được gửi tới. Nếu trùng thì Slave sẽ được đặt bằng ‘0’ và
ngược lại, nếu không thì mặc định bằng ‘1’.
14
Hình 8: Quá trình truyền nhận dữ liệu
Bắt đầu: Thiết bị Master sẽ gửi đi 1 xung start bằng cách kéo xuống lần lượt các
đường SDA, SCL từ mức 1 xuống mức 0.
Tiếp theo đó, Master gửi đi 7 bit địa chỉ tới Slave muốn giao tiếp cùng với bit
Read/Write
Slave sẽ so sánh địa chỉ vật lí với địa chỉ vừa được gửi tới. Nếu trùng khớp, Slave
sẽ xác nhận bằng cách kéo đường SDA xuống 0 và set bit ACK/NACK bằng ‘0’. Nếu
không trùng thì SDA và bit ACK/NACK đều mặc định bằng ‘1’.
Thiết bị Master sẽ gửi hoặc nhận khung bit dữ liệu. Nếu Master gửi đến Slave thì
bit Read/Write ở mức 0. Ngược lại nếu nhận được bit này ở mức 1.
Nếu như khung dữ liệu đã được truyền đi thành công, bit ACK/NACK được set
thành mức 0 để báo hiệu cho Master tiếp tục.
Sau khi tất cả dữ liệu được gửi đến Slave thành công, Master sẽ phát 1 tín hiệu
Stop để báo cho các Slave biết quá trình truyền đã kết thúc bằng các chuyển lần lượt
SCL, SDA từ mức 0 lên mức 1.
Các chế độ hoạt động của I2C
- Chế độ chuẩn (Standard mode) với tốc độ 100kBit/s.
- Chế độ tốc độ thấp (Low speed mode) với tốc độ 10kBit/s.
15
5. Còi chíp
16
Hình 10: Lưu đồ thuật toán
Hệ thống sử dụng 2 loại cảm biến là cảm biến nhiệt độ, độ ẩm DHT11 và cảm
biến phát hiện lửa. Cảm biến nhiệt độ độ ẩm sẽ thu thập thông tin từ môi trường xung
quanh và gửi đến ESP32 rồi hiển thị lên màn hình LCD, nếu nhiệt độ vượt ngưỡng cho
phép và có nguy cơ cháy nổ cao sẽ cảnh báo cháy bằng tiếng tít tít của còi chíp hoặc là
nếu cảm biến lửa phát hiện thấy tia lửa điện thì cũng sẽ kích hoạt còi kêu.
17
Hình 11 : Mạch hoàn chỉnh
3. Code
1. #include <Wire.h>
2. #include <LiquidCrystal_I2C.h>
3. #include <DHT.h>
4.
5. #define fire 5
6. #define DHTPIN 4
7. #define DHTTYPE DHT11
8. #define BUZZER_PIN 19
9.
10. DHT dht(DHTPIN, DHTTYPE);
11. LiquidCrystal_I2C lcd(0x27, 16, 2);
12.
18
13. void setup() {
14. Serial.begin(9600);
15. dht.begin();
16. pinMode(BUZZER_PIN, OUTPUT);
17. lcd.init();
18. lcd.backlight();
19. lcd.setCursor(0, 0);
20. lcd.print("Temperature: C");
21. lcd.setCursor(0, 1);
22. lcd.print("Humidity: %");
23. pinMode(fire,INPUT);
24. }
25.
26. void loop() {
27. float temperature = dht.readTemperature();
28. float humidity = dht.readHumidity();
29. float firesen = digitalRead(fire);
30. lcd.setCursor(12, 0);
31. lcd.print(temperature);
32. lcd.setCursor(12, 1);
33. lcd.print(humidity);
34. while(temperature > 35 || firesen == 0)
35. {
36. lcd.setCursor(0,0);
37. lcd.print("canh bao chay!!!");
38. lcd.setCursor(0,1);
39. lcd.print(" ");
40. digitalWrite(BUZZER_PIN,HIGH);
41. }
42. delay(200);
43. }
Hệ thống báo cháy với sự linh hoạt của ESP32 cho phép tích hợp nhiều chức
năng mà không làm suy giảm hiệu suất chung. Khả năng kết nối không dây qua Wi-Fi
và Bluetooth làm cho việc truyền thông dữ liệu trở nên thuận tiện. Giá thành hợp lý
19
của ESP32 giúp giảm chi phí xây dựng hệ thống. Đồng thời, khả năng đa nhiệm của nó
cũng là điểm mạnh, cho phép hệ thống thích ứng và mở rộng chức năng dễ dàng.
Tuy nhiên, hệ thống không tránh khỏi nhược điểm. Độ tin cậy của cảm biến phát
hiện lửa và DHT11 có thể gặp khó khăn trong việc cung cấp thông tin chính xác, và
đôi khi có thể phát ra thông báo không đúng. Tiêu tốn năng lượng cao, đặc biệt là khi
sử dụng kết nối Wi-Fi, có thể là một thách thức đối với việc duy trì hệ thống trong thời
gian dài. Khả năng chống nhiễu cũng là một vấn đề, đặc biệt khi hoạt động trong môi
trường có nhiều tác nhân gây nhiễu
1.1 Cảm biến nhiệt độ độ ẩm DHT11
- Trong quá trình mô phỏng mạch , cảm biến DHT11 thu thập các thông số về
nhiệt độ độ ẩm từ môi trường xung quanh và gửi đến ESP 32 , các thông số này lại
chưa thực sự chính xác như dữ liệu nhiệt độ từ môi trường là 25 độ thì cảm biến lại thu
về mức nhiệt là 29-30 độ hay về độ ẩm cũng tương tự.
1.2 Cảm biến lửa
- Cảm biến lửa sử dụng bước sóng để phát hiện lửa nên việc sử dụng ở những
nơi có nhiều loại ánh sáng có bước sóng khác nhau có thể gây nhiễu sáng dẫn đến hiệu
quả cảm biến sẽ không cao .
1.3 Khắc phục
- Để khắc phục các vấn đề trên , ta có thể thay thế những loại cảm biến có chất
lượng tốt hơn
- Kết hợp nhiều cảm biến để có những thông số chính xác hơn .
2. Kết luận
- Hệ thống báo cháy sử dụng cảm biến phát hiện lửa và DHT11 kết nối với
ESP32 mang lại nhiều ưu điểm. Sự linh hoạt của ESP32 cho phép tích hợp nhiều chức
năng mà không làm suy giảm hiệu suất chung. Tuy vậy , hệ thống vẫn chưa thực sự
hoàn thiện khi vẫn còn tồn tại nhiều nhược điểm về độ chính xác và ổn định từ các
cảm biến nhiệt độ độ ẩm hay cảm biến lửa .
3. Ứng dụng
- Hệ thống có thể ứng dụng cho các tòa chung cư hay với các hộ gia đình , nhà
hàng , các khu xí nghiệp ,......
- Với nhu cầu về phòng cháy chữa cháy , hệ thống này có thể phát triển trong
tương lai bằng các thay thế sử dụng các linh kiện chất lượng hơn . Sử dụng các thuật
toán khác chuyên sâu hơn để có thể nâng cao độ hiệu quả trong việc phát hiện và cảnh
báo kịp thời nguy cháy nổ .
20
Tài liệu tham khảo
https://mecsu.vn/ho-tro-ky-thuat/dht11-cam-bien-nhiet-do-va-do-am.0j8
https://hshop.vn/products/cam-bien-phat-hien-lua
https://deviot.vn/tutorials/esp32.66047996/tong-quan-ve-esp32.18482631
https://kme.com.vn/blogs/news/tong-quan-lcd1602-va-giao-tiep-i2c-lcd-su-
dung-arduino
21
22