(Đồ án hcmute) giám sát mức tiêu thụ điện năng của mô hình một xưởng sản xuất sử dụng hệ thống iot

73 3 0
(Đồ án hcmute) giám sát mức tiêu thụ điện năng của mô hình một xưởng sản xuất sử dụng hệ thống iot

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG CỦA MƠ HÌNH MỘT XƯỞNG SẢN XUẤT SỬ DỤNG HỆ THỐNG IoT GVHD: TS.NGUYỄN THỊ LƯỠNG SVTH: PHẠM NGỌC ANH MSSV: 09101004 SVTH: TRẦN THANH DUY MSSV: 11941006 SKL 0 6 Tp Hồ Chí Minh, tháng 01/2017 an ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG TRƢỜNG ĐH 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 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp HCM, ngày 09 tháng năm 2017 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Phạm Ngọc Anh Trần Thanh Duy Kỹ thuật Điện - Điện tử Đại học quy MSSV: 09101004 MSSV: 11941006 Mã ngành: 01 Mã hệ: I TÊN ĐỀ TÀI: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG CỦA MƠ HÌNH MỘT XƢỞNG SẢN XUẤT SỬ DỤNG HỆ THỐNG IoT II NHIỆM VỤ Các số liệu ban đầu:  Tính tốn cơng suất cho thiết bị có công suất thấp  Nghiên cứu ngôn ngữ lập trình Nodejs Nội dung thực hiện:  Khảo sát module wifi ESP8266  Khảo sát cảm biến dòng điện ACS712  Khảo sát kit Raspberry Pi B+  Lập trình webserver kit Raspberry Pi B+  Tính công suất vẽ đồ thị cho thiết bị giám sát III NGÀY GIAO NHIỆM VỤ: 25/09/2016 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 01/01/2017 V HỌ VÀ TÊN CÁN BỘ HƢỚNG DẪN: TS Nguyễn Thị Lƣỡng CÁN BỘ HƢỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP PHẠM NGỌC ANH – TRẦN THANH DUY an ii ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG TRƢỜNG ĐH 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 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp.HCM, ngày 17 tháng 10 năm 2016 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Phạm Ngọc Anh Lớp: 091011A MSSV: 09101004 Họ tên sinh viên 2: Trần Thanh Duy Lớp: 119410DT MSSV: 11941006 Tên đề tài: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG CỦA CÁC THIẾT BỊ ĐIỆN TRONG MỘT XƢỞNG SẢN XUẤT SỬ DỤNG HỆ THỐNG IoT Tuần Nội dung Thầy trƣởng BM phân công GVHD Tiến hành liên hệ Xác nhận GVHD gặp GVHD GVHD xác nhận đề tài đƣợc chọn thức Tiến hành viết đề cƣơng cho đề tài 3+4 Tìm hiểu sở lý thuyết Module Wifi ESP8266, module cảm biến dòng điện ACS712 thiết bị lên quan Khảo sát mơ hình thiết bị xƣởng sản xuất Báo cáo tiến độ cho GVHD Khảo sát, thiết kế mạch nguyên lý Tính toán chọn thiết bị thực nghiệm cho đề tài Xây dựng hệ thống giám sát mức tiêu thụ điện qua web server tiến hành test mạch testboard Báo cáo tiến độ cho GVHD 8+9 Tiến hành thi công mạch(kết nối thiết bị, module liên quan…) Báo cáo tiến độ cho GVHD 10 + 11 Lập trình cho việc lấy liệu từ cảm biến, vẽ đồ thị mức tiêu thụ điện theo thông tin cập nhật PHẠM NGỌC ANH – TRẦN THANH DUY an iii ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG thời gian qui định xƣởng sản xuất 12 Thi cơng mơ hình xƣởng sản xuất, lắp đặt thiết bị mạch điều khiển vào mơ hình 13 Kiểm tra hoạt động ổn định mạch, hoàn chỉnh mạch nguyên lý nhƣ thẩm mỹ Báo cáo tiến độ cho GVHD 14 Viết báo cáo, luận văn tốt nghiệp 15 Gửi GVHD báo cáo luận văn tốt nghiệp xem xét chỉnh sửa trao đổi với GVHD vấn đề liên quan GV HƢỚNG DẪN (Ký ghi rõ họ tên) PHẠM NGỌC ANH – TRẦN THANH DUY an iv ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG LỜI CAM ĐOAN Đề tài nhóm tự nghiên cứu thực dựa vào số tài liệu trƣớc khơng chép từ tài liệu hay cơng trình có trƣớc Nhóm thực đề tài Phạm Ngọc Anh PHẠM NGỌC ANH – TRẦN THANH DUY an Trần Thanh Duy v ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG LỜI CẢM ƠN Qua khoảng thời gian học tập nghiên cứu thực đề tài Khóa Luận Tốt Nghiệp nhóm hoàn thành đề tài đƣợc giao Chúng em xin gởi đến tất Thầy Cô Trƣờng Đại học Sƣ Phạm Kỹ Thuật Tp Hồ Chí Minh nói chung Thầy Cơ Khoa Điện – Điện tử nói riêng lời cảm ơn chân thành, Thầy Cô cung cấp cho chúng em kiến thức bổ ích kỹ nhƣ kiến thức chuyên môn để chúng em thực tốt đề tài khóa luận tốt nghiệp Đặc biệt chúng em xin chân thành cảm ơn Cô Nguyễn Thị Lƣỡng ngƣời trực tiếp hƣớng dẫn chúng em suốt trình thực đề tài Cơ nhiệt tình việc hƣớng dẫn nhƣ đóng góp ý kiến giúp chúng em hồn thành đề tài tốt Chúng em gửi lời đồng cảm ơn đến bạn bè chia sẻ trao đổi kiến thức nhƣ kinh nghiệm quý báu thời gian thực đề tài Và cuối chúng em gởi lời cảm ơn đến cha mẹ Xin chân thành cảm ơn! Nhóm thực đề tài Phạm Ngọc Anh PHẠM NGỌC ANH – TRẦN THANH DUY an Trần Thanh Duy vi ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii 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 LIỆT KÊ HÌNH VẼ ix LIỆT KÊ BẢNG xi TÓM TẮT xii Chƣơng TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ .1 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN .2 1.5 BỐ CỤC Chƣơng CƠ SỞ LÝ THUYẾT 2.1 CÁCH TÍNH ĐIỆN NĂNG TIÊU THỤ CỦA ĐỘNG CƠ .4 2.2 GIỚI THIỆU VỀ PHẦN CỨNG 2.2.1 Khảo sát Module Wifi ESP8266 .5 2.2.2 Khảo sát cảm biến dòng ACS712 2.2.3 Khảo sát kit Raspberry Pi B+ để lập trình tạo Web server 11 2.2.4 Một số thiết bị có liên quan khác .14 Chƣơng TÍNH TỐN VÀ THIẾT KẾ 18 3.1 THIẾT KẾ PHẦN CỨNG CỦA HỆ THỐNG .18 3.1.1 Thiết kế sơ đồ khối hệ thống 18 3.1.2 Chức khối hệ thống 19 3.2 SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH 20 3.2.1 Khối nguồn 22 Chƣơng THI CÔNG HỆ THỐNG 23 4.1 THI CÔNG HỆ THỐNG .23 4.1.1 Thi công bo mạch .23 4.1.2 Lắp ráp kiểm tra .24 4.2 LẬP TRÌNH HỆ THỐNG 26 4.2.1 Lƣu đồ giải thuật 26 PHẠM NGỌC ANH – TRẦN THANH DUY an vii ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG 4.2.2 Phần mềm lập trình cho vi điều khiển 32 Chƣơng KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 42 5.1 KẾT QUẢ THI CÔNG 42 5.1.1.Kết thi công phần cứng 42 5.1.2 Kết thi lập trình cho webserver 44 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ .48 Chƣơng KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 50 6.1KẾT LUẬN .50 6.2 HƢỚNG PHÁT TRIỂN .50 TÀI LIỆU THAM KHẢO 52 PHẠM NGỌC ANH – TRẦN THANH DUY an viii ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG LIỆT KÊ HÌNH VẼ Hình 2.1 Hình thơng số kỹ thuật máy điều hòa Hình 2.2 Hình Module Wifi ESP8266 Hình 2.3 Hình sơ đồ chân ESP8266 Hình 2.4 Hình ảnh thực tế sơ đồ chân ACS712 Hình 2.5 Hình ảnh Raspberry Pi Model B+ 11 Hình 2.6 Cấu trúc phần cứng Raspberry Pi model B+ 12 Hình 2.7 Các phụ kiện kèm với Raspberry Pi 13 Hình 2.8 Biến áp 12VDC 14 Hình 2.9 Relay 12VDC 14 Hình 2.10 Sơ đồ chân relay 12VDC 14 Hình 2.11 IC ổn áp 7805 sơ đồ chân 15 Hình 2.12 Một mạch nguồn đơn giản dùng IC 7805 15 Hình 2.13 IC AMS1117 sơ đồ nguyên lý 16 Hình 2.14 USB to UART FT232RT 16 Hình 2.15 Kết nối USB to UART với ESP8266 17 Hình 3.1 Sơ đồ khối hệ thống 18 Hinh 3.2 Sơ đồ nguyên lý toàn mạch 21 Hình 3.2 Khối mạch ổn áp 5V 22 Hình 4.1 Lớp dƣới mạch 23 Hình 4.2 Lớp mạch 24 Hình 4.3 Các cơng tắc ổ điện cấp nguồn 220V 24 Hình 4.4 Mạch nguồn 25 Hình 4.5 Module ESP8266, relay 12V còi chip 25 Hình 4.6 Hình IC ổn áp AMS1117 cảm biến dịng ACS712 25 Hình 4.7 Lƣu đồ chƣơng trình 26 Hình 4.8 Lƣu đồ kết nối với server 27 Hình 4.9 Lƣu đồ tiến hành đăng kí tài khoản ngƣời sử dụng 29 Hình 4.10 Lƣu đồ tiến hành đăng nhập vào hệ thống 31 Hình 4.11 Giao diện lập trình Arduino IDE Error! Bookmark not defined Hình 4.12 Cài đặt thƣ viện chức nạp code cho IDE 33 Hình 4.13 Cài đặt ESP8266 34 Hình 4.14 Cài đặt ESP8266 34 Hình 4.14 Chọn port để nạp chƣơng trình cho ESP8266 36 Hình 4.15 tiến hành ssh cho raspberry pi B+ 36 PHẠM NGỌC ANH – TRẦN THANH DUY an ix ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG hình 4.16 Giao diện Raspberry pi B+ nhập xong 37 Hình 4.17 Giao diện kết nối port 3000 38 Hình 5.1 Lớp mạch điều khiển 43 Hình 5.2 Lớp dƣới mạch điều khiển 44 Hình 5.3 Màn hình giao diện chung.(hình a, b, c) 45 Hình 5.5 Giao diện tiến hành đăng kí tài khoản 46 Hình 5.7 Kết lƣu trữ giá trị dịng điện công suất theo thời gian 47 Hình 5.8 Giao diện giới hạn giá trị dòng điện qua thiết bị 48 PHẠM NGỌC ANH – TRẦN THANH DUY an x ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG Hình 5.6 Giao diện đồ thị dịng điện cơng suất hoạt động thiết bị Nhìn đồ thị dòng điện ta thấy số vị trí khác giá trị dịng điện đƣợc cập nhật có giá trị khác Tƣơng ứng mắc động máy quạt mini công suất 50W giá trị dịng điện khoảng 0.21A vị trí thấp Nếu mắc thêm động nồi cơm điện vào giá trị dịng điện tăng lên vị trí khoảng 2.6A Nếu mắc động bình đun nƣớc giá trị dịng điện khoảng 9.1A Hình 5.7 Kết lƣu trữ giá trị dịng điện cơng suất theo thời gian PHẠM NGỌC ANH – TRẦN THANH DUY an 47 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG Kết lƣu trữ giá trị dịng điện cơng suất có xác định đƣợc thời gian, thứ, ngày tháng năm, cụ thể cách xác Vì muốn xem lại kết công suất tiêu thụ của ngày xem lại đƣợc Bên cạnh giá trị lƣu trữ cịn có chức xóa liệu, lâu sau tháng muốn xóa bớt liệu lƣu trữ xóa đƣợc Hình 5.8 Giao diện giới hạn giá trị dòng điện qua thiết bị NHẬN XÉT VÀ ĐÁNH GIÁ 5.2 Qua q trình thi cơng mạch nhƣ lập trình cho Webserver nhóm chúng em tìm hiểu đƣợc số vấn đề nhƣ:  Tìm hiểu đƣợc sơ đồ chân chức cảm biến dòng ACS712  Tìm hiểu module wifi ESP8266, sơ đồ chân chức năng, thông số ESP8266 chip tích hợp cao - System on Chip (SoC), có khả xử lý lƣu trữ tốt, cung cấp khả vƣợt trội để trang bị thêm tính wifi cho hệ thống khác đóng vai trị nhƣ giải pháp độc lập  Tìm hiểu ngơn ngữ lập trình webserver nodejs Node.js hệ thống phần mềm đƣợc thiết kế để viết ứng dụng internet có khả mở rộng, đặc biệt máy chủ web Chƣơng trình đƣợc PHẠM NGỌC ANH – TRẦN THANH DUY an 48 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG viết JavaScript, sử dụng kỹ thật điều khển theo kiện, nhập/xuất không đồng để tối tiểu tổng chi phí tối đại khả mở rộng Node.js bao gồm có V8 JavaScript engine Google, libUV, vài thƣ viện khác Node.js đƣợc tạo Ryan Dahl từ năm 2009, phát triển dƣới bảo trợ Joyent Mục tiêu ban đầu Dahl làm cho trang web có khả push nhƣ số ứng dụng web nhƣ Gmail Sau thử với vài ngơn ngữ Dahl chọn Javascript API Nhập/Xuất không đầy đủ Điều cho phép anh định nghĩa quy ƣớc Nhập/Xuất điểu khiển theo kiện, non-blocking Ƣu điểm Node.js so với ngôn ngữ khác - Ứng dụng trang: Nếu bạn định viết ứng dụng thể trang (Gmail?) NodeJS phù hợp để làm Với khả xử lý nhiều Request/s đồng thời thời gian phản hồi nhanh Các ứng dụng bạn định viết không muốn tải lại trang, gồm nhiều request từ ngƣời dùng cần hoạt động nhanh để thể chuyên nghiệp NodeJS lựa chọn bạn - Shelling tools unix (công cụ chia nhỏ công việc): NodeJS tận dụng tối đa Unix để hoạt động Tức NodeJS xử lý hàng nghìn Process trả luồng khiến cho hiệu xuất hoạt động đạt mức tối đa tuyệt vời - Streamming Data (Luồng liệu) Các web thông thƣờng gửi HTTP request nhận phản hồi lại (Luồng liệu) Giả xử cần xử lý luồng giữ liệu cực lớn, NodeJS xây dựng Proxy phân vùng luồng liệu để đảm bảo tối đa hoạt động cho luồng liệu khác - Ứng dụng Web thực: Giả sử bạn xây dựng ứng dụng chat, feed Facebook, Twitter điển hình cho Web thực NodeJS làm tốt điều đó!  Tìm hiểu đƣợc cấu trúc kit raspberry Pi B+, bƣớc cài đặt hệ điều hành cho kit Raspberry Pi, cách lập trình webserver kit PHẠM NGỌC ANH – TRẦN THANH DUY an 49 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG Chƣơng KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Qua q trình thiết kế tính tốn mạch “Giám sát mức tiêu thụ điện mơ hình xƣởng sản xuất sử dụng hệ thống IoT” từ kết đạt đƣợc nhóm tiến hành tổng hợp, so sánh với mục tiêu đề ban đầu rút nhận xét, từ hƣớng phát triển, nghiên cứu để sản phẩm hoàn thiện ứng dụng đƣợc vào thực tiễn Đồng thời tảng sở để tham khảo cho nghiên cứu sau Kết q trình thực đề tài nhóm tìm hiểu đƣợc ngơn ngữ lập trình Nodejs(về cấu trúc, cách sử dụng, tập lệnh…), biết đƣợc lý thuyết liên quan đến module wifi ESP8266 nhƣ thiết bị có lên quan, thi cơng hồn chỉnh mơ hình mạch kiểm tra hoạt động mạch Về sản phẩm hoạt động đạt hiệu suất tƣơng đối cao, hình thức sản phẩm chấp nhận đƣợc Hệ thống hoạt động tƣơng đối ổn định Kết biểu đồ vẽ đồ thị rõ ràng, dễ quan sát cập nhật liệu thời gian thực Chức bảo mật thông tin tên ngƣời dùng đƣợc đảm bảo Tuy nhiên tồn số hạn chế nhƣ :  Webserver hoạt động chƣa ổn định, số lúc logout chậm  Thẩm mỹ mạch chƣa đƣợc tốt  Quá trình đo cảm biến dòng xảy sai số nhiều so với sử ampe kìm đo trực tiếp Sai số xảy số linh kiện mạch điều khiển tạo 6.2 HƢỚNG PHÁT TRIỂN Dựa vào tính tốn thiết kế phát triển đề tài theo số hƣớng nhƣ:  Từ tảng thiết bị, trƣớc tiên nâng cao độ ổn định mạch PHẠM NGỌC ANH – TRẦN THANH DUY an 50 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG  Mở rộng tính tốn chọn linh kiện phù hợp để áp dụng cho thiết bị có cơng suất lớn để áp dụng vào thực tế  Có thể quản lý nhiều hệ thống nữa, nhƣ tịa nhà, cơng ty xí nghiệp lớn  Từ tính tốn thiết bị tích hợp thiết bị tồn mạch module quán sát mức tiêu thụ điện mạch PHẠM NGỌC ANH – TRẦN THANH DUY an 51 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG TÀI LIỆU THAM KHẢO [1] Nguyễn Đình Phú, “Giáo trình điều khiển Pic”, Đại Học Sƣ Phạm Kỹ Thuật Tp.HCM, 8/2015 [2] Trần Thu Hà - Nguyễn Thị Lƣỡng – Trƣơng Thị Bích Ngà – Bùi Thị Tuyết Đan - Phù Thị Ngọc Hiếu – Dƣơng Thị Cẩm Tú, “ Giáo trình Điện tử bản”, NXB Đại Học Quốc Gia Tp.HCM, 2013 [3] Bùi Thế Sơn, “Thiết kế & thi công nhà thông minh”, Trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp.HCM, 2015 [4] Trần Tùng Giang – Lê Thị Thanh Hồng, “Giáo trình mạch điện”, NXB Đại Học Quốc Gia Tp.HCM, 2013 [5] Nguyễn Đình Phú, “Giáo trình kỹ thuật số”, NXB Đại Học Quốc Gia Tp.HCM, 2013 [6] ESP8266 Datasheet [7] ACS712 Datasheet [8] AMS1117 Datasheet [9] 7805 Datasheet [10] http://smart-techvn.com/index.php?route=news/news&news_id=105 [11]https://hoanglink.wordpress.com/2014/08/31/cach-tao-mot-raspberrypiwebserver/ [12] http://linhkien69.vn/acs712-cam-bien-dong_n58008_g723.aspx PHẠM NGỌC ANH – TRẦN THANH DUY an 52 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG PHỤ LỤC  Viết chƣơng trình hệ thống Chƣơng trình ESP8266 #include #include WiFiClient client; const char* ssid = "BANANGTIEN"; const char* password = "01012016#"; const char* writeKey = "00532a1fbc0f6158ea5749c92bb8807f"; const char* readKey = "98b24c428b76f3371ecb56deaf7aa58b"; const char* streamId = "584b4ff685eabd1731583847"; const char* server = "iotdate.hopto.org"; // server's address //const char* resource = "/users/1"; // http resource const unsigned long BAUD_RATE = 9600; // serial connection speed const unsigned long HTTP_TIMEOUT = 5000; //ip max respone time from server const size_t MAX_CONTENT_SIZE = 512; // max size of the HTTP response // The type of data that we want to extract from the page struct UserData { char current[10]; char onoff_current[10]; char auto_adjust[10]; }; int value_adc; #define OFF const int sensorIn = A0; int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module double Voltage = 0; double VRMS = 0; PHẠM NGỌC ANH – TRẦN THANH DUY an 53 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG double AmpsRMS = 0; // ARDUINO entry point #1: runs once when you press reset or power the board void setup() { initSerial(); initWifi(); pinMode( A0, INPUT); pinMode( OFF, OUTPUT); } // ARDUINO entry point #2: runs over and over again forever void loop() { //int value = random(10); //value_adc = analogRead(INPUT); Voltage = getVPP(); VRMS = (Voltage/2.0) *0.707; AmpsRMS = (VRMS * 1000)/mVperAmp; client.println(AmpsRMS); if(AmpsRMS != 0){ } if (connect(server,(uint16_t)80)) { String url = "/api/update/?access_token="; url += streamId; url += "&write_key="; url += writeKey; url += "&var1="; url += AmpsRMS; if (sendRequest(server, url) && skipResponseHeaders()) { char response[MAX_CONTENT_SIZE]; readReponseContent(response, sizeof(response)); } disconnect(); PHẠM NGỌC ANH – TRẦN THANH DUY an 54 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG } if (connect(server,(uint16_t)80)) { String url1 = "/api/request/?access_token="; url1 += streamId; url1 += "&read_key="; url1 += readKey; if (sendRequest(server, url1) && skipResponseHeaders()) { char response[MAX_CONTENT_SIZE]; readReponseContent(response, sizeof(response)); UserData userData; if (parseUserData(response, &userData)) { processUserData(&userData); } } disconnect(); } wait(); } // Initialize Serial port void initSerial() { Serial.begin(BAUD_RATE); while (!Serial) { ; // wait for serial port to initialize } Serial.println("Serial ready"); } // Initialize Wifi library void initWifi() { WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); PHẠM NGỌC ANH – TRẦN THANH DUY an 55 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); delay(1000); } // Open connection to the HTTP server bool connect(const char* hostName, uint16_t port) { Serial.print("Connect to "); Serial.println(hostName); bool ok = client.connect(hostName, port); Serial.println(ok ? "Connected" : "Connection Failed!"); return ok; } // Send the HTTP GET request to the server bool sendRequest(const char* host, String resource) { Serial.print("GET "); Serial.println(resource); client.print("GET "); client.print(resource); client.println(" HTTP/1.1"); client.print("Host: "); client.println(host); client.println("Connection: close"); client.println(); return true; } // Skip HTTP headers so that we are at the beginning of the response's body bool skipResponseHeaders() { PHẠM NGỌC ANH – TRẦN THANH DUY an 56 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG // HTTP headers end with an empty line char endOfHeaders[] = "\r\n\r\n"; client.setTimeout(HTTP_TIMEOUT); bool ok = client.find(endOfHeaders); if (!ok) { Serial.println("No response or invalid response!"); } return ok; } // Read the body of the response from the HTTP server void readReponseContent(char* content, size_t maxSize) { size_t length = client.readBytes(content, maxSize); content[length] = 0; Serial.println(content); } bool parseUserData(char* content, struct UserData* userData) { // Compute optimal size of the JSON buffer according to what we need to parse // This is only required if you use StaticJsonBuffer const size_t BUFFER_SIZE = JSON_OBJECT_SIZE(3); // Allocate a temporary memory pool on the stack StaticJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.parseObject(content); if (!root.success()) { Serial.println("JSON parsing failed!"); return false; } strcpy(userData->current, root["current"]); strcpy(userData->onoff_current, root["onoff_current"]); strcpy(userData->auto_adjust, root["auto_adjust"]); PHẠM NGỌC ANH – TRẦN THANH DUY an 57 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG return true; } // Print the data extracted from the JSON void processUserData(const struct UserData* userData) { Serial.print("current = "); Serial.println(userData->current); Serial.print("onoff_current = "); Serial.println(userData->onoff_current); Serial.print("auto_adjust = "); Serial.println(userData->auto_adjust); int auto_adj = atoi(userData->auto_adjust); float value_current = atoi(userData->current); int onoff_current = atoi(userData->onoff_current); float current_limit = 0.5; if(auto_adj){ // kiem tra xem dang o che tu eps tu ngat dong vuot nguong cho phep if(AmpsRMS >= current_limit){ // kiem tra dong co vuot nguong khong analogWrite(OFF, HIGH); Serial.print("BUZZ HIGH "); } else{ analogWrite(OFF, LOW); Serial.print("BUZZ LOW "); } } else{ if(AmpsRMS >= value_current){ // kiem tra dong co vuot nguong khong if(onoff_current){ analogWrite(OFF, HIGH); Serial.print("BUZZ HIGH "); } else{ PHẠM NGỌC ANH – TRẦN THANH DUY an 58 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG analogWrite(OFF, LOW); Serial.print("BUZZ LOW "); } } else{ analogWrite(OFF, LOW); Serial.print("BUZZ LOW "); } } } void disconnect() { Serial.println("Disconnect"); client.stop(); } // Pause for a seconds void wait() { Serial.println("Wait seconds"); delay(1000); } float getVPP() { float result; int readValue; int maxValue = 0; int minValue = 1024; //value read from the sensor // store max value here // store value here uint32_t start_time = millis(); while((millis()-start_time) < 1000) //sample for Sec { readValue = analogRead(sensorIn); // see if you have a new maxValue PHẠM NGỌC ANH – TRẦN THANH DUY an 59 ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG if (readValue > maxValue) { /*record the maximum sensor value*/ maxValue = readValue; } if (readValue < minValue) { /*record the maximum sensor value*/ minValue = readValue; } } // Subtract from max result = ((maxValue - minValue) * 5.0)/1024.0; return result; } PHẠM NGỌC ANH – TRẦN THANH DUY an 60 S an K L 0 ... NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG TÓM TẮT Trong đề tài ? ?Giám sát mức tiêu thụ điện thiết bị xƣởng sản xuất sử dụng hệ thống IoT? ?? này, thực chức cập nhật thơng tin giá trị dịng điện qua... “GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG CỦA MƠ HÌNH CÁC THIẾT BỊ TRONG MỘT XƢỞNG SẢN XUẤT SỬ DỤNG HỆ THỐNG IoT? ?? để tiến hành giám sát khả tiêu thụ điện thiết bị điện xƣởng sản xuất nhằm thực sách tiết... ĐỒ ÁN TỐT NGHIỆP: GIÁM SÁT MỨC TIÊU THỤ ĐIỆN NĂNG Chƣơng CƠ SỞ LÝ THUYẾT CÁCH TÍNH ĐIỆN NĂNG TIÊU THỤ CỦA ĐỘNG CƠ 2.1 Công suất điện động công suất tiêu thụ điện động có trị số điện mà động tiêu

Ngày đăng: 02/02/2023, 09:10

Tài liệu cùng người dùng

Tài liệu liên quan