Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 155 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
155
Dung lượng
4,52 MB
Nội dung
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ơ đồ nguyên 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 Hình 4.9 Lưu đồ chương trình đọc cảm biến PZEM Hình 4.10 Lưu đồ chương trình gửi gọi qua Sim Hình 4.11 Cửa sổ làm việc Arduino IDE Hình 4.12 Các thành phần Nodejs Hình 4.13 Cửa số Library Manager Hình 4.14 Project setting Firebase Hình 4.15 Database secrets Firebase Hình 4.16 Code Database secrets Hình 4.17 Realtime Database Firebase Hình 4.19 Các thành phần Nodejs Hình 4.20 Giao diện phần mềm Bitvise SSH Client Hình 4.21 Giao diện viết lệnh Terminal Hình 4.22 Cấu trúc website Hình 4.23 Cấu trúc HTML Hình 4.24 Chương trình định nghĩa nút nhấn, trạng thái thiết bị HTML Hình 4.25 Chương trình định dạng nút nhấn trạng thái thiết bị Hình 4.26 Chương trình khai báo kết nối Firebase Hình 4.27 Chương trình lắng nghe thay đổi Realtime Database Hình 4.28 Chương trình xử lý nút nhấn website Hình 4.29 Chương trình cập nhật giá trị nút nhấn website Hình 5.1 Hình giao diện đăng nhập địa web Hình 5.2 Cơng suất trạng thái thiết bị Hình 5.3 Hiển thị trạng thái bàn nút nhấn điều khiển ON/OFF thiết bị Hình 5.4 Điều khiển tắt thiết bị 2,3 4, bật thiết bị Hình 5.5 Thiết bị tắt, thiết bị 2,3 bật Hình 5.6 Hiển thị độ ẩm, nhiệt độ, tổng cơng suất thiết bị Hình 5.7 Tin nhắn cảnh báo có thiết bị hoạt động x LIỆT KÊ BẢNG Bảng 2.1 Chức chân LCD Bảng 2.2 Chức chân RS R/W Bảng 2.3 Tập lệnh LCD Bảng 2.4 Bảng thông số cấu hình Dip Switch Bảng 2.5 So sánh thơng số kỹ thuật Arduino Bảng 3.1 Bảng kết nối I2C LCD 20x4 với Mega2560 Bảng 3.2 Bảng tổng dòng điện cung cấp cho mạch xi MỤC LỤC Trang bìa ……………………………………………………………………………….i Nhiệm vụ đồ án ………………………………………………………………………… ii Lịch trình …………………………………………………………………………… iv Cam đoan …………………………………………………………………………… vi Lời cảm ơn ………………………………………………………………………… vii Liệt kê hình ảnh …………………………………………………………………… viii Liệt kê bảng vẽ…………………………………………………………………………………… xii Mục lục …………………………………………………………………………………………….xiii Tóm tắt ……………………………………………………………………………… xv CHƯƠNG 1: TỔNG QUAN………………………………………………………… 1.1.ĐẶT VẤN ĐỀ 1.2.MỤC TIÊU 1.3.NỘI DUNG NGHIÊN CỨU 1.4.GIỚI HẠN CỦA ĐỀ TÀI CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ………………………………………………… 2.1 HỆ THỐNG BÁO CHÁY THỰC TẾ 2.1.1 Giới thiệu hệ thống báo cháy tự động 2.2.2 Giới thiệu loại khí gas công nghiệp 2.2 GIỚI THIỆU MODULE CẢM BIẾN KHÍ GAS MQ-02 2.3 TỔNG QUAN VỀ MODULE CẢM BIẾN NHIỆT ĐỘ VÀ ĐỘ ẨM DHT11 2.3.1 Giới thiệu giao tiếp One – Wire 2.3.2 Giới thiệu cảm biến độ ẩm nhiệt độ 2.4 TỔNG QUAN VỀ MÀN HÌNH LCD 20X4 13 2.4.1 Giới thiệu sơ lược LCD 13 2.4.2 Tập lệnh LCD 17 2.5 MODULE CHUYỂN ĐỔI I2C 20 2.5.1 GIỚI THIỆU VỀ CHUẨN GIAO TIẾP I2C 20 2.5.2 Module chuyển đổi I2C cho LCD 24 2.6 CHUẨN GIAO TIẾP UART .25 2.7 MODULE ĐO ĐIỆN NĂNG PZEM – 004T .29 2.8 MODULE SIM 900A 31 2.8.1 Các loại module sim thị trường .31 2.8.2 Giao tiếp UART với vi điều khiển 32 2.8.3 Tập lệnh AT 33 Các lệnh gọi điện: 34 Các lệnh nhắn tin: 34 xii 2.8.4 Giới thiệu module Sim 900A 35 2.9 MODULE HẠ ÁP LM2596 36 2.10 GIỚI THIỆU KIT ARDUINO MEGA WIFI R3 ATMEGA2560 + ESP8266 37 2.10.1 Tổng quan module Arduino Mega 2560 37 2.10.2 Giới thiệu ESP8266 42 2.10.3 Kit phát triển Arduino MEGA WiFi R3 ATmega2560 + ESP8266 44 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG ………………………………………………53 3.1 GIỚI THIỆU 50 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 50 3.2.1 Thiết kế sơ đồ khối hệ thống 50 3.2.2 Tính tốn thiết kế mạch 51 3.2.3 Sơ đồ nguyên lý toàn mạch 60 CHƯƠNG 4: THI CÔNG HỆ THỐNG …………………………………………… 64 4.1 GIỚI THIỆU 61 4.2 THI CÔNG HỆ THỐNG 61 4.2.1 Thi công bo mạch 61 4.2.2 Lắp ráp kiểm tra Error! Bookmark not defined 4.3 ĐÓNG GĨI VÀ THI CƠNG MƠ HÌNH 64 4.3.1 Đóng gói điều khiển .64 4.3.2 Thi cơng mơ hình 65 4.4 LẬP TRÌNH HỆ THỐNG 66 4.4.1 Lưu đồ giải thuật 66 4.4.2 Giới thiệu phần mềm lập trình cho vi điều khiển 70 CHƯƠNG 5: KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ ……………………………89 5.1 KẾT QUẢ 86 5.1.1 GIAO DIỆN WEB 87 5.1.2 Phần cứng Sim 89 5.2 NHẬN XÉT – ĐÁNH GIÁ 91 5.2.1 Nhận xét 91 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 95 xiii TĨM TẮT Cơng tác phịng cháy báo cháy quan trọng tất người, liên quan trực tiếp đến tính mạng người cải Thói quen quên tắt điện hay bỏ dở việc nấu nướng, việc liên quan đến nguy cháy nổ khiến không trở tay kịp Mỗi người lúc có nhiều lúc bận rộn hay lơ việc giám sát an toàn cháy nổ điện khí gas, tính thiết yếu nên nhóm em định chọn đề tài “Nghiên cứu, thi công hệ thống phòng cháy báo cháy cho nhà phố” Đồng thời nhu cầu quản lý, giám sát kiểm sốt việc đo điện năng, thơng số: điện áp, dòng điện, tiêu chất lượng điện từ xa cần thiết cho nhà quản lý, công ty điện lực cá nhân Mặc dù đạt đến mức độ thành công định, nhiên hệ thống quản lý giám sát điện chi phí cao hạn chế việc truy cập từ xa Ngoài ra, xu hướng sử dụng thiết bị thơng minh: điện thoại smart phone, máy tính bảng… để truy cập giám sát từ xa Đề tài kết hợp vừa báo cháy phòng cháy từ xa cho người dùng thông qua mạng GSM website, giúp hỗ trợ việc quản lý thiết bị cơng tác phịng cháy, giảm nguy cháy nổ xuống tối thiểu xiv Chương TỔNG QUAN 1.1.ĐẶT VẤN ĐỀ Như biết cơng tác phịng cháy chữa cháy (PCCC) điều quan trọng PCCC giúp làm hạn chế đến mức thấp rủi ro mà cháy nổ gây người tài sản Cháy nổ đời sống hàng ngày dễ xảy ở nơi đâu Nếu người khơng có phòng vệ biện pháp ngăn chặn kịp thời cháy nổ gây hậu khơn lường, đe dọa đến tính mạng vật chất, đặc biệt ảnh hưởng đến khu vực lân cận người xung quanh Để nâng cao hiệu công tác PCCC, cần nâng cao ý thức tự giác, trách nhiệm người dân Địa phương cần tổ chức tuyên truyền cho nhân dân hiểu tác hại nghiêm trọng cháy nổ cách phòng chống cháy nổ Bên cạnh đó, trang bị cho người dân kiến thức trường hợp có cháy nổ xảy Để giảm thiểu vụ cháy nổ nhà máy, xí nghiệp, cơng ty, hay hộ gia đình, cần: trang bị thiết bị giúp phòng chống cháy bình chữa cháy, lắp đặt hệ thống chữa cháy, còi báo cháy , kiểm tra điểm dễ cháy cầu dao, ổ cắm điện …Luôn đề cao cảnh giác tình có cháy nổ, thường xuyên tổ chức buổi tập huấn giúp nâng cao kiến thức PCCC Với tất lý với tầm quan trọng PCCC đời sống, nhóm chúng em định chọn đề tài “Nghiên cứu, thi cơng hệ thống phịng cháy báo cháy cho nhà phố” Mục đích cuối đề tài giúp phát hiện, ngăn chặn hạn chế đến mức thấp rủi ro cháy nổ xảy đến với người, từ có hành động kịp thời để ngăn chặn 1.2.MỤC TIÊU Thiết kế thi cơng mơ hình điều khiển đo điện thiết bị điện nhà đèn, quạt, máy sấy tóc,… qua website Các tín hiệu gửi lên Firebase làm nơi lưu trữ liệu giao tiếp với Arduino Mega2560 thông qua NodeMCU ESP8266 kit phát triển để điều khiển có hiển thị thơng số, giá trị tín hiệu đo LCD Cảnh báo trực tiếp từ đầu báo đến người dùng thông qua tin nhắn SMS gọi đến Arduino Mega2560 đóng vai trị điều khiển xử lí 1.3.NỘI DUNG NGHIÊN CỨU Trong q trình thực đề tài “Nghiên cứu, thi cơng hệ thống phịng cháy báo cháy cho nhà phố”, nhóm chúng em lên kế hoạch giải hoàn thành nội dung sau: Nội dung 1: Nghiên cứu Kit Arduino MEGA WiFi R3 ATmega2560 + ESP8266, Module Sim900A module đo điện tiêu thụ PZEM-004T Nội dung 2: Kết nối cảm biến khí gas, chng báo động vào Arduino Mega 2560 Nghiên cứu giao tiếp Module Sim900A với Arduino Mega 2560 Nội dung 3: Nghiên cứu xây dựng Pzem-004T đo điện tiêu thụ thiết bị Giao tiếp Arduino Mega 2560 với ESP8266 Nội dung 4: Xây dựng Firebase, thiết kế giao diện web Lập trình web Nội dung 5: Thiết kế mơ hình cho hệ thống Nội dung 6: Thi công phần cứng, chạy thử nghiệm hiệu chỉnh hệ thống Nội dung 7: Viết báo cáo thực Nội dung 8: Bảo vệ luận văn 1.4.GIỚI HẠN CỦA ĐỀ TÀI Các thông số giới hạn đề tài bao gồm: - Hệ thống dùng Kit phát triển MEGA WiFi R3 ATmega2560 + ESP8266 để xây dựng giao tiếp với module Sim900A, module đo điện Pzem-004T, module relay kênh, cảm biến gas MQ-02, LCD20x4, cảm biến nhiệt độ độ ẩm DHT11 - Board mạch đặt hộp nhựa có kích thước 35x20x8cm - Mơ hình nhà phố tiết diện nhỏ với cảm biến gas, đo điện tương đương với điều khiển đo tối đa thiết bị điện - Chỉ đo điện áp xoay chiều pha khoảng 80VAC – 250VAC Dòng điện đo giới hạn – 100A Công suất đo giới hạn 0-26 kW Điện tiêu thụ giới hạn – 10000 kWh - Điều khiển thiệt bị quạt, đèn, … công suất tiêu thụ 1000W, không dùng cho tải động - Hiển thị thông số điện năng, tổng công suất nhiệt độ độ ẩm hình LCD 20x4 - Sử dụng cơng tắc hành trình cho cửa đóng mở, đồng thời thêm cơng tắc bật tay chủ nhà ngồi, mục đích để cảnh báo thiết bị hoạt động - Hệ thống chưa thể đáp ứng thao tác lệnh người dùng phụ thuộc nhiều vào tốc độ mạng tốc độ xử lý vi điều khiển thời gian truyền tín hiệu thiết bị hệ thống 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 ... thi? ??t bị hệ thống Chương 2: CỞ SỞ LÝ THUYẾT 2.1 HỆ THỐNG BÁO CHÁY THỰC TẾ 2.1.1 Giới thi? ??u hệ thống báo cháy tự động Hệ thống báo cháy tự động hệ thống gồm thi? ??t bị cảm biến có nhiệm vụ báo động... biệt, với hệ thống báo cháy tự động sử dụng đầu báo cháy khói cịn có nhiệm vụ quan trọng “cảnh báo? ??, tức phát thông báo cháy, cháy âm ỉ chưa có lửa Quy trình hoạt động hệ thống báo cháy đầy... rộn hay lơ việc giám sát an toàn cháy nổ điện khí gas, tính thi? ??t yếu nên nhóm em định chọn đề tài ? ?Nghiên cứu, thi cơng hệ thống phịng cháy báo cháy cho nhà phố? ?? Đồng thời nhu cầu quản lý, giám