Ngày nay, sự phát triển của khoa học kỹ thuật đã làm cho đời sống con ngườingày càng được nâng cao. Khi mức sống con người được nâng cao thì đòi hỏi môitrường sống của con người cần được cải thiện nhiều hơn. Sống trong một xã hội mà cácchỉ số môi trường an toàn với sức khỏe của con người là mục tiêu hướng tới của cộngđồng. Chính vì lẽ đó con người cần phải biết được các chỉ số môi trường sống hiện tạiđể từ đó có các biện pháp phòng tránh và cải thiện nó.Hiện nay với sự phát triển mạnh mẽ của IoT (Internet of Things) và giám sát dữliệu đã được mở rộng thông qua web và các thiết bị được kết nối Internet. Từ đó tạođược sự thuận tiện và hiện đại trong cuộc sống của con người.Nội dung của đề tài là áp dụng những kiến thức điện tử đã học để thiết kế mạchđo các chỉ số môi trường. Mạch gồm các cảm biến nhiệt độ, độ ẩm, cường độ ánh sáng,lửa, gas giao tiếp với bộ điều khiển trung tâm là Aduino Nano. Không chỉ hiển thị cácdữ liệu thông qua LCD 16x2, mạch còn giám sát dữ liệu qua Web nhờ module ESP8266và báo động nhờ module Sim800L.Bên cạnh đó mạch còn có hệ thống phòng cháy vàrò rỉ khí gas thông qua máy bơm và quạt. Mô hình cũng được thiết kế dạng hình khốichứa đựng tất cả mạch và cảm biến sử dụng. Số liệu hiển thị trên trên LCD và Web trựcquan, dễ nhìn. Người dùng có thể dựa vào những dữ liệu đó để có các quyết định vàbiện pháp phòng tránh hiệu quả.
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: Thiết kế thi công hệ thống thu thập liệu môi trường, hiển thị thông tin web cảnh báo hỏa hoạn qua SMS GVHD: ThS Võ Đức Dũng SVTH: Lâm Đường Nguyên Nguyễn Quốc Trọng Nhân Tp Hồ Chí Minh – 8/2020 15141224 15141228 TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o Tp HCM, ngày tháng năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Lâm Đường Nguyên MSSV: 15141224 Nguyễn Quốc Trọng Nhân MSSV: 15141228 Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 141 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2015 Lớp: 15141DT I TÊN ĐỀ TÀI: “Thiết kế thi công hệ thống thu thập liệu môi trường, hiển thị thông tin web cảnh báo hỏa hoạn qua SMS” II NHIỆM VỤ Các số liệu ban đầu: Hệ thống cảnh báo hỏa hoạn và rò rỉ khí gas được thực với các số liệu ban đầu sau: - Hệ thống thu thập dữ liệu từ cảm biến lửa, nhiệt đợ, khí gas,quang trở - Hiển thị giá trị thu thập được lên LCD và trang web Thingspeak.com để theo dõi nờng đợ khí gas, nhiệt độ phòng - Nếu phát có gas, lửa hay nhiệt độ quá cao sẽ báo động bằng cách gọi, gửi tin nhắn cho người sử dụng và mở quạt thơng gió nhằm làm giảm nờng đợ khí gas khơng khí, kích hoạt máy bơm hoạt đợng dập tắt lửa Nội dung thực hiện: - Lên ý tưởng đồ án - Tìm hiểu về linh kiện sử dụng - Thiết kế, thi công khối cảm biến đo nhiệt độ, cảm biến phát lửa, cảm biến rò rỉ khí gas i - Thiết kế khối giao tiếp ngoại vi, lấy sở dữ liệu trực tuyến thông qua Internet, truyền nhận thông tin giữa trạm phụ và trạm trung tâm - Vẽ lưu đồ giải thuật - Thiết kế và thi công Thiết kế và thi công hệ thống thu thập dữ liệu môi trường, hiển thị thông tin web và cảnh báo hỏa hoạn qua SMS - Lắp ráp các khối vào mô hình - Chạy thử nghiệm hệ thống - Cân chỉnh hệ thống - Viết luận văn - Báo cáo đề tài tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 07/03/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 04/08/2020 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Thầy Võ Đức Dũng CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ii TRƯỜNG ĐẠI HỌC SPKT TPHCM Khoa Điện - Điện Tử Bộ Mơn Điện Tử Cơng Nghiệp CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc Tp Hồ Chí Minh, ngày 07 tháng 03 năm 2020 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Bản lịch trình đóng vào báo cáo) Họ tên sinh viên: Nguyễn Quốc Trọng Nhân MSSV:15141228 Lớp :15141DT1B Họ tên sinh viên: Lâm Đường Nguyên MSSV: 15141224 Lớp: 15141DT2A Tên đề tài: “Thiết kế thi công hệ thống thu thập liệu môi trường, hiển thị thông tin web cảnh báo hỏa hoạn qua SMS” Tuần/ngày Nội dung Tuần Gặp GVHD để nghe phổ biến yêu cầu làm đồ án, tiến hành chọn đồ án (7/3 – 14/3) Tuần (14/3 – 21/3) Tuần (21/3 – 28/3) Tuần (28/3 – 4/4) Tuần (4/4 – 11/4) Tuần (11/3 – 18/4) Tuần (18/4 – 25/4) Xác nhận GVHD Viết đề cương và lịch trình thực đồ án tốt nghiệp Tìm hiểu sở lý thuyết liên quan tới đề tài: cảm biến khí gas MQ2, cảm biến phát lửa flame sensor, cảm biến nhiệt độ DHT-22, Arduino Nano, động bơm P385, ESP8266 Node MCU, LCD 16X2 Tìm hiểu về giao tiếp giữa các module, các cảm biến với Arduino bộ điều khiển trung tâm Tiến hành thiết kế sơ đờ khối, giải thích chức các khối ( khối ng̀n, khối xử lí, khối hiển thị, khối cảm biến, khối truyền dữ liệu) Tính toán thiết kế khối nguồn, thiết kế sơ đồ toàn mạch và giải thích ngun lý hoạt đợng mạch Tính toán thiết kế khối nguồn, thiết kế sơ đồ toàn mạch và giải thích ngun lý hoạt đợng mạch iii Tuần (25/4 – 2/5) Tuần (2/5 – 9/5) Tuần 10 (9/5 – 16/5) Tuần 11 (16/5 – 23/5) Tuần 12 (23/5 – 30/5) Tuần 13 (30/5 – 6/6) Vẽ PCB Vẽ lưu đồ giải thuật Lập trình code cho VDK và tiến hành thi công mạch Lập trình code cho VDK và tiến hành thi công mạch Kiểm tra , cân chỉnh mạch thi công Viết báo cáo nội dung làm Hoàn thiện báo cáo và gởi cho GVHD để xem xét góp ý lần cuối trước in và báo cáo Làm slide, báo cáo với GVHD GV HƯỚNG DẪN (Ký và ghi rõ họ và tên) iv LỜI CAM ĐOAN Nhóm sinh viên – Lâm Đường Nguyên và Nguyễn Quốc Trọng Nhân xin cam đoan là đồ án nhóm tự thực dưới sự hướng dẫn thầy Võ Đức Dũng Nhóm chỉ tham khảo các tài liệu trước đó và các nghiên cứu mạng online Kết quả công bố khóa luận tốt nghiệp là trung thực không chép từ tài liệu hay công trình có trước đó Tp.HCM, ngày tháng 08 năm 2020 SV thực đồ án ( Ký và ghi rõ họ tên) Lâm Đường Nguyên Nguyễn Quốc Trọng Nhân v LỜI CẢM ƠN Nhóm thực đồ án xin được gửi lời cảm ơn đặc biệt đến giảng viên hướng dẫn thầy Võ Đức Dũng vì giúp đỡ nhóm quá trình thực đồ án, người đưa hướng nghiên cứu, giải đáp thắc mắc, tận tình quan sát nhóm làm việc Trong quá trình thực nhóm tiếp thu được những kiến thức thực tế và cách làm việc nghiêm túc, hiệu quả từ thầy Nhóm em xin gửi lời tri ân thành nhất đến các quý thầy cô khoa Điện điện tử hỗ trợ chúng em về những kiến thức nền tảng vững vàng, tạo điều kiện tốt nhất cho sinh viên quá trình học tập và nghiên cứu Sự hỗ trợ thầm lặng và vô quan trọng từ gia đình và bạn bè là động lực để nhóm có thể làm việc hết khả và hoàn thành đồ án một cách tốt nhất Một lần nữa nhóm vô hân hạnh được làm sinh viên trường ĐH Sư Phạm Kỹ Thuật TPHCM, là học trò những giảng viên đầy tâm huyết, lời cảm ơn này là sự ghi nhận sâu sắc mà nhóm muốn gửi đến thầy cô, gia đình và bạn bè vi MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii LỜI CAM ĐOAN v LỜI CẢM ƠN vi MỤC LỤC vii LIỆT KÊ HÌNH VẼ ix DANH SÁCH BẢN VẼ xi TÓM TẮT xii Chương 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 1.5 BỐ CỤC Chương CƠ SỞ LÝ THUYẾT 2.1 QUY TRÌNH GIÁM SÁT CỦA HỆ THỐNG 2.2 GIỚI THIỆU PHẦN CỨNG 2.2.1 Khối cảm biến 2.2.2 Khối vi điều khiển 2.2.3 Khối hiển thị 10 2.2.4 Mạch chuyển đổi I2C cho LCD 12 2.2.5 Khối nhận tín hiệu 13 2.2.6 Module Sim 800L 15 2.2.7 Module L298 17 2.2.8 Mạch thu phát RF NRF24L01+ 18 2.2.9 Khối nguồn 19 2.3 CÁC CHUẨN TRUYỀN DỮ LIỆU 20 2.3.1 Giao tiếp SPI 20 2.3.2 Giao tiếp UART 21 2.3.3 Giao tiếp I2C 22 Chương TÍNH TỐN VÀ THIẾT KẾ 27 vii 3.1 GIỚI THIỆU 27 3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 28 3.2.1 Thiết kế sơ đồ khối hệ thống 28 3.2.2 Tính toán và thiết kế mạch 32 Chương THI CÔNG HỆ THỐNG 48 4.1 GIỚI THIỆU 48 4.2 THI CÔNG HỆ THỐNG 48 4.2.1 Thi công khối thu thập dữ liệu 48 4.2.2 Khối xử lý trung tâm 51 4.3 ĐÓNG GÓI VÀ THI CƠNG MƠ HÌNH 54 4.3.1 Thi công hộp bảo vệ mạch 54 4.3.2 Thi công mô hình 55 4.4 LẬP TRÌNH HỆ THỐNG 55 4.4.1 Lưu đồ giải thuật 55 4.4.2 Phần mềm lập trình cho vi điều khiển 60 4.5 TÀI LIỆU HƯỚNG DẪN SỬ DỤNG VÀ THAO TÁC 68 Chương KẾT QUẢ THỰC HIỆN, ĐÁNH GIÁ HỆ THỐNG 70 5.1 KẾT QUẢ THỰC HIỆN 70 5.2 ĐÁNH GIÁ HOẠT ĐỘNG CỦA HỆ THỐNG 84 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 85 6.1 KẾT LUẬN 85 6.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI 85 TÀI LIỆU THAM KHẢO 86 Trích dẫn 86 Tài liệu tham khảo 86 Trang web tham khảo 86 PHỤ LỤC 87 Code điều khiển NodeMCU ESP8266 87 Code điều khiển Arduino thu thập dữ liệu 90 Code điều khiển Arduino xử lý trung tâm 95 viii LIỆT KÊ HÌNH VẼ Hình 2-1: Hình ảnh thực tế module cảm biến khí Gas MQ-2 Hình 2-2: Module cảm biến phát lửa Hình 2-3: Cảm biến DHT22 Hình 2-4: Quang trở Hình 2-5:Sơ đồ chân Arduino Nano 10 Hình 2-6: Hình ảnh LCD 16x2 10 Hình 2-7: Module I2C chuyển đổi LCD 12 Hình 2-8: Module ESP8266 NodeMCU Lua CP2102 13 Hình 2-9: Sơ đồ chân Module ESP8266 NodeMCU Lua CP2102 14 Hình 2-10: Module SIM 800L 15 Hình 2-11: Module L298 17 Hình 2-12: Mạch Thu Phát RF NRF24L01+ 18 Hình 2-13: Sơ đồ chân Mạch Thu Phát RF NRF24L01+ 19 Hình 2-14: Kết nối thiết bị với Arduino theo chuẩn giao tiếp SPI 20 Hình 2-15: Cấu trúc một Frame dữ liệu 21 Hình 2-16: Bus I2C và các thiết bị ngoại vi 23 Hình 2-17: Kết nối thiết bị vào bus I2C chế độ chuẩn và chế độ nhanh 23 Hình 2-18: Hướng xung Clock và hướng đường dữ liệu 24 Hình 2-19: Trình tự truyền bit 24 Hình 2-20: Start bit và Stop bit 25 Hình 3-1: Sơ đồ khối thu thập dữ liệu 28 Hình 3-2: Sơ đồ khối thu thập dữ liệu thực tế 29 Hình 3-3: Sơ đồ khối xử lý trung tâm 30 Hình 3-4: Sơ đồ khối xử lý trung tâm thực tế 31 Hình 3-5: Sơ đồ nguyên lý khối cảm biến 33 Hình 3-6: sơ đồ khối khối nguồn 34 Hình 3-7: Adapter 12v/3A 34 Hình 3-8: Module hạ áp LM2596 35 Hình 3-9: sơ đồ chân NRF24L01 35 Hình 3-10: Sơ đồ nguyên lý khối thu thập dữ liệu giao tiếp với NRF24L01 36 Hình 3-11: Sơ đồ nguyên lý khối xử lý trung tâm giao tiếp với NRF24L01 36 Hình 3-12:Chi tiết các chân L298 37 Hình 3-13: sơ đồ nguyên lý kết nối với L298 38 Hình 3-14: Các chân LCD 39 Hình 3-15:Module I2C chuyển đổi LCD 39 Hình 3-16: Sơ đồ nguyên lý khối giao tiếp với LCD 40 Hình 3-17: Sơ đồ chân Esp8266 41 Hình 3-18: Sơ đồ nguyên lý khối giao tiếp với Esp8266 41 Hình 3-19: Sơ đồ chân module Sim 800L 42 Hình 3-20: sơ đồ nguyên lý khối giao tiếp với module sim 43 Hình 3-21: Sơ đồ nguyên lý khối thu thập dữ liệu 45 Hình 3-22: Sơ đồ khối xử lý trung tâm 47 Hình 4-1: PCB mặt sau khối thu thập 48 Hình 4-2: PCB mặt trước khối thu thập 49 ix CHƯƠNG 5: KẾT QUẢ THỰC HIỆN, ĐÁNH GIÁ HỆ THỐNG 5.2 ĐÁNH GIÁ HOẠT ĐỘNG CỦA HỆ THỐNG Hệ thống có thể: • Đo lúc 05 giá trị các cảm biến những thời điểm khác • Hiển thị lúc LCD và Web • Gửi tin nhắn, bật quạt có khí gas, gọi điện thoại, bật máy bơm có hỏa hoạn • Hệ thống hoạt động tương đối ổn định Mạch hoạt động ổn nhiều trường hợp đôi lúc xảy lỗi kết nối dữ liệu từ mô hình lên web yếu tố mạng dữ liệu không ổn định Thời gian cập nhật dữ liệu đo từ cảm biến tối thiểu là 15 giây BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Thiết kế và thi công được “Hệ thống thu thập liệu môi trường, hiển thị thông tin web cảnh báo hỏa hoạn qua SMS” với mục đích giám sát dữ liệu mơi trường và cảnh báo hỏa hoạn để hạn chế sự tổn thất về người và tài sản Bổ sung thêm kiến thức quá trình thực đề tài, khả làm việc nhóm được cải thiện Hệ thống hoạt động tương đối ổn định So với mục tiêu ban đầu đặt ra, nhóm hoàn thành được 95% ❖ Ưu điểm của hệ thống Giải quyết được các vấn đề đặt đề tài - Hệ thống tiêu thụ điện - Dễ quan sát, dễ sử dụng - Chi không quá cao - Phát được nguy hỏa hoạn nhanh chóng ❖ Nhược điểm của hệ thống - Khoảng cách truyền nhận không xa - Tốc độ gửi lên web phụ thuộc vào tốc độ mạng - Mạch không có nguồn dự phòng 6.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI Hệ thống cần được chỉnh sửa để hoàn chỉnh hơn, dưới là những vấn đề nhóm đề nhằm hoàn thiện và để hệ thống gần với thực tế: - Lắp thêm camera giám sát để bảo vệ an ninh - Sử dụng module thu phát sóng RF có ăng ten tăng đợ xác trùn xa (Module thu phát sóng RF CC2530) - Thêm cảm biến để thu thập thêm dữ liệu từ môi trường - Thiết kế web tự tạo để có giao diện mới - Thêm tính tiện nghi điều khiển thiết bị từ xa BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 85 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Trích dẫn [1] http://thoibaotaichinhvietnam.vn/ Tài liệu tham khảo [2] Nguyễn Đình Phú, Giáo Trình: Vi Xử Lý, Xuất bản ĐH Quốc Gia, Tp.HCM, 2016 [3] Trần Thu Hà, Giáo trình Điện tử bản, Đại học SPKT Tp.HCM 2013 [4] Phạm Quang Huy, Nguyễn Cảnh Trung, Lập Trình Điều Khiển Với Arduino, NXB Khoa Học và Kỹ Thuật [5] Trương Đình Nhơn, Phạm Quang Huy, Hướng Dẫn Sử Dụng Arduino, NXB Đại Học Quốc Gia TPHCM [6] Phạm Minh Tuấn “Internet of Things (IoT) cho người mới bắt đầu”, tên Web IoTMAKER, 2017 [7] Trần Xuân Thức - Trần Văn Trí, “Thiết kế và thi cơng hệ thống giám giám sát chỉ số môi trường và hiển thị thông tin Web”, đồ án tốt nghiệp, Trường Đại Học Sư Phạm Kỹ Thuật, 2019 [8] Trần Minh Tâm – Đỗ Thị Huệ, “Thiết kế và thi công hệ thống cảnh báo, phòng chống hỏa hoạn và rò rỉ khí gas”, đờ án tốt nghiệp, Trường Đại Học Sư Phạm Kỹ Thuật, 2019 Trang web tham khảo [9] www.alldatasheet.com [10] http://www.datasheetcatalog.com/ [11] arduino.vn BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 86 PHỤ LỤC PHỤ LỤC Code điều khiển NodeMCU ESP8266 #include "ThingSpeak.h" #include "secrets.h" #include #include "SoftwareSerial.h" SoftwareSerial mySerial(D3, D4); //Rx-Tx char ssid[] = "Nguyen";// your network SSID (name) char pass[] = "12345678";// your network password int keyIndex = 0;// your network key Index number (needed only for WEP) WiFiClient client; int qt= A0;// quang tro anh sang int gtqt; unsigned long myChannelNumber = 1067306; const char * myWriteAPIKey = "663GWDP3BGIV74H3"; String s; String chuoi[] = ""; String a, b, c, d, e, f, g, h, i, j, k, l, m; int a1, b1, c1, d1, e1, f1, g1, h1, i1, r1, k1, l1, m1; long int timer1; void setup() { // put your setup code here, to run once: Serial.begin(115200); mySerial.begin(115200); WiFi.mode(WIFI_STA); ThingSpeak.begin(client); timer1 = 0; } void loop() { // put your main code here, to run repeatedly: if(WiFi.status() != WL_CONNECTED){ Serial.print("Attempting to connect to SSID: "); Serial.println(SECRET_SSID); while(WiFi.status() != WL_CONNECTED){ WiFi.begin(ssid, pass); Serial.print("."); delay(5000); } Serial.println("\nConnected."); } int analogValue = analogRead(qt); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 87 PHỤ LỤC float millivolts = (analogValue/1023.0) * 5000; //5000 is the voltage provided by NodeMCU // bo adc la 10 bit => 2^10 = 1024-1 =1023 gtqt = 100-(millivolts/50);// adc doc ve - 5000 => % adc/50 =% while (mySerial.available() > 0) { char recieved = mySerial.read(); s += recieved; if (recieved == '\n') { //Serial.print("Arduino Received: ") chuoi[0] = s; a = s.charAt(0);//temp b = s.charAt(1);//temp c = s.charAt(2);//temp d = s.charAt(3);//temp e = s.charAt(4);//humi f = s.charAt(5);//humi g = s.charAt(6);//humi h = s.charAt(7);//humi i = s.charAt(8);//gas j = s.charAt(9);//gas k = s.charAt(10);//gas l = s.charAt(11);//gas m = s.charAt(12);//fire a1 = a.toInt();//temp b1 = b.toInt();//temp c1 = c.toInt();//temp d1 = d.toInt();//temp e1 = e.toInt();//humi f1 = f.toInt();//humi g1 = g.toInt();//humi h1 = h.toInt();//humi i1 = i.toInt();//gas r1 = j.toInt();//gas k1 = k.toInt();//gas l1 = l.toInt();//gas m1 = m.toInt();//fire //mode = s.toInt(); Serial.println(s); s = ""; // Clear recieved buffer } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 88 PHỤ LỤC if (millis() - timer1 > 20000) { float temp = a1 * 10 + b1 + c1 * 0.1 + d1 * 0.01; float humi = e1 * 10 + f1 + g1 * 0.1 + h1 * 0.01; int gas = i1 * 1000 + r1 *100 + k1 * 10 + l1; int fire = not(m1); Serial.print("T:"); Serial.println(temp); Serial.print("H:"); Serial.println(humi); Serial.print("Gas:"); Serial.println(gas); Serial.print("Fire:"); Serial.println(fire); ThingSpeak.setField(1, temp); ThingSpeak.setField(2, humi); ThingSpeak.setField(3, gas); ThingSpeak.setField(4, fire); ThingSpeak.setField(5, gtqt); int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey); if(x == 200){ Serial.println("Channel update successful."); } else { // loi 404 tren web Serial.println("Problem updating channel HTTP error code " + String(x)); } timer1 = millis(); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 89 PHỤ LỤC Code điều khiển Arduino thu thập liệu #include "DHT.h" #include #include #include #include #include RF24 radio(7, 8); // CE, CSN const byte address[6] = "00001"; int DHTPIN = A1; // what digital pin we're connected to D4 #define DHTTYPE DHT22 // DHT 22 int a; int smokeA0 = A0; int flameD3 = 3; long int timer1; // Your threshold value int sensorThres = 500;// 400 float h, t; DHT dht(DHTPIN, DHTTYPE); String s,s1; String t_send, h_send, g_send, f_send, send_all; const int numReadings = 10; LiquidCrystal_I2C lcd(0x27,20,4); int readings[numReadings];// the readings from the analog input int readIndex = 0;// the index of the current reading int total = 0;// the running total int average = 0;// the average int flame_value; void uart_send() { send_all = ""; t_send = ""; h_send = ""; g_send = ""; f_send = ""; int temperature = 0; int huminity = 0; int gas = 0; int fire = 0; temperature = t * 100; huminity = h * 100; gas = average; fire = flame_value; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 90 PHỤ LỤC if(temperature < 10) { String trans = "000"; String a = String(temperature); t_send += trans; t_send += a; } else if(temperature >=10 && temperature < 100) { String trans = "00"; String a = String(temperature); t_send += trans; t_send += a; } else if(temperature >=100 && temperature < 1000) { String trans = "0"; String a = String(temperature); t_send += trans; t_send += a; } else { //String trans = "0"; String a = String(temperature); t_send += a; } if(huminity < 10) { String trans = "000"; String a = String(huminity); h_send += trans; h_send += a; } else if(huminity >=10 && huminity < 100) { String trans = "00"; String a = String(huminity); h_send += trans; h_send += a; } else if(huminity >=100 && huminity < 1000) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 91 PHỤ LỤC String trans = "0"; String a = String(huminity); h_send += trans; h_send += a; } else { //String trans = "0"; String a = String(huminity); h_send += a; } if(gas < 10) { String trans = "000"; String a = String(gas); g_send += trans; g_send += a; } else if(gas >=10 && gas < 100) { String trans = "00"; String a = String(gas); g_send += trans; g_send += a; } else if(gas >=100 && gas < 1000) { String trans = "0"; String a = String(gas); g_send += trans; g_send += a; } else { String a = String(gas); g_send += a; } String b = String(fire); f_send += b; send_all += t_send; send_all += h_send; send_all += g_send; send_all += f_send; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 92 PHỤ LỤC Serial.println(send_all); } void setup() { pinMode(smokeA0, INPUT); pinMode(flameD3, INPUT); dht.begin(); Serial.begin(115200); radio.begin(); radio.openWritingPipe(address); radio.setPALevel(RF24_PA_MIN); radio.stopListening(); // truyen du lieu for (int thisReading = 0; thisReading < numReadings; thisReading++) { readings[thisReading] = 0; } while (!Serial) delay(50); lcd.init(); lcd.backlight(); s = "O"; s1 = "O"; timer1 = 0; } void loop() { h = dht.readHumidity(); t = dht.readTemperature(); int H=h*100; int T=t*100; lcd.setCursor(0,0); lcd.print("T="); lcd.print(T/1000); lcd.print((T%1000)/100); lcd.print(","); lcd.print(((T%1000)%100)/10); lcd.print(T%10); lcd.write(0xDF); lcd.print("C"); lcd.setCursor(0,1); lcd.print("H="); lcd.print(H/1000); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 93 PHỤ LỤC lcd.print((H%1000)/100); lcd.print(","); lcd.print(((H%1000)%100)/10); lcd.print(H%10); lcd.print("%"); lcd.setCursor(11,0); lcd.print("GAS:"); lcd.print(s); lcd.setCursor(10,1); lcd.print("FIRE:"); lcd.print(s1); total = total - readings[readIndex]; // read from the sensor: readings[readIndex] = analogRead(smokeA0); // add the reading to the total: total = total + readings[readIndex]; // advance to the next position in the array: readIndex = readIndex + 1; // if we're at the end of the array if (readIndex >= numReadings) { // wrap around to the beginning: readIndex = 0; } average = total / numReadings; if (average > sensorThres) { s = "X"; } else { s = "O"; } flame_value = digitalRead(flameD3); if(flame_value == 1) { s1 = "O"; } else { s1 = "X"; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 94 PHỤ LỤC if(millis() - timer1 > 500) { uart_send(); int str_len = send_all.length() + 1; const char text[str_len]; send_all.toCharArray(text, str_len); radio.write(&text, sizeof(text)); timer1 = millis(); } } Code điều khiển Arduino xử lý trung tâm #define bump // connect to pin D2 #define fan // connect to pin D3 #include #include #include #include #include #include SoftwareSerial mySerial(2, 3); RF24 radio(7, 8); // CE, CSN const byte address[6] = "00001"; String s1; String chuoi[] = ""; String a, b, c, d, e, f, g, h, i, j, k, l, m; int a1, b1, c1, d1, e1, f1, g1, h1, i1, r1, k1, l1, m1; int sensorThres = 500; String SDT="0393051508"; void updateSerial() { delay(100); while (Serial.available()) { mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port } while(mySerial.available()) { Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 95 PHỤ LỤC } void at(String _atcm,unsigned long _dl) { mySerial.print(_atcm+"\r\n"); delay(_dl); } void revice() { if (radio.available()) { char text[32] = ""; radio.read(&text, sizeof(text)); String s(text); s1 += s; chuoi[0] = s1; a = s1.charAt(0);//temp b = s1.charAt(1);//temp c = s1.charAt(2);//temp d = s1.charAt(3);//temp e = s1.charAt(4);//humi f = s1.charAt(5);//humi g = s1.charAt(6);//humi h = s1.charAt(7);//humi i = s1.charAt(8);//gas j = s1.charAt(9);//gas k = s1.charAt(10);//gas l = s1.charAt(11);//gas m = s1.charAt(12);//fire a1 = a.toInt();//temp b1 = b.toInt();//temp c1 = c.toInt();//temp d1 = d.toInt();//temp e1 = e.toInt();//humi f1 = f.toInt();//humi g1 = g.toInt();//humi h1 = h.toInt();//humi i1 = i.toInt();//gas r1 = j.toInt();//gas k1 = k.toInt();//gas l1 = l.toInt();//gas m1 = m.toInt();//fire BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 96 PHỤ LỤC s1 = ""; } } void send_sms() { mySerial.println("AT+CMGF=1"); //To send SMS in Text Mode delay(50); mySerial.println("AT+CMGS=\"+84393051508\"\r"); // change to the phone number you using delay(50); mySerial.println("Co gas phong cua ban"); //the content of the message delay(50); mySerial.println((char)26); //the stopping character delay(50); } void setup() { Serial.begin(9600); radio.begin(); radio.openReadingPipe(0, address); radio.setPALevel(RF24_PA_MIN); radio.startListening(); mySerial.begin(9600); pinMode(bump, OUTPUT); pinMode(fan, OUTPUT); Serial.println("Initializing "); delay(500); s1 = ""; at("AT",1000); } void loop() { updateSerial(); revice(); delay(50); int gas = i1 * 1000 + r1 *100 + k1 * 10 + l1; int fire = m1; if (gas > sensorThres) { digitalWrite(fan, HIGH); send_sms(); delay(10); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 97 PHỤ LỤC } else { digitalWrite(fan, LOW); delay(10); } if(fire == 0) { at("ATD"+SDT+";",500); digitalWrite(bump, HIGH); delay(10); } else { digitalWrite(bump, LOW); delay(10); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 98 ... TỬ CÔNG NGHIỆP – Y SINH CHƯƠNG 1: TỔNG QUAN 1.3 NỘI DUNG NGHIÊN CỨU Đối với đồ án: ? ?Thi? ??t kế thi công hệ thống thu thập liệu môi trường, hiển thị thông tin web cảnh báo hỏa hoạn qua SMS? ?? thi? ?... thu? ??t Điện - Điện tử Mã ngành: 141 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2015 Lớp: 15141DT I TÊN ĐỀ TÀI: ? ?Thi? ??t kế thi công hệ thống thu thập liệu môi trường, hiển thị thông tin web cảnh báo. .. truyền nhận thông tin giữa trạm phụ và trạm trung tâm - Vẽ lưu đồ giải thu? ??t - Thi? ?́t kế và thi công Thi? ?́t kế và thi công hệ thống thu thập dữ liệu môi trường, hiển thi? ? thông tin web