Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 104 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
104
Dung lượng
4,27 MB
Nội dung
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 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 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 Hình 4-3: Khối thu thập sau lắp linh kiện 50 Hình 4-4: PCB mặt sau khối trung tâm 51 Hình 4-5: PCB mặt trước khối trung tâm 52 Hình 4-6: Khối trung tâm sau kết nối linh kiện 53 Hình 4-7: Hình ảnh hệ thống sau hoàn thiện hộp bảo vệ 54 Hình 4-8: Hình ảnh mô hình đề tài 55 Hình 4-9: Lưu đồ khối thu thập dữ liệu 56 Hình 4-10: Lưu đồ truyền dữ liệu qua Module NRF24L01 57 Hình 4-11: Lưu đồ chương trình truyền dữ liệu UART sang NodeMCU 57 Hình 4-12: Lưu đồ NodeMCU 58 Hình 4-13: Lưu đồ khối xử lý trung tâm 59 Hình 4-14: Giao diện Arduino IDE 60 Hình 4-15: Chọn Arduino sử dụng 61 Hình 4-16: Chọn cổng COM kết nối với Arduino 62 Hình 4-17: Trình duyệt truy cập vào ThingSpeak 64 Hình 4-18: Giao diện ban đầu Thingspeak 64 Hình 4-19: Giao diện khởi tạo tài khoản ThingSpeaks 65 Hình 4-20: Giao diện cài đặt một số thông số Web 65 Hình 4-21: Giao diện điểm thể giá trị cảm biến đo được các khoảng thời gian khác ThingSpeaks 66 Hình 4-22: Thông tin cảm biến muốn hiển thị lên Server Web 67 Hình 4-23: Giáo sát bằng giao diện đồng hồ Thingspeaks 67 Hình 4-24: Thông tin quang trở với giao diện đồng hồ 68 Hình 4-25: Quy trình thao tác sử dụng hệ thống 69 Hình 5-1: Hình ảnh thực tế mặt trước mô hình 71 Hình 5-2: LCD hiển thị dữ liệu môi trường 71 Hình 5-3: Mạch phát dữ liệu môi trường và gửi dữ liệu lên thinkspeak 72 Hình 5-4: Mạch nhận dữ liệu môi trường và xử lý có hỏa hoạn 73 Hình 5-5: Hình ảnh kết quả so một thời điểm 74 Hình 5-6: Hình ảnh test sự cố hỏa hoạn 75 Hình 5-7: LCD có sự cố hỏa hoạn 75 Hình 5-8: Hình ảnh test sự cố rò rỉ khí gas 76 Hình 5-9: LCD có sự cố rò rỉ khí gas 76 Hình 5-10: Hình ảnh hệ thống gửi cảnh báo đến người dùng 77 Hình 5-11: Hình ảnh giao diện web biểu diễn nhiệt độ dạng máy đo 78 Hình 5-12: Hình ảnh giao diện web biểu diễn nhiệt độ dạng biểu đồ 78 Hình 5-13: Hình ảnh giao diện web biểu diễn độ ẩm dạng máy đo 79 Hình 5-14: Hình ảnh giao diện web biểu diễn độ ẩm dạng biểu đồ 79 Hình 5-15: Hình ảnh giao diện web biểu diễn khí gas dạng máy đo 80 Hình 5-16: Hình ảnh giao diện web biểu diễn khí gas dạng biểu đồ 80 Hình 5-17: Hình ảnh giao diện web biểu diễn trạng thái lửa dạng máy đo 81 Hình 5-18: Hình ảnh giao diện web biểu diễn trạng thái lửa dạng biểu đồ 81 Hình 5-19: Hình ảnh giao diện web biểu diễn ánh sáng dạng máy đo 82 Hình 5-20: Hình ảnh giao diện web biểu diễn ánh sáng dạng biểu đồ 82 Hình 5-21: Các trường hiển thị giá trị các cảm biến thời điểm 83 x DANH SÁCH BẢN VẼ Bảng 2-1: Thông số kỹ thuật cảm biến khí gas MQ-2 Bảng 2-2: Thông số kỹ thuật DHT22 Bảng 2-3: Chức các chân LCD 16x2 11 Bảng 3-1: Danh sách linh kiện sử dụng nguồn 5V 44 Bảng 3-2: Danh sách linh kiện sử dụng nguồn 3.3V 44 Bảng 3-3: Danh sách linh kiện khối xử lý trung tâm 46 Bảng 4-1: Bảng thống kê linh kiện sử dụng cho khối thu dữ liệu 50 Bảng 4-2: Bảng thống kê linh kiện sử dụng cho khối trung tâm 52 Bảng 5-1: Bảng so sánh giá trị thu được so với nhiệt ẩm kế FY-11 74 xi TÓM TẮT Ngày nay, sự phát triển khoa học kỹ thuật làm cho đời sống người ngày càng được nâng cao Khi mức sống người được nâng cao thì đòi hỏi môi trường sống người cần được cải thiện nhiều Sống một xã hội mà các chỉ số môi trường an toàn với sức khỏe người là mục tiêu hướng tới cợng đờng Chính vì lẽ đó người cần phải biết được các chỉ số môi trường sống để từ đó có các biện pháp phòng tránh và cải thiện nó Hiện với sự phát triển mạnh mẽ 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à đại cuộc sống người Nội dung đề 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ác dữ liệu thông qua LCD 16x2, mạch còn giám sát dữ liệu qua Web nhờ module ESP8266 và 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 thiết kế dạng hình khối chứa đựng tất cả mạch và cảm biến sử dụng Số liệu hiển thị trên LCD và Web trực quan, 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ả xii CHƯƠNG 1: TỔNG QUAN Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Theo số liệu thống kê tháng đầu năm 2020, địa bàn cả nước xảy 1490 vụ cháy, nổ, làm 48 người chết và 111 người bị thương, thiệt hại ước tính gần 336,65 tỷ đờng [1] Số liệu là một số đáng báo động về tình trạng phòng chống cháy nổ nhân dân chưa có đủ thiết bị an toàn để phòng chống hỏa hoạn Trong đó yếu tố môi trường ảnh hưởng rất lớn, vì thế với mục đích kiểm soát chỉ số môi trường phòng ngừa nguy cháy nổ nhóm chúng em quyết định thực đề 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” Dựa thực tế là chỉ có những thiết bị phòng cháy đơn giản là đầu báo cháy, đầu báo khói, đầu báo xì gas, hay các bình chữa cháy di động vẫn chỉ giải quyết được phần nào tượng cháy nổ và chưa hiệu quả Vấn đề đặt là cần một hệ thống có thể thu thập dữ liệu môi trường hiển thị lên website, cảnh báo cho người dùng có hỏa hoạn, rò rỉ khí gas và người dùng có thể giám sát trực tiếp số liệu internet thông qua laptop là smart phone Nhóm em vận dụng các kiến thức được học trường [2] khảo sát thực tế để có thể hoàn thành được hệ thố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 dựa nền tảng kiến thức về lĩnh vực điện tử, xã hội và môi trường Nhóm phát triển hệ thống dựa đồ án môn học trước là hệ thống báo quá nhiệt độ qua SMS Hệ thống sẽ được cải tiến thêm về khả phát lửa, báo cháy, rò rỉ khí gas, có sở dữ liệu trực tuyến cho người dung 1.2 MỤC TIÊU 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 để giúp người dùng hạn chế tượng cháy nổ, rò rỉ khí gas, đảm bảo an toàn về tính mạng tài sản Sử dụng được vi điều khiển Arduino Nano, module NodeMCU8266, các loại cảm biến, BỘ MÔN ĐIỆN 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” thì nội dung cần thực bao gờm: • Nội dung 1: Lên ý tưởng thực đờ án, tìm hiểu về linh kiện sử dụng • Nội dung 2: 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, • Nội dung 3: 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 • Nội dung 4: Vẽ lưu đờ giải thuật • Nội dung 5: Thiết kế và tiến hành viết chương trình cho vi điều khiển • Nội dung 6: 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 • Nội dung 7: Lắp gáp các khối vào mơ hình • Nội dung 8: Chạy thử nghiệm, cân chỉnh hệ thống • Nội dung 9: Viết luận văn • Nội dung 10: Báo cáo đề tài tốt nghiệp 1.4 GIỚI HẠN Các thông số giới hạn đề tài bao gồm: - Hệ thống chỉ sử dụng những phòng nhỏ phòng bếp: 3x3m, phòng khách: 5x5m, garage 5x5m - Sử dụng động bơm P385 12VDC, kích thước: 86x46x46 mm để phun nước xử lí hỏa hoạn - Giám sát nhiệt độ, ánh sáng, phát lửa, rò rỉ khí gas bằng cảm biến và sử dụng vi điều khiển Arduino Nano (5VDC) làm khối xử lí trung tâm - Các trạm giám sát truyền nhận thông tin bằng sóng RF- khả truyền 100m môi trường không có vật cản và hiển thị dữ liệu LCD 16X2 và sở dữ liệu trực tuyến - Sử dụng cảm biến phát lửa flame sensor (3.3V-5VDC) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƯƠNG 1: TỔNG QUAN - Sử dụng cảm biến nhiệt độ DHT-22(5VDC), nhiệt độ hoạt động -40 oC ~ 80oC - Sử dụng cảm biến phát khí gas MQ-2 (5VDC), chỉ phát được các loại khí LPG, Metan, Hydrogen 1.5 BỐ CỤC • Chương 1: Tổng quan Chương này trình bày đặt vấn đề lý chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án • Chương 2: Cơ Sở Lý Thuyết Chương này tập trung vào các lý thuyết liên quan đến đề tài bao gồm các kiến thức về các loại module, các thiết bị ngoại vi, vi điều khiển sử dụng hệ thống • Chương 3: Thiết Kế Tính Tốn Chương này trình bày về sơ đờ khối và sơ đồ nguyên lý hệ thống, trình bày chi tiết về các loại linh kiện, giao thức giao tiếp giữa các module với • Chương 4: Thi Cơng Hệ Thống Dựa sơ dồ nguyên lý tiến hành thi công phần cứng là lập trình phầm mềm cho hệ thống đáp ứng được các yêu cầu định • Chương 5: Kết Qủa, Nhận Xét Đánh Giá Chương này sẽ trình bày kết quả mà nhóm thực so với mục tiêu ban đầu, nhận xét hoạt đợng hệ thống • Chương 6: Kết Luận Hướng Phát Triển Tóm lược lại những điều nhóm thực hiện, đồng thời đưa hướng phát triển để có được một đề tài hoàn thiện BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Chương CƠ SỞ LÝ THUYẾT 2.1 QUY TRÌNH GIÁM SÁT CỦA HỆ THỐNG Hệ thống gờm phần chính: Phần thứ nhất là khối thu thập dữ liệu gồm các cảm biến phát khí gas, cảm biến phát lửa và cảm biến nhiệt tương ứng với các cảm biến sau : cảm biến MQ2, Flame Sensor phát lửa, cảm biến DHT22, cảm biến ánh sáng Các cảm biến này sẽ thu thập thông tin môi trường sau đó sẽ gửi thông tin đến trung tâm xử lý bằng công nghệ truyền dẫn không dây thông qua bộ phát sóng cao tần (RF) Phần thứ hai là bộ điều khiển trung tâm có nhiệm vụ nhận tín hiệu gửi về từ các khối thu thập dữ liệu thông qua bộ thu sóng cao tần để thực bật quạt,máy bơm, gửi tin nhắn và gọi thông báo nếu có sự cố xảy Hiển thị các thông số môi trường thu được lên giao diện giám sát 2.2 GIỚI THIỆU PHẦN CỨNG 2.2.1 Khối cảm biến 2.2.1.1 Cảm biến khí gas Cảm biến khí ga MQ-2 là mợt những loại cảm biến được sử dụng để nhận biết: LPG, i-butan, Propane, Methane , Alcohol, Hydrogen, Smoke và khí gas Được thiết kế với độ nhạy cao, thời gian đáp ứng nhanh Giá trị đọc được từ cảm biến sẽ được đọc về từ chân Analog vi điều khiển Vật liệu nhạy cảm cảm biến khí MQ-2 là SnO2, có đợ dẫn thấp khơng khí Khi phát có khí đốt dễ cháy, đợ dẫn cảm biến nhiệt độ cao với nờng đợ khí tăng lên ❖ Đặc tính của cảm biến • Đợ nhạy tốt với khí dễ cháy phạm vi rợng • Đợ nhạy cao đối với LPG, Propane và Hydrogen • Tuổi thọ cao và chi phí thấp • Mạch đơn giản BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 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? ?... NGHIỆP – Y SINH 27 CHƯƠNG 3: TÍNH TỐN VÀ THI? ??T KẾ 3.2 TÍNH TỐN VÀ THI? ??T KẾ HỆ THỐNG 3.2.1 Thi? ??t kế sơ đồ khối hệ thống Hình 3-1: Sơ đồ khối thu thập dữ liệu ❖ Chức khối • Khối xử lý : nhận... 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