Công tác phòng cháy và báo cháy là hết sức quan trọng đối với tất cả mọi người, nó liênquan trực tiếp đến tính mạng con người và của cải. Thói quen quên tắt điện hay bỏ dởviệc nấu nướng, hoặc bất cứ việc gì liên quan đến nguy cơ cháy nổ sẽ khiến chúng takhông trở tay kịp.Mỗi người chúng ta lúc có nhiều lúc bận rộn hay lơ là trong việc giám sát an toàn docháy nổ về điện hoặc khí gas, vì tính thiết yếu này nên nhóm em quyết định chọn đề tài“Nghiên cứu, thi công hệ thống phòng cháy và báo cháy cho nhà phố”. Đồng thời nhucầu quản lý, giám sát cũng như kiểm soát việc đo điện năng, các thông số: điện áp, dòngđiện, các chỉ tiêu chất lượng điện năng từ xa là rất cần thiết cho các nhà quản lý, các côngty điện lực và cá nhân. Mặc dù đã đạt đến một mức độ thành công nhất định, tuy nhiêncác hệ thống quản lý và giám sát điện năng hiện nay chi phí rất cao và hạn chế về việctruy cập từ xa. Ngoài ra, xu hướng hiện nay là sử dụng các thiết bị thông minh: điệnthoại smart phone, máy tính bảng… để truy cập và giám sát từ xa.Đề tài kết hợp vừa báo cháy và phòng cháy từ xa cho người dùng thông qua mạng GSM vàwebsite, giúp hỗ trợ việc quản lý thiết bị và công tác phòng cháy, giảm nguy cơ cháy nổxuống tối thiểu.
TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o -Tp HCM, ngày 04 tháng 08 năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Tuấn Hiệp MSSV: 13141090 Trần Thanh Hoài MSSV: 14141107 Chuyên ngành: Điện tử công nghiệp Mã ngành: 01 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2013, 2014 Lớp: 13141DT1A, 14141DT2C I TÊN ĐỀ TÀI: NGHIÊN CỨU, THI CƠNG HỆ THỐNG PHỊNG CHÁY VÀ BÁO CHÁY CHO NHÀ PHỐ II NHIỆM VỤ Các số liệu ban đầu: - Board Arduino MEGA WiFi R3 ATmega2560 + ESP8266 điều khiển trung tâm mơ hình - Kích thước điều khiển chung 35x20x8cm, chứa tất linh kiện thiết bị khối - Module Sim900A gửi tin nhắn cảnh báo gọi đến chủ nhà công suất tổng vượt ngưỡng cài đặt chủ nhà rời khỏi - Bộ cảnh báo bắt đầu cảnh báo gạt công tắc tay cửa đóng - Cảm biến gas phát đủ lượng khí gas rị rỉ kích hoạt chuông báo động sim900A gửi tin nhắn người dùng Mơ hình tinh chỉnh độ nhạy cảm biến xuống mức thấp - Dùng đo điện để kiểm tra hoạt động thiết bị ii - Màn hình LCD20x4 hiển thị thơng số dịng điện, công suất thiết bị, công suất tổng, nhiệt độ độ ẩm - Mơ hình hoạt động ổn định mạng internet hay 3G đủ mạnh Nội dung thực hiện: - Cài đặt phần mềm lập trình IDE cho máy tính - Cài đặt driver CH340G cho máy tính giao tiếp với kit Arduino MEGA WiFi R3 ATmega2560 + ESP8266 qua cổng USB - Nghiên cứu, tìm hiểu kit Arduino MEGA WiFi R3 ATmega2560 + ESP8266 - Nghiên cứu, tìm hiểu module Sim900A - Thiết kế, xây dựng phần cứng mơ hình - Nghiên cứu, tìm hiểu câu lệnh hàm, chuẩn giao tiếp kết nối lập trình giao tiếp - Xây dựng chương trình điều khiển giao tiếp ESP8266 Arduino Mega2560 - Xây dựng chương trình web, tạo giao diện - Chạy thử nghiệm, cân chỉnh sửa lỗi mơ hình phần mềm - Viết báo cáo luận văn - Báo cáo đề tài tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 10/03/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 18/08/2020 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Trương Ngọc Anh CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH iii TRƯỜNG ĐẠI HỌC SPKT TPHCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Khoa Điện - Điện Tử Độc lập - Tự - Hạnh phúc Bộ Môn Điện Tử Công Nghiệp-Y Sinh Tp Hồ Chí Minh, ngày tháng năm 2020 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Trần Thanh Hoài MSSV: 14141107 Họ tên sinh viên 2: Nguyễn Tuấn Hiệp MSSV: 13141090 Tên đề tài: Nghiên cứu, thi cơng hệ thống phịng cháy báo cháy cho nhà phố Tuần/ngày Nội dung Xác nhận GVHD - Gặp GVHD nhận đề tài Tuần Từ 2/03/2020 đến - Viết đề cương chi tiết 9/03/2020 - Tìm hiểu tham khảo đề tài Tuần Từ 10/03/2020 đến nghiên cứu có liên quan đến điều khiển, 17/03/2020 giám sát xử lý báo cháy Gặp báo cáo với GVHD hướng Tuần Từ 18/03/2020 đến thực đề tài 24/03/2020 - Tìm hiểu cài đặt ngơn ngữ lập trình IDE cho máy tính - Tìm hiểu kit phát triển Arduino MEGA Tuần Từ 25/03/2020 đến Wifi R3 atmega2560 + esp8266 1/04/2020 - Tìm hiểu cảm biến gas MQ-02, module Tuần Từ 9/4/2020 đến sim900A, module đo điện phục vụ 16/04/2020 cho đề tài Tuần - Giao tiếp cảm biến gas MQ-02 với Từ 17/4/2020 đến Arduino Mega2560 kết hợp chuông báo 24/04/2020 - Giao tiếp module Sim900A với Arduino Mega2560 Tuần -Chuẩn bị tải, đấu dây điện để kết nối Từ 25/4/2020 đến module Pzem-004T, kiểm tra hoạt động 2/05/2020 - Báo cáo tiến độ cho GVHD Tuần iv Từ 10/05/2020 đến - Viết chương trình điều khiển cho Arduino 17/05/2020 Mega2560, đọc giá trị Pzem-004T, cảm biến gas, điều khiển sim900A - Chạy mô phỏng, kiểm tra hoạt động thiết bị - Lắp ráp khối điều khiển vào mơ hình, Tuần Từ 18/05/2020 đến gắn đầy đủ tải để kiểm tra hoạt động 25/05/2020 - Viết chương trình kết nối Esp8266 với firebase thông qua wifi -Tạo firebase, kết nối Esp8266 cập nhật Tuần 10 Từ 26/05/2020 đến liệu thực lên database 3/06/2020 - Hồn thành mơ hình Tuần 11 Từ 4/06/2020 đến - Cài đặt phần mềm lập trình giao diện 11/06/2020 web css,html, nodejs - Nghiên cức bước lập trình cho giao diện hồn chỉnh - Lập trình web với html,ccs,nodejs tạo Tuần 12 Từ 12/06/2020 đến giao diện kiểm tra điều khiển trả 19/06/2020 Esp8266 - Chạy mô phỏng, kiểm tra sửa lỗi - Báo cáo tiến độ cho GVHD Tuần 13 Từ 20/06/2020 đến - Viết báo cáo luận văn 27/06/2020 - Hoàn thiện báo cáo Tuần 14 Từ 28/06/2017 đến - Chuẩn bị gặp GVPB 4/07/2017 - Nộp báo cáo cho GVPB Tuần 15 Từ 5/07/2017 đến - Nghiên cứu sâu vào hệ thống 12/07/2017 GV HƯỚNG DẪN (Ký ghi rõ họ tên) v LỜI CAM ĐOAN Đề tài chúng em tự thực dựa vào tham khảo số tài liệu cơng trình nghiên cứu, khơng chép từ tài liệu hay cơng trình có trước Người thực đề tài Nguyễn Tuấn Hiệp Trần Thanh Hoài vi LỜI CẢM ƠN Trong suốt trình thực đồ án tốt nghiệp, chúng em gặp nhiều khó khăn kiến thức hướng xác đề tài Nhờ có hướng dẫn tận tình Thầy Trương Ngọc Anh Thầy môn Điện Tử Công Nghiệp – Y Sinh, chúng em hồn thành đề tài tốt nghiệp “Nghiên cứu, thi cơng hệ thống phịng cháy báo cháy cho nhà phố” Vì thế, lời báo cáo đồ án tốt nghiệp này, chúng em muốn dành lời cảm ơn chân thành sâu sắc đến Thầy Trương Ngọc Anh Thầy môn Điện Tử Công Nghiệp – Y Sinh Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh Mặc dù cố gắng nhiều để thực đề tài với vốn kiến thức hạn hẹp, chúng em khơng thể tránh khỏi thiếu sót Chúng em mong nhận dạy, góp ý quý báu quý Thầy để chúng em hồn thiện đề tài nói riêng đường nghiệp sau nói chung Nhóm chúng em xin chân thành cảm ơn ! Người thực đề tài Nguyễn Tuấn Hiệp Trần Thanh Hoài vii LIỆT KÊ HÌNH ẢNH Hình 2.1 Hệ thống báo cháy đầy đủ Hình 2.2 Module cảm biến khí gas MQ-02 Hình 2.3 Cấu trúc địa thiết bị tớ theo chuẩn One – Wire Hình 2.4 Mơ tả hoạt động chuẩn One – Wire Hình 2.5 Sơ đồ chân module DHT11 Hình 2.6 Cách thức hoạt động Hình 2.7 Bit Hình 2.8 Bit Hình 2.9 Thời gian tồn bit Hình 2.10 Hình ảnh thực tế LCD 20x4 Hình 2.11 Bảng mã kí tự Hình 2.12 Bus I2C thiết bị ngoại vi Hình 2.13 Kết nối thiết bị vào bus I2C ở chế độ chuẩn chế độ nhanh Hình 2.14 Hướng xung Clock hướng đường liệu Hình 2.15 Trình tự truyền bit Hình 2.16 Start bit Stop bit Hình 2.17 Module chuyển đổi I2C cho LCD 20x4 Hình 2.18 Hệ thống truyền liệu bất đồng Hình 2.19 Khung truyền liệu chuẩn giao tiếp UART Hình 2.20 Kiểm tra liệu truyền Hình 2.21 Cách thức hoạt động truyền Hình 2.22 Kết thúc liệu truyền Hình 2.23 Các kiểu kết thúc liệu Hình 2.24 Module PZEM - 004T Hình 2.25 Sơ đồ nối dây PZEM 004T Hình 2.26 Module SIM 800A mini Hình 2.27 Module SIM 800l Hình 2.28 Module SIM 900A Hình 2.29 Giao tiếp UART module SIM vi Arduino Hình 2.30 Giao tiếp UART Module SIM900A Arduino Mega2560 viii Hình 2.31 Module SIM 900A sử dụng Hình 2.32 Module hạ áp LM2596 Hình 2.33 Sơ đồ nguyên lý module LM2596 Hình 2.34 Arduino Mega 2560 Hình 2.35 Sơ đồ chân Arduino Mega 2560 Hình 2.36 Hình ảnh thực tế sơ đồ chân module NodeMCU ESP8266 Hình 2.37 Kit phát triển Arduino MEGA + WiFi R3 ATmega2560 + ESP8266 Hình 2.38 Sơ đồ chuyển USB UART CH340G Hình 2.39 Dip Switch Hình 2.40 Lựa chọn kết nối TX0 TX3 Hình 2.41 Sơ đồ chân Esp8266 Hình 2.42 Phiên phát triển Arduino 2560 với Esp8266 Hình 2.43 Mode chuyển đổi để nạp code cho ESP8266 Hình 3.1 Sơ đồ khối tồn mạch Hình 3.2 Sơ đồ chân Node MCU8266 Hình 3.3 Sơ đồ chân Arduino Mega2560 Hình 3.4 Sơ đồ kết nối Pzem-004T với Mega2560 Hình 3.5 Module Relay kênh Hình 3.6 Sơ đồ kết nối module Relay kênh với Mega2560 Hình 3.7 Sơ đồ kết nối ngõ Relay với thiết bị Hình 3.8 Sơ đồ kết nối LCD 20x4 với Mega2560 Hình 3.9 Kết nối cảm biến khí Gas với Arduino Mega2560 Hình 3.10 Kết nối module Sim900A với Arduino Mega2560 Hình 3.11 Sơ đồ ngun lý tồn mạch Hình 4.1 Sơ đồ mạch in Hình 4.2 Bố trí linh kiện mặt trước board Hình 4.3 Mặt sau board Hình 4.4 Hộp đựng board module giao tiếp Hình 4.5 Hình ảnh mơ hình nhìn từ bên ngồi hộp Hình 4.6 Hình ảnh mơ hình bên hộp Hình 4.7 Lưu đồ chương trình Arduino Mega2560 Hình 4.8 Lưu đồ giải thuật Node MCU 8266 ix padding: 50px 10px; } sidebar owner owner { font-size: 18px; letter-spacing: 0.1em; line-height: normal; text-align: center; padding-top: 30px; } sidebar owner owner { font-size: 20px; letter-spacing: 0.2em; line-height: normal; text-align: center; font-weight: 500; } sidebar owner owner { font-size: 22px; letter-spacing: 0.2em; line-height: normal; text-align: center; font-weight: 500; 134 } sidebar logo{ position: absolute; bottom: 30px; left: calc(50% - 100px); } sidebar logo img{ width: 150px; } /* ================================== main ===================================== */ main{ border: 10px solid #303d43; } main chart{ width: 100%; height: 500px; } main status-data{ width: 100%; border-top: 10px solid #303d43; border-bottom: 10px solid #303d43 ; display: table; 135 } status-data right,.status-data middle,.status-data left{ display: table-cell; vertical-align: top; padding: 10px; } status-data left{ width: 38%; border-right: 10px solid #303d43; } status-data middle{ width: 38%; border-right: 10px solid #303d43; } status-data left left btn{ text-align: right; } status-data right{ width: 24%; } #chart_canvas { display: block; 136 width: 100%; height: 480px; top: 50%; left: 50%; margin-top: 20px; } /* ================================== BASE ===================================== */ input{ width: 100%; } input[type=text] { width: 100%; padding: 7px 7px; margin: 8px 0; box-sizing: border-box; font-size: 86px; text-align: right; background-color: #190B07; 137 color: white; border: none; font-family: 'Roboto Condensed', sans-serif; } img{ width: 100%; max-width: 100%; } a{ outline: none; transition:0.3s; } a:link, a:visited, a:active { text-decoration: none; } p{ margin: 0; padding: 0; } ol, ul { 138 list-style: none; margin: 0; padding: 0; } html { } body { overflow-x: hidden; width: 100%; margin: 0; padding: 0; line-height: 1.6; letter-spacing: 0; height: 100%; word-break: break-word; font-family: 'Roboto Condensed', sans-serif; 139 color: #f0faff; } body *{ box-sizing: border-box; } wrap{ width: 100%; max-width: 100%; margin: auto; font-size: 0; line-height: 1.6; letter-spacing: 0; background: #273238; display: table; } @media (max-width: 767px){ pc{ display: none !important; } } @media (min-width: 768px){ sp{ display: none !important; } 140 a:hover,button:hover{ opacity: 0.7; cursor: pointer; } } Code JS khởi tạo Firebase thông số công suất thiết bị const express = require("express"); const bodyParser = require("body-parser") const Firebase = require("Firebase") // const admin = require("Firebase-admin"); // Init Firebase Firebase.initializeApp({ serviceAccount: "./fir-nodejs-master-dep-Firebase-adminsdk-zldzq- bab6f48bf9.json", databaseURL: "https://fir-nodejs-master-dep.Firebaseio.com" }); // var admin = require("Firebase-admin"); // var serviceAccount = require("./fir-nodejs-master-dep-Firebase-adminsdkzldzq-bab6f48bf9.json"); 141 // admin.initializeApp({ // credential: admin.credential.cert(serviceAccount), // databaseURL: "https://fir-nodejs-master-dep.Firebaseio.com" // }); const NUMBER_OF_SAMPLE_CHART = 30; var power_records = []; var power1_records = []; var power2_records = []; var power3_records = []; var timestamps = []; //Init web-app var app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(express.static("public")); app.set("view engine", 'ejs'); app.set("views", "./views"); 142 app.engine("html", require("ejs").renderFile); function databaseListener() { Firebase.database().ref("/Power1").on("value", (snapshot) => { console.log(`power1 ${snapshot.val()}`); io.emit("respond-env-info", { "device" : 1, "value": snapshot.val() }); }); Firebase.database().ref("/Power2").on("value", (snapshot) => { console.log(`power2 ${snapshot.val()}`); io.emit("respond-env-info", { "device" : 2, "value": snapshot.val() }); }); Firebase.database().ref("/Power3").on("value", (snapshot) => { console.log(`power3 ${snapshot.val()}`); io.emit("respond-env-info", { "device" : 3, 143 "value": snapshot.val() }); }); Firebase.database().ref("/Power4").on("value", (snapshot) => { console.log(`power4 ${snapshot.val()}`); io.emit("respond-env-info", { "device" : 4, "value": snapshot.val() }); }); Firebase.database().ref("/DEV1").on("value", (snapshot) => { console.log(`Dev1 ${snapshot.val()}`); io.emit("response-pin-info", { "device" : 1, "value": snapshot.val() }); }); Firebase.database().ref("/DEV2").on("value", (snapshot) => { console.log(`Dev2 ${snapshot.val()}`); io.emit("response-pin-info", { "device" : 2, 144 "value": snapshot.val() }); }); Firebase.database().ref("/DEV3").on("value", (snapshot) => { console.log(`Dev3 ${snapshot.val()}`); io.emit("response-pin-info", { "device" : 3, "value": snapshot.val() }); }); } app.get("/", (req, res) => { res.render("index.html"); }) var server = require("http").Server(app); var io = require("socket.io")(server); server.listen(3000); io.on("connection", (socket) => { 145 io.on("disconnect", () => {}); socket.on("pin-control", (data) => { var ref = Firebase.database().ref(`${data.pin}`); ref.set(data.state); }); }); setInterval(() => { var time = new Date().toLocaleString("en-US", { timeZone: "Asia/Ho_Chi_Minh" }); Firebase.database().ref("Power1").once("value").then((snapshot)=> { power_records.push(snapshot.val()); if (power_records.length > NUMBER_OF_SAMPLE_CHART) power_records.shift(); }); Firebase.database().ref("Power2").once("value").then((snapshot)=> { power1_records.push(snapshot.val()); 146 if (power1_records.length > NUMBER_OF_SAMPLE_CHART) power1_records.shift(); }); Firebase.database().ref("Power3").once("value").then((snapshot)=> { power2_records.push(snapshot.val()); if (power2_records.length > NUMBER_OF_SAMPLE_CHART) power2_records.shift(); }); Firebase.database().ref("Power4").once("value").then((snapshot)=> { power3_records.push(snapshot.val()); if (power3_records.length > NUMBER_OF_SAMPLE_CHART) power3_records.shift(); }); time = new Date(time); timestamps.push(time.toLocaleTimeString()); if (timestamps.length > NUMBER_OF_SAMPLE_CHART) timestamps.shift(); io.emit("data-for-chart", { "power1": power_records, "power2": power1_records, 147 "power3": power2_records, "power4": power3_records, "time": timestamps }); }, 3000); databaseListener(); 148 ... 5.2.3 Đánh giá 92 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN …………………………….96 6.1 KẾT LUẬN 93 6.2 HƯỚNG PHÁT TRIỂN 93 TÀI LIỆU THAM KHẢO .94 PHỤ LỤC