Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 113 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
113
Dung lượng
6,81 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔ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 TRÊN WEB VÀ CẢNH BÁO HỎA HOẠN QUA SMS GVHD: VÕ ĐỨC DŨNG SVTH: LÂM ĐƯỜNG NGUYÊN SVTH: NGUYỄN QUỐC TRỌNG NHÂN SKL 0 Tp Hồ Chí Minh, tháng 08/2020 an 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 an 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 an - 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 an 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 an 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 an 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 an 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 an 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 an 3.1 GIỚI THIỆU 27 3.2 TÍNH TỐ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 an 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 truyề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 an 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 an 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 an 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 an 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 an 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 an 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 an 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 an 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 an 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 an 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 an 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 an 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 an 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 an 98 S an K L 0 ... CÔNG NGHIỆP – Y SINH an 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? ?... 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... 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