Các hệ thống này cũng được tích hợp với các công nghệ thông tin hiện đại như điện thoại, Internet để nhanh chóng thông báo cho các cơ quan chức năng khi cần thiết.. MỤC TIÊU Mục tiêu c
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ, VIỄN THÔNG
GVHD: NGUYỄN NGÔ LÂM SVTH: THÁI HOÀNG GIANG
TRẦN VĂN TRƯỜNG
TP Hồ Chí Minh, tháng 7/2024THIẾT KẾ VÀ THI CÔNG HỆ THỐNG
PHÒNG CHÁY CHỮA CHÁY CHO CHUNG CƯ
Trang 2KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG PHÒNG
GVHD: ThS Nguyễn Ngô Lâm SVTH: Thái Hoàng Giang MSSV: 20161091
SVTH: Trần Văn Trường MSSV: 20161390
TP Hồ Chí Minh – 7/2024
Trang 3KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
-
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG
ĐỀ TÀI:
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG PHÒNG
CHÁY CHỮA CHÁY CHO CHUNG CƯ
GVHD: ThS Nguyễn Ngô Lâm SVTH: Thái Hoàng Giang MSSV: 20161091
SVTH: Trần Văn Trường MSSV: 20161390
Tp Hồ Chí Minh – 7/2024
Trang 4BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Tp HCM, ngày 17 tháng 6 năm 2024
NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP
Họ tên sinh viên: Thái Hoàng Giang MSSV: 20161091
Trần Văn Trường MSSV: 20161390 Chuyên ngành: Điện tử công nghiệp Mã ngành: 61
Hệ đào tạo: Đại học chính quy Mã hệ: 1
I TÊN ĐỀ TÀI: Thiết Kế Và Thi Công Hệ Thống Phòng Cháy Chữa Cháy Cho Chung Cư
II NHIỆM VỤ
1 Các số liệu ban đầu:
+ Ôn tập lại kiến thức các môn học mạch điện, điện tử cơ bản, vi xử lý
+ Lập trình vi điều khiển, lập trình ứng dụng
2 Nội dung thực hiện:
+ Nội dung 1: Nghiên cứu một hệ thống báo cháy thực tế
+ Nội dung 2: Tìm hiểu lý thuyết có liên quan
+ Nội dung 3: Thiết kế phần cứng và mô hình
+ Nội dung 4: Thiết kế phần mềm, viết chương trình cho hệ thống
+ Nội dung 5: Chạy thử và kiểm tra lỗi
+ Nội dung 6: Đánh giá kết quả thực hiện
III NGÀY GIAO NHIỆM VỤ: 19/02/2024
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 17/06/2024
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Nguyễn Ngô Lâm
GIẢNG VIÊN HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 5BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Tp HCM, ngày 17 tháng 6 năm 2024
LỊCH TRÌNH THỰC HIỆN KHÓA LUẬN TỐT NGHIỆP
Họ tên sinh viên 1: Thái Hoàng Giang
Lớp: 20161ĐTCN1 MSSV: 20161091
Họ tên sinh viên 2: Trần Văn Trường
Lớp: 20161ĐTCN1 MSSV: 20161390
Tên đề tài: Thiết kế và thi công hệ thống phòng cháy chữa cháy cho chung cư
Trang 6Chúng tôi, Thái Hoàng Giang và Trần Văn Trường, xin khẳng định rằng đề tài này được hoàn thành dựa trên các tài liệu tham khảo và sự hướng dẫn của giảng viên Nguyễn Ngô Lâm Chúng tôi cam kết rằng tất cả nội dung trong đề tài là kết quả của quá trình nghiên cứu và làm việc của chúng tôi, không sao chép từ bất kỳ nguồn tài liệu hay công trình nào đã có trước đây
Người thực hiện đề tài
Thái Hoàng Giang
Trần Văn Trường
Trang 7Xin chân thành cảm ơn Ban Giám Hiệu nhà trường đã tạo điều kiện cho nhóm em thực hiện đề tài
Cảm ơn bạn bè và thầy cô trong khoa Điện- điện tử đã hỗ trợ nhóm em trong thời gian thực hiện đồ án này
Đặc biệt nhóm em xin gửi lời cảm ơn đến thầy Nguyễn Ngô Lâm đã luôn nhiệt tình
hỗ trợ nhóm em hoàn thành đồ án này
Trong quá trình thực hiện đồ án dù có nhiều cố gắng nhưng không thể tránh những sai sót trong quá trình thực hiện Chúng em mong quý thầy cô góp ý về mặt nội dung cũng như hình thức để nhóm em hoàn thiện đồ án một cách tốt hơn
Nhóm em xin chân thành cảm ơn!
Người thực hiện đề tài
Thái Hoàng Giang Trần Văn Trường
Trang 8Trang bìa i
Nhiệm vụ khóa luận ii
Lịch trình iii
Lời cam đoan iv
Lời cảm ơn v
Mục lục vi
Liệt kê hình vẽ iix
Liệt kê bảng biểu xii
Tóm tắt xiiiv
Chương 1 TỔNG QUAN 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu 1
1.3 Nội dung nghiên cứu 1
1.4 Giới hạn 2
1.5 Bố cục 2
Chương 2: CƠ SỞ LÝ THUYẾT 4
2.1 Tổng quan hệ thống phòng cháy chữa cháy 4
2.1.1 Mô tả hệ thống phòng cháy chữa cháy 4
2.1.2 Chức năng các thiết bị trong hệ thống báo cháy 4
2.2 Các phương thức giao tiếp 5
2.2.1 Phương thức giao tiếp UART 5
2.2.2 Chuẩn giao tiếp I2C 7
2.3 Lý thuyết cơ bản về IoT 7
2.3.1 Giới thiệu 7
Trang 92.4.1 Ngôn ngữ lập trình Java 9
2.4.2 Ưu điểm khi viết app bằng ngôn ngữ Java 10
2.5 Tổng quát về firebase và realtime database 11
2.5.1 Firebase 11
2.5.2 Realtime database 11
2.6 Phần cứng 12
2.6.1 Khối xử lý trung tâm Arduino Mega 2560 12
2.6.2 Module mạch phát âm thanh DFPlayer Mini 18
2.6.3 Dòng chip Wi-Fi ESP32 19
2.6.4 Cảm biến nhiệt độ DS18B20 22
2.6.5 Cảm biến gas MQ-2 25
2.6.6 Cảm biến phát hiện khói MQ-7 27
2.6.7 Cảm biến phát hiện lửa 29
2.6.8 Module LCD 20x4 30
2.6.9 Module I2C cho LCD 32
2.6.10 Mạch xoay KY- 040 33
2.6.11 Module relay 4 kênh 34
2.6.12 AD16-22SM Đèn Còi Báo Màu Đỏ 35
2.6.13 R385 Máy Bơm Nước 12V 1-2L/phút 36
2.6.14 Van điện từ 24V 37
2.7 Phần mềm 38
2.7.1 Arduino IDE 38
2.7.2 Phần mềm Androistudio 39
Chương 3 TÍNH TOÁN VÀ THIẾT KẾ 42
3.1 Giới thiệu 42
Trang 103.2.1 Thiết kế sơ đồ khối hệ thống 42
3.2.2 Tính toán và thiết kế mạch 44
3.2.3 Sơ đồ nguyên lý của toàn mạch 58
Chương 4 THI CÔNG HỆ THỐNG 62
4.1 Giới thiệu 62
4.2 Thi công hệ thống 62
4.2.1 Thi công mạch 62
4.2.2 Lắp ráp và kiểm tra 63
4.3 Đóng gói và thi công mô hình 64
4.3.1 Đóng gói bộ điều khiển 64
4.3.2 Thi công mô hình 64
4.4 Lập trình hệ thống 68
4.4.1 Lưu đồ hoạt động của hệ thống 68
4.4.2 Lưu đồ khối xử lý trung tâm Ardunio Mega 2560 70
4.4.3 Lưu đồ khối xử lý ESP32 71
4.4.4 Lưu đồ xử lý dữ liệu nhận 72
4.4.5 Lưu đồ xử lý dữ liệu trên Firebase 73
4.4.6 Lưu đồ hoạt động của App 74
Chương 5 KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ 76
5.1 Kết quả 76
5.2 Nhận xét 83
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 84
6.1 Kết luận 84
6.2 Hướng phát triển 84
Trang 11Hình Trang
Hình 2.1: Sơ đồ hệ thống phòng cháy chữa cháy căn bản 4
Hình 2.2: Cấu trúc giao tiếp UART 6
Hình 2.3: UART frame 6
Hình 2.4: Mô hình giao tiếp I2C và quá trình truyền 1 bit dữ liệu 7
Hình 2.5: Sơ đồ hệ thống IoT cơ bản 8
Hình 2.6: Hệ thống ứng dụng firebase 11
Hình 2.7: Arduino Mega 2560 13
Hình 2.8: Chip Mega 2560 tương ứng với chân Arduino Mega 2560 15
Hình 2.9: Các chân Arduino Mega 2560 16
Hình 2.10: Module mạch phát âm thanh DFPlayer Mini 18
Hình 2.11: Sơ đồ chân Module mạch phát âm thanh DFPlayer Mini 19
Hình 2.12: Hình ảnh Kit RF thu phát Wifi ESP32 20
Hình 2.13: Sơ đồ chân Kit RF thu phát Wifi ESP32 NodeMCU V3 21
Hình 2.14: Hình ảnh cảm biến nhiệt độ DS18B20 22
Hình 2.15: Sơ đồ chân cảm biến nhiệt độ DS18B20 24
Hình 2.16: Cảm biến khí gas MQ-2 25
Hình 2.17: Cảm biến phát hiện khói MQ-7 27
Hình 2.18: Cảm biến lửa ( flame sensor) 29
Hình 2.19: Sơ đồ chân LCD 20x4 31
Hình 2.20: Hình ảnh I2C 32
Hình 2.21: Hình ảnh Mạch xoay KY- 040 33
Hình 2.22: Hình ảnh module relay 4 kênh 35
Hình 2.23: Hình ảnh AD16-22SM Đèn Còi 36
Hình 2.24: Hình ảnh R385 Máy Bơm Nước 37
Trang 12Hình 2.26: Chọn board cho Arduino 39
Hình 2.27: Giao diện khi khởi động phần mềm 40
Hình 2.28: Giao diện đặt tên và nơi lưu 41
Hình 3.1: Sơ đồ khối hệ thống phòng cháy chữa cháy cho chung cư 43
Hình 3.2: Sơ đồ nguyên lý kết nối cảm biến nhiệt độ với vi điều khiển 45
Hình 3.3: Sơ đồ nguyên lý kết nối cảm biến khí gas MQ-2 với vi điều khiển 46
Hình 3.4: Sơ đồ nguyên lý kết nối cảm biến khí MQ-7 với vi điều khiển 47
Hình 3.5: Sơ đồ nguyên lý kết nối cảm biến lửa với vi điều khiển 49
Hình 3.6: Sơ đồ nguyên lý kết nối rotary Encorder 360 độ KY-040 với vi điều khiển 50
Hình 3.7: Sơ đồ nguyên lý kết nối LCD với ESP32 51
Hình 3.8: Sơ đồ nguyên lý kết nối khối bơm với vi điều khiển 52
Hình 3.9: Sơ đồ nguyên lý kết nối khối ESP32 với vi điều khiển 53
Hình 3.10: Sơ đồ nguyên lý kết nối DFR0299 với vi điều khiển 54
Hình 3.11: Sơ đồ nguyên lý toàn mạch 59
Hình 4.1: Một số module được đặt trên nóc của chung cư 62
Hình 4.2: Hệ thống điều khiển được bên trong nóc của chung cư 64
Hình 4.3: Chung cư 2 tầng 4 phòng 65
Hình 4.4: Mặt cắt các phòng của chung cư 66
Hình 4.5: Loa phát thông báo đặt bên phải nóc chung cư 67
Hình 4.6: Hệ thống bơm nước 67
Hình 4.6: Lưu đồ hoạt động của hệ thống 68
Hình 4.7: Lưu đồ hoạt động Ardunio Mega 2560 70
Hình 4.8: Lưu đồ hoạt động ESP32 71
Hình 4.9: Lưu đồ xử lí chuỗi dữ liệu nhận 72
Trang 13Hình 4.11: Lưu đồ hoạt động của App 74
Hình 5.1: Mô hình hệ thống 76
Hình 5.2: Hiển thị nhiệt độ từng phòng 77
Hình 5.3: Giao diện chế độ thủ công 78
Hình 5.4b: Quay lại chế độ tự động 78
Hình 5.4 a: Giao diện sau khi chọn hệ thống chung 78
Hình 5.5: Giao diện sau khi chọn trạng thái phòng 79
HÌnh 5.6a: Thông số ở phòng 1 79
Hình 5.6b: Thông số ở phòng 2 79
Hình 5.6d: Thông số ở phòng 4 80
Hình 5.6c: Thông số ở phòng 3 80
Hình 5.7: Giao diện firebase 80
Hình 5.8a: Giao diện đăng nhập 81
Hình 5.8b: Giao diện sau khi đăng nhập 81
Hình 5.8c: giao diện chế độ thủ công 81
Hình 5.8d: Giao diện giám sát phòng 1 81
Hình 5.8e: Giao diện giám sát phòng 2 81
Hình 5.8f: Giao diện giám sát phòng 3 81
Hình 5.8g: Giao diện giám sát phòng 4 82
Trang 14Bảng Trang
Bảng 2.1: Mô tả các thiết bị trong hệ thống phòng cháy chữa cháy 4
Bảng 2.2: Thông số kĩ thuật Arduino Mega 2560 14
Bảng 2.3: Module mạch phát âm thanh DFPlayer Mini 18
Bảng 2.4: Chức năng Module mạch phát âm thanh DFPlayer Mini 19
Bảng 2.5: Chức năng các chân của DS18B20 24
Bảng 2.6: Chức năng các chân của MQ-2 26
Bảng 2.7: Chức năng các chân của MQ-7 28
Bảng 2.8: Chức năng các chân của MQ-2 30
Bảng 2.9: Sơ đồ chân của LCD 20x4 31
Bảng 2.10: Sơ đồ chân của I2C LCD 32
Bảng 2.11: Chức năng các chân của Mạch xoay KY- 040 34
Bảng 2.12 : Chức năng các chân của Mạch xoay KY- 040 35
Bảng 2.13: Chức năng các chân của AD16-22SM 36
Bảng 2.14: Chức năng các phím trong Arduino IDE 38
Bảng 4.1 Danh sách các linh kiện có trong hình 4.1 62
Trang 15Đề tài : “Thiết kế và thi công hệ thống phòng cháy chữa cháy cho chung cư” nhằm xây dựng mô hình mô tả hệ thống phòng cháy chữa cháy hiện nay bằng cách
sử dụng hệ thống Iot, sử dụng các kiến thức nền tảng về vi điều khiển, điện tử cơ bản cũng như nền tảng firebase để có thể giám sát từ xa qua app điện thoại Bằng cách điều khiển tự động hoặc thủ công hoặc từ xa mà có thể hạn chế thấp nhất hậu quả do đám cháy gây ra, hệ thống còn báo động và chỉ dẫn thoát hiểm bằng âm thanh khi có
sự cố cháy xảy ra
Trang 16Chương 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Trong bối cảnh hiện đại, nghiên cứu khoa học và công nghệ đóng vai trò thiết yếu trong việc cải thiện và đảm bảo an toàn cháy nổ Đây không chỉ là trách nhiệm của các cơ quan chức năng mà còn là nghĩa vụ của mọi cá nhân trong xã hội Phương tiện truyền thông đại chúng liên tục nhấn mạnh việc nâng cao nhận thức và kỹ năng phòng cháy, chữa cháy cho nhân dân, nhằm hạn chế tối đa rủi ro và thiệt hại do hỏa hoạn gây ra.Các hệ thống chống cháy và cấp cứu trong trường hợp hỏa hoạn là phần không thể thiếu trong kiến trúc của các công trình như chung cư hay nhà cao tầng Chúng đóng vai trò cốt yếu trong việc bảo vệ tài sản và tính mạng con người, do đó, việc đầu tư vào việc thiết lập và duy trì các hệ thống này luôn được ưu tiên hàng đầu
Sự tiến triển không ngừng của khoa học công nghệ đã mang lại những cải tiến đáng
kể cho các hệ thống phòng cháy chữa cháy, từ độ tin cậy đến hiệu quả hoạt động Các
hệ thống này cũng được tích hợp với các công nghệ thông tin hiện đại như điện thoại, Internet để nhanh chóng thông báo cho các cơ quan chức năng khi cần thiết Việc đảm bảo an toàn cháy nổ không chỉ nằm ở việc lắp đặt các hệ thống phòng cháy chữa cháy hiện đại mà còn ở việc nâng cao nhận thức, kỹ năng và trách nhiệm của mọi cá nhân trong cộng đồng
1.2 MỤC TIÊU
Mục tiêu của đề tài là phát triển một hệ thống phòng cháy, chữa cháy ở chung
cư với việc dùng các cảm biến nhiệt, khói, gas và lửa Hệ thống này sẽ được điều khiển một cách linh hoạt và thuận tiện qua ứng dụng trên điện thoại di động thông qua mạng internet hoặc điều khiển trực tiếp trên hệ hống Khi phát hiện nguy cơ hỏa hoạn, hệ thống không sẽ cảnh báo thông qua loa phát thanh và đèn còi cảnh báo, sẽ
có đèn hướng dẫn lối thoát hiểm, khi có cháy máy bơm sẽ bơm nước để dập tắt đám cháy, đồng thời app sẽ gửi cảnh báo đến người dùng
1.3 NỘI DUNG NGHIÊN CỨU
• Nội dung 1: Nghiên cứu một hệ thống báo cháy thực tế
Trang 17• Nội dung 3: Thiết kế phần cứng và mô hình
• Nội dung 4: Thiết kế phần mềm, viết chương trình cho hệ thống
• Nội dung 5: Chạy thử và kiểm tra lỗi
• Nội dung 6: Đánh giá kết quả thực hiện
1.4 GIỚI HẠN
Đề tài thiết kế hệ phòng cháy chữa cháy ở chung cư có các giới hạn gồm: + Đề tài chỉ xây dựng mô hình với mica và hệ thống chỉ sử dụng cho chung
cư có 4 phòng
+ Chỉ xây dựng app để giám sát qua mạng internet
+ Trường hợp mất kết nối Wi-Fi, hệ thống vẫn xử lý báo cháy nhưng không đưa được dữ liệu lên app Android
1.5 BỐ CỤC
Đồ án này được trình bày trong 6 chương:
Chương 1: Tổng quan
Chương 2: Cơ sở lý thuyết
Chương 3: Tính toán và thiết kế
Chương 4: Thi công hệ thống
Chương 5: Kết quả, nhận xét và đánh giá
Chương 6: Kết luận và hướng phát triển
Chương 1: Nêu tổng quan về đề tài nghiên cứu: đặt vấn đề, mục tiêu nghiên cứu, giới hạn
Chương 2: Nêu những cơ sở lý thuyết có liên quan
Chương 3: Tính toán thiết kế phần cứng
Chương 4: Thi công phần cứng, xây dựng mô hình và viết phần mềm
Chương 5: Nêu ra một số kết quả nhận xét và đánh giá
Chương 6: Kết luận đề tài những việc làm được, nhận xét ưu, nhược điểm của
đề tài và đưa ra hướng phát triển
Trang 18Chương 2: CƠ SỞ LÝ THUYẾT
2.1 TỔNG QUAN HỆ THỐNG PHÒNG CHÁY CHỮA CHÁY
2.1.1 Mô tả hệ thống phòng cháy chữa cháy
Hệ thống phòng cháy chữa cháy là một hệ thống gồm các thiết bị liên kết với nhau để phát hiện, cảnh báo và xử lý các sự cố cháy, nổ Hệ thống này sử dụng các thiết bị cảnh báo bằng âm thanh và hình ảnh để thông báo khi phát hiện lửa, khói, khí
CO hoặc các tình huống khẩn cấp khác Khi cháy nổ xảy ra, hệ thống sẽ tự động phát hiện thông qua các đầu dònhư : khói, nhiệt,ánh sáng, hỗn hợp Những thông tin này
sẽ được gởi về trung tâm để xử lý và thực hiện các hoạt động báo cháy và dập cháy
2.1.2 Chức năng các thiết bị trong hệ thống báo cháy
Bảng 2.1: Mô tả các thiết bị trong hệ thống phòng cháy chữa cháy
STT Thiết bị Chức năng
1 Trung tâm báo
cháy Bộ não xử lý tín hiệu
2
Đầu báo khói Khi phát hiện khói đạt một mức giới hạn
Hình 2.1: Sơ đồ hệ thống phòng cháy chữa cháy căn bản
Trang 193 Đầu báo nhiệt Khi phát hiện nhiệt độ đạt một mức giới
hạn cho phép sẽ gởi tín hiệu về tủ báo
4 Đầu báo lửa Phát hiện lửa và báo về tủ báo
5 Nút nhấn khẩn Gửi tín hiệu báo cháy
6 Chuông báo
cháy Kêu cảnh báo
7 Máy bơm Cung cấp nước cho vòi phun hoạt động
dập lửa
8 Van điều khiển Điều khiển cấp lương nước cho hệ thống
báo cháy không bị thiếu nước
9 Đầu phun tự
động Sprinkler
Khi có nhiệt độ tăng lên, tăng khi vượt quá 68oC, đầu thủy ngân sẽ vỡ ra phun nước dập tắt đám cháy
10 Đầu phun khí Phun những khí có khả năng dập cháy
11 Đèn Đèn báo hiệu sẽ sáng báo động
12 Điện thoại Gọi số báo cháy
2.2 CÁC PHƯƠNG THỨC GIAO TIẾP
2.2.1 Phương thức giao tiếp UART
UART (Universal Asynchronous Receiver/Transmitter) là một giao thức truyền thông nối tiếp phổ biến, thường được sử dụng để truyền dữ liệu giữa các thiết bị điện
tử Hoạt động của UART không đồng bộ, có nghĩa là không cần một xung nhịp chung giữa các thiết bị giao tiếp Hiện nay, phương thức giao tiếp này đã được tích hợp trong nhiều vi xử lý và thường được dùng để kết nối vi điều khiển với các thiết bị ngoại vi như cảm biến, module GPS, v.v Ngoài ra, UART còn được sử dụng để giao tiếp giữa máy tính và các thiết bị nhúng thông qua các cổng nối tiếp như RS232
Trang 20Cấu trúc cơ bản của UART:
• TX: gởi dữ liệu từ máy phát qua chân TX
• RX: dữ liệu được nhận qua chân này
Các thông số của chuẩn giao tiếp UART:
• Tốc độ Baud (Baud rate): là số bit
truyền được trong 1 giây Để truyền được dữ
liệu UART thì 2 thiết bị phải có cùng tốc độ
Baud
• Khung truyền (Frame): để tránh việc dữ liệu bị mất khi truyền thì khung truyền rất được quan tâm và thiết lập ngày từ đầu Mỗi khung truyền sẽ có các thành phần như: start bit, word data, parity bit, stop bit
• Start bit: bit này báo tín hiệu bắt đầu của một khung truyền và bắt đầu là mức logic 0, nó còn cho biết là có tín hiệu sắp truyền đến
• Data: là các bit dữ liệu nó có thể có từ 5 tới 9 bit, hệ thống thông thường thì thường có 8bit dữ liệu
Hình 2.2: Cấu trúc giao tiếp UART
Hình 2.3: UART frame
Trang 21• Stop bit: là bit kết thúc của khung truyền
2.2.2 Chuẩn giao tiếp I2C
I2C là một chuẩn giao tiếp được phát minh để việc trao đổi dữ liệu giữa các thiết
bị trở nên dễ dàng Nó còn được biết đến như chuẩn giao tiếp Two Wire Interface (TWI), vì chỉ dùng hai đường kết nối là SDA và SCL để truyền dữ liệu Trong đó SDA là đường hai chiều dùng để truyền dữ liệu còn SCL là đường một chiều dùng
để truyền xung clock
Ở hình 2.4, hai thiết bị được kết nối trên một bus I2C Tuy vậy vẫn không có sự nhầm lẫn giữa các thiết bị vì mỗi thiết bị có một địa chỉ riêng Trên bus I2C, thiết bị chủ (Master) điều khiển các thiết bị tớ (slave) theo địa chỉ, nó tạo ra xung đồng hồ trong quá trình truyền thông
Một bus I2C chuẩn có thể truyền dữ liệu 8 bit với tốc độ 100Kbits/s ở chế độ tiêu chuẩn, 400Kbits/s ở chế độ nhanh và tốc độ cao lên tới 3.4Mbits/s Mỗi bit dữ liệu được truyền trong mỗi xung clock Tín hiệu trên đường SDA duy trì ở mức ổn định khi xung clock ở mức cao và thay đổi khi xung clock ở mức thấp
Quá trình truyền dữ liệu:
• Thiết bị chủ: gởi một bit bắt đầu và gởi đúng bit địa chỉ tới thiết bị tớ cũng như bit ghi hoặc đọc
• Thiết bị tớ nhận bit địa chỉ
• Thiết bị chủ truyền dữ liệu cho thiết bị tớ
• Thiết bị chủ gởi bit kết thúc quá trình truyền dữ liệu
2.3 LÝ THUYẾT CƠ BẢN VỀ IOT
2.3.1 Giới thiệu
Hình 2.4: Mô hình giao tiếp I2C và quá trình truyền 1 bit dữ liệu
Trang 22Internet of Things (IoT) là một mạng lưới các thiết bị thông minh kết nối với nhau và với internet, cho phép chúng giao tiếp, thu thập và chia sẻ dữ liệu mà không cần sự can thiệp của con người IoT không chỉ giới hạn ở các thiết bị điện tử cá nhân như điện thoại thông minh hay máy tính bảng, mà còn bao gồm một loạt các thiết bị
và cảm biến trong các lĩnh vực khác nhau như gia đình, y tế, công nghiệp, nông nghiệp, và thành phố thông minh
IoT phát triển nhờ vào sự kết hợp của nhiều công nghệ như công nghệ không dây, vi điện tử, cơ điện tử và Internet Nói một cách đơn giản, IoT là tập hợp các thiết
bị có khả năng kết nối với nhau, kết nối với Internet và với thế giới bên ngoài để thực hiện các chức năng cụ thể Các thiết bị IoT có thể liên kết với nhau thông qua nhiều công nghệ như Wi-Fi, mạng viễn thông băng rộng (3G, 4G), Bluetooth, và bao gồm các thiết bị như điện thoại thông minh, bóng đèn, máy giặt, và nhiều thiết bị khác Một hệ thống IoT cơ bản có dạng như sau:
Trong hệ thống IoT, quá trình hoạt động thường bắt đầu với việc cấp nguồn cho các thiết bị, sau đó các khối chức năng chính sẽ hoạt động như sau:
Cảm biến (Sensor Module):
Các cảm biến này thu thập dữ liệu từ môi trường xung quanh, như nhiệt độ, độ
ẩm, ánh sáng, chuyển động, và nhiều yếu tố khác
Khối xử lý trung tâm (Central Processing Unit):
Khối này thu thập các tín hiệu từ các cảm biến và thực hiện các thao tác xử lý tính toán để chuẩn bị cho việc truyền hoặc lưu trữ
Khối lưu trữ thông tin (Storage Module):
Hình 2.5: Sơ đồ hệ thống IoT cơ bản
Trang 23Dữ liệu được xử lý bởi khối xử lý trung tâm và có thể lưu trữ trong khối lưu trữ thông tin Điều này giúp duy trì thông tin lịch sử và sử dụng phân tích cho mục đích khác trong tương lai
Tương tác ngược (Reverse Interaction):
Để tương tác với các thiết bị IoT thì người dùng có thể sử dụng các ứng dụng trên điện thoại, trên web hay qua các ứng dụng giọng nói Các tín hiệu này sẽ được lưu trữ ở khối lưu trữ thông tin sau đó được xử lý bởi khối trung tâm để thực hiện các tác vụ điều khiển
2.3.2 Ứng dụng của IoT
Iot thì có rất nhiều ứng dụng và thường được phát triển về việc điều khiển các thiết bị qua mạng Internet, bao gồm các thiết bị công cộng và thiết bị gia đình Từ đó ứng dụng vào nhà thông minh, quản lý công ty, xí nghiệp, quản lý môi trường,…
2.4 LẬP TRÌNH APP
2.4.1 Ngôn ngữ lập trình Java
a) Khái niệm
Java là một ngôn ngữ lập trình đa mục đích được phát triển bởi Sun
Microsystems và sau này là Oracle Corporation Với khả năng nổi bật là chạy trên nhiều nền tảng khác nhau mà không cần phải biên dịch lại mã nguồn Điều này được thực hiện nhờ vào Java Virtual Machine (JVM), một máy ảo Java được triển khai trên mỗi hệ điều hành
b) Một số ưu điểm của ngôn ngữ Java
Độ an toàn và bảo mật: Java được xây dựng với các cơ chế an toàn và bảo mật như kiểm tra kiểu dữ liệu tại thời điểm biên dịch và thời gian chạy, quản lý bộ nhớ tự động, kiểm soát quyền truy cập, và chữ ký số
Độ di động: Mã nguồn Java có thể chạy trên bất kỳ nền tảng nào có Java Virtual Machine (JVM) Đây là một điều kiện thuận lợi cho việc viết ứng dụng di động và đa nền tảng
Tính đa luồng: Java hỗ trợ lập trình đa luồng, nó cho phép xử lý đồng thời nhiều tác vụ, cải thiện hiệu suất của ứng dụng và tận dụng tốt các bộ xử lý đa nhân
Trang 24Kiến trúc không phụ thuộc: Java sử dụng mô hình kiến trúc không phụ thuộc (architecture-neutral), cho phép mã nguồn Java được biên dịch thành mã byte giữa tiền (intermediate bytecode) có thể thực thi trên bất kỳ JVM nào
Cú pháp đơn giản: Java có cú pháp gần giống với C++ và C#, nên có thể dễ dàng sử dụng đối với những người đã từng dùng các ngôn ngữ lập trình khác
Thư viện phong phú: Java đi kèm với một bộ thư viện rất lớn (Java Standard Edition API), cung cấp các lớp và giao diện cho nhiều tác vụ như xử lý chuỗi, đồ họa, mạng, và nhiều hơn nữa
Quản lý bộ nhớ tự động: Java sử dụng mô hình quản lý bộ nhớ tự động (garbage collection), giúp người lập trình không cần phải chú ý đến việc giải phóng bộ nhớ đã được cấp phát
2.4.2 Ưu điểm khi viết app bằng ngôn ngữ Java
Ứng dụng Android được tạo trên điện thoại với ngôn ngữ Java có nhiều lợi ích như sau:
Tiện lợi và Linh hoạt:
• Sử dụng Android Studio trực tiếp trên điện thoại giúp tiết kiệm thời gian và công sức Người dùng có thể chỉnh sửa, kiểm tra và thử nghiệm các phần của ứng dụng ngay tức thì mà không cần phải chuyển qua máy tính
Tích hợp sâu sắc:
• Android Studio cung cấp khả năng tương tác trực tiếp với hệ thống phát triển Android trên điện thoại mà không cần phải giao tiếp với máy tính Nó giúp giảm sự phụ thuộc vào máy tính và cải thiện tính di động, linh hoạt
Học tập và Phát triển:
• Việc viết mã trực tiếp trên điện thoại giúp bạn có thể học tập và phát triển ứng dụng ở mọi nơi, mọi lúc Điều này tăng cường khả năng lập trình và kiến thức về phát triển ứng dụng di động một cách linh hoạt và thuận tiện
Kiểm tra trực tiếp:
• Thử nghiệm ứng dụng trực tiếp trên thiết bị mà bạn đang phát triển giúp bạn nhận biết và sửa lỗi nhanh chóng Điều này cải thiện trải nghiệm phát triển bằng cách cho phép bạn phát hiện và khắc phục vấn đề ngay từ lúc chúng xảy
Trang 25Tiết kiệm tài nguyên:
• Điện thoại thông minh hiện đại thường có cấu hình mạnh mẽ và đủ dung lượng để chạy Android Studio mà không bị các vấn đề về tài nguyên Nó giúp giảm chi phí vì bạn không cần phải sở hữu máy tính với cấu hình cao để phát triển ứng dụng Android
Tóm lại, việc sử dụng Java và Android Studio trực tiếp trên điện thoại đêm lại nhiều lợi ích cho các nhà phát triển, từ tính linh hoạt và tiện lợi trong việc phát triển đến khả năng học tập và kiểm tra ứng dụng một cách hiệu quả và thuận tiện
2.5 TỔNG QUÁT VỀ FIREBASE VÀ REALTIME DATABASE
2.5.1 Firebase
Firebase là một nền tảng dịch vụ điện toán đám mây do Google phát triển và quản lý Nó cung cấp một số các dịch vụ và công cụ để giúp nhà phát triển xây dựng
và triển khai các ứng dụng di động và web một cách nhanh chóng và hiệu quả
Hỗ trợ nền tảng: Firebase hỗ trợ nhiều nền tảng lập trình như Android, iOS, web, và cả các nền tảng khác thông qua các API và SDK đa dạng
Dễ dàng tích hợp: Firebase cung cấp các API và SDK dễ sử dụng, giúp việc tích hợp các tính năng của nền tảng này vào ứng dụng trở nên đơn giản
Tính linh hoạt và mở rộng: nó cho phép các nhà phát triển tùy chỉnh và mở rộng tính năng của ứng dụng thông qua các tính năng như Firebase Cloud Functions và Firebase Extensions
2.5.2 Realtime database
Hình 2.6: Hệ thống ứng dụng firebase
Trang 26Firebase Realtime cho phép lưu trữ và đồng bộ dữ liệu của ứng dụng ngay lập tức giữa các máy khách và máy chủ, giúp các ứng dụng di động và web cung cấp trải nghiệm người dùng mượt mà và liên tục mà không cần lo lắng về việc đồng bộ dữ liệu
Dưới đây là các đặc điểm và khái niệm quan trọng của Firebase Realtime Database:
Dữ liệu JSON: Realtime: cấu trúc JSON (JavaScript Object Notation), là một định dạng dữ liệu khá phổ biến và dễ đọc
Đồng bộ thời gian thực: Mọi thay đổi dữ liệu trên máy khách hoặc máy chủ đều được đồng bộ tức thì và tự động trên các thiết bị kết nối Điều này giúp các ứng dụng hiển thị dữ liệu mới nhất cho người sử dụng mà không phải làm mới trang hoặc khởi động lại ứng dụng
Offline Persistence: Firebase Realtime Database hỗ trợ lưu trữ dữ liệu cục bộ trên thiết bị người dùng khi kết nối mạng bị gián đoạn Khi khôi phục kết nối, dữ liệu
sẽ được đồng bộ lại với máy chủ
Quyền truy cập theo người dùng: Người dùng có thể cấu hình quyền truy cập cho dữ liệu dựa trên người dùng, cho phép kiểm soát đồng thời việc đọc và ghi dữ liệu từ các nguồn khác nhau
Truy vấn dữ liệu linh hoạt: Firebase Realtime Database cung cấp các phương thức truy vấn linh hoạt để truy cập và lọc dữ liệu dựa trên các tiêu chí nhất định SDK đa nền tảng: Realtime Database có SDK cho nhiều nền tảng như Android, iOS, web, và cả các nền tảng khác như Node.js, giúp tích hợp dịch vụ này vào ứng dụng trở nên dễ dàng
Trang 27❖ Đặc điểm
Vi xử lý mạnh mẽ: Arduino Mega 2560 có vi xử lý 8-bit với xung nhịp cao
lên đến 16 MHz Đây là một vi xử lý mạnh mẽ cho các ứng dụng phức tạp đòi hỏi tốc
độ nhanh chóng và chính xác
Số lượng chân kết nối: Arduino Mega 2560 có tổng cộng 54 chân kết nối
(digital I/O pins), trong đó có 15 chân analog (ADC)
Bộ nhớ lớn: Board này có bộ nhớ Flash lên đến 256 KB và RAM lên đến 8 KB,
có khả năng lưu trữ và xử lý lượng dữ liệu lớn hơn so với các phiên bản Arduino khác
Các giao tiếp: Arduino Mega 2560 hỗ trợ nhiều phương thức giao tiếp khác
nhau như UART (Serial), SPI, I2C, và cổng USB Điều này giúp kết nối với các module và thiết bị khác nhau như màn hình, cảm biến hoặc các module giao tiếp khác
Hỗ trợ phần mềm: Board này có thể lập trình bằng Arduino IDE, môi trường
phát triển phần mềm miễn phí và dễ sử dụng Nó cũng hỗ trợ các thư viện và công cụ phát triển phong phú từ cộng đồng Arduino, giúp cho việc phát triển ứng dụng nhanh chóng và hiệu quả
b) Các thông số kĩ thuật Arduino Mega 2560
Hình 2.7: Arduino Mega 2560
Trang 28Bảng 2.2: Thông số kĩ thuật Arduino Mega 2560
5 Dòng điện tối đa mỗi
chân I/O 30mA
6 Dòng điện trên chân
Trang 29Hình 2.8: Chip Mega 2560 tương ứng với chân Arduino Mega 2560
Trang 30Hình 2.9: Các chân Arduino Mega 2560
Trang 31Arduino Mega 2560 có 54 chân I/O, bao gồm các chân digital I/O, chân analog input và các chân khác có các tính năng đặc biệt Dưới đây là một sơ đồ tổng quan về các chân của Arduino Mega 2560:
Chân Digital I/O
Arduino Mega 2560 có 54 chân digital I/O, từ 0 đến 53 Các chân này là chân input hoặc output digital Một số chân có tính năng đặc biệt như PWM (Pulse Width Modulation) và các chức năng khác
Chân Analog Input
Arduino Mega 2560 có 16 chân analog input , được dùng để đọc giá trị analog
từ các cảm biến Mỗi chân analog input có độ phân giải 10-bit
Các Chân Đặc Biệt và Giao Tiếp
• TX/RX (0, 1): Chân TX0 (digital pin 1) và RX0 (digital pin 0) là các chân giao tiếp Serial UART (Universal Asynchronous Receiver-Transmitter)
để giao tiếp với các thiết bị khác qua giao diện Serial
• RESET (RESET): RESET là chân để đặt lại vi điều khiển Arduino
• PWM (2 to 13, 44 to 46): Các chân có dấu (*) từ 2 đến 13 và 44 đến 46
hỗ trợ Pulse Width Modulation (PWM), cho phép điều chỉnh độ rộng xung PWM và điều khiển tốc độ hoặc độ sáng của các thiết bị như động cơ và đèn LED
• SPI (50 to 53): Các chân SPI (Serial Peripheral Interface) là chân 50 (MISO), 51 (MOSI), 52 (SCK), và 53 (SS) SPI dùng để kết nối với ngoại vi như màn hình LCD, thẻ nhớ SD
• I2C/TWI (20 to 21): Chân SDA (20) và SCL (21) là các chân giao tiếp I2C/TWI (Inter-Integrated Circuit/Two-Wire Interface), được dùng giao tiếp với các ngoại vi I2C như cảm biến và module
• Analog Reference (AREF): Chân AREF để cung cấp điện áp tham chiếu cho chân analog
Điều Khiển Nguồn và Mạch Ngoài
• Vin: Chân Vin dùng để cấp nguồn ngoài cho Arduino Mega từ 7V đến 12V
Trang 32• 5V và 3.3V: Chân 5V và 3.3V cấp nguồn cho các linh kiện khác trên board và các module ngoại vi
• GND (Ground): Các chân GND được sử dụng để nối đất của hệ thống
2.6.2 Module mạch phát âm thanh DFPlayer Mini
a) Giới thiệu Module mạch phát âm thanh DFPlayer Mini
Module DFPlayer Mini là một mạch phát
âm thanh với kích thước nhỏ gọn và dễ sử
dụng, được thiết kế để tích hợp vào các dự án
DIY, robot, và các ứng dụng cần âm thanh
DFPlayer Mini có khả năng phát lại âm thanh
từ thẻ nhớ microSD, U-disk (USB flash drive),
và hỗ trợ âm thanh DFPlayer Mini có bộ
khuếch đại âm thanh 3W tích hợp, dùng cho
kết nối với loa mà không cần mạch khuếch đại
ngoài
b) Thông số kỹ thuật
Bảng 2.3: Module mạch phát âm thanh DFPlayer Mini
STT Thông số Chi tiết
1 Điện áp hoạt động 3.2 – 5VDC
2 Chuẩn giao tiếp UART, IO
3 IC Amply YX8002A (công suất nhỏ)
Trang 339
Tổ chức file Theo thư mục (tối đa 100 thư mục, m
ỗi thư mục 255 bài hát)
c) Sơ đồ chân
Bảng 2.4: Chức năng Module mạch phát âm thanh DFPlayer Mini
STT Tên chân Chức năng
1 VCC Kết nối VCC
2 RX Nhận dữ liệu
3 TX Truyền dữ liệu
4 SPK_1 Chân kết nối loa cực +
5 GND Kết nối module với GND
6 SPK_2 Chân kết nối loa cực -
2.6.3 Dòng chip Wi-Fi ESP32
a) Giới thiệu
ESP32 được xây dựng cho việc kết nối không dây cho các ứng dụng nhúng với hiệu quả cao và tiết kiệm chi phí Là phiên bản tiếp theo của ESP8266, ESP32 mang đến nhiều tính năng và khả năng mở rộng hơn
Hình 2.11: Sơ đồ chân Module mạch phát âm thanh DFPlayer Mini
Trang 34Kit RF ESP32 được dùng phổ biến trong việc kết nối, thu thập dữ liệu qua
Wi-Fi, đặc biệt là trong lĩnh vực IoT
Sau đây là hình ảnh Kit thu phát Wifi ESP8266 NodeMCU V3:
b) Thông số kỹ thuật
Mô-đun WIFI: ESP-WROOM-32
• Bộ vi xử lý: ESP32-D0WDQ6
• Flash tích hợp: 32Mbit
• Ăng-ten: Ăng-ten PCB trên bo mạch
• Chuẩn giao tiếp: DAC/SDIO/PWM/I2C/UART/GPIO/ADC/
• Giao thức Wi-Fi: IEEE 802.11 b/g/n
Trang 35Giải Thích Chức Năng Các Chân
Nguồn và GND:
• Vin: Cung cấp nguồn vào (thường từ 5V)
• 3V3: Đầu ra 3.3V được điều chỉnh từ NodeMCU
• GND: Chân nối đất (Ground)
GPIO:
• GPIO0 đến GPIO39: Các chân này có thể cấu hình làm input hoặc output, và hỗ trợ nhiều chức năng như ADC, DAC, PWM, I2C, SPI, UART
• Các chân GPIO cụ thể có các chức năng mặc định và chuyên biệt như sau:
+ GPIO1 (TX) và GPIO3 (RX): Chân truyền và nhận dữ liệu UART
+ GPIO2 (D2): LED_BUILTIN
+ GPIO4 (D4), GPIO5 (D5), GPIO12 (D12), GPIO13 (D13), GPIO14 (D14), GPIO15 (D15): Có thể dùng cho các giao tiếp SPI, I2C, PWM, etc
+ GPIO34 đến GPIO39: Các chân chỉ có thể làm input
Chức Năng Đặc Biệt:
Hình 2.13: Sơ đồ chân Kit RF thu phát Wifi ESP32 NodeMCU V3
Trang 36• ADC1 và ADC2: Các đầu vào analog
• DAC1 và DAC2: Các đầu ra analog (DAC)
• EN: Chân Enable, khi kéo thấp sẽ tắt nguồn ESP32
• RST: Chân Reset để khởi động lại module
• VP và VN: Các chân input analog (GPIO36 và GPIO39)
Giao Tiếp:
• I2C: SDA và SCL có thể được gán cho bất kỳ chân GPIO nào
• SPI: MISO, MOSI, SCK, và SS cũng có thể được gán cho các chân khác nhau
• UART: TX và RX có thể được gán cho bất kỳ chân GPIO nào
2.6.4 Cảm biến nhiệt độ DS18B20
a) Giới thiệu cảm biến nhiệt độ DS18B20
DS18B20 là một cảm biến nhiệt độ kỹ thuật số được sản xuất bởi Dallas Semiconductor (nay là một phần của Maxim Integrated) Đây là một cảm biến phổ biến trong các dự án IoT nhờ vào khả năng đo nhiệt độ chính xác, giao tiếp đơn giản qua giao thức 1-Wire, và khả năng kết nối nhiều cảm biến trên cùng một bus dữ liệu
Trang 37+ Có thể cấu hình từ 9-bit đến 12-bit
+ Độ phân giải mặc định là 12-bit, tương ứng với bước nhảy 0.0625°C Thời Gian Chuyển Đổi Nhiệt Độ:
+ 9-bit: 93.75 ms (tối thiểu)
+ 10-bit: 187.5 ms (tối thiểu)
+ 11-bit: 375 ms (tối thiểu)
+ 12-bit: 750 ms (tối thiểu)
Nguồn Cung Cấp: Điện áp hoạt động: 3.0V đến 5.5V
Giao Thức Giao Tiếp: 1-Wire, cho phép giao tiếp qua chỉ một dây dữ liệu (DQ)
Mã Nhận Dạng Duy Nhất: Mỗi cảm biến DS18B20 có một mã nhận dạng bit duy nhất
64-Dòng Tiêu Thụ:
+ Trong chế độ chờ: ≤1µA
+ Trong quá trình chuyển đổi: 1mA (tối đa)
c) Sơ đồ chân
Trang 38Bảng 2.5: Chức năng các chân của DS18B20
STT Tên chân Chức năng
Trang 39Code:
#include <OneWire.h> // Thư viện OneWire cho giao tiếp với cảm biến
#include <DallasTemperature.h> // Thư viện DallasTemperature để tương tác dễ dàng hơn với cảm biến nhiệt độ
#define DS18B20_1 A4 // Định nghĩa chân kết nối với cảm biến DS18B20
float nhiet1; // Khai báo biến để lưu giá trị nhiệt độ
OneWire oneWire1(DS18B20_1); // Tạo đối tượng OneWire để giao tiếp với cảm biến DS18B20 trên chân A4
DallasTemperature sensors1(&oneWire1); // Truyền đối tượng OneWire vào thư viện DallasTemperature
sensors1.requestTemperatures(); // Yêu cầu đọc nhiệt độ từ cảm biến
nhiet1 = (float)sensors1.getTempCByIndex(0); // Lấy giá trị nhiệt độ từ cảm biến
và chuyển đổi sang kiểu float
Serial.print("Nhiệt độ Celsius 1: "); // In ra màn hình Serial thông báo nhiệt độ Serial.println(nhiet1); // In ra giá trị nhiệt độ đo được
}
2.6.5 Cảm biến gas MQ-2
a) Giới thiệu cảm biến gas MQ-2
Cảm biến khí MQ-2 là một loại cảm biến
bán dẫn được sử dụng rộng rãi để phát hiện các
loại khí dễ cháy và khói Được sản xuất bởi
Hanwei Electronics, MQ-2 được ưa chuộng
trong các dự án giám sát rò rĩ khí gas nhờ
vào độ nhạy cao và thời gian phản hồi
nhanh
Hình 2.16: Cảm biến khí gas
MQ-2
Trang 40Đặc điểm
Phát Hiện Đa Dạng Khí Gas:
+ Phát hiện các khí dễ cháy như LPG (Khí hóa lỏng), Propane, Methane, Hydrogen, và cả khói
• Độ nhạy: Điều chỉnh được qua biến trở trên module
Chức năng của chân
1 VCC Nối với nguồn