(Đồ án hcmute) thiết kế bộ điều khiển thiết bị điện thông minh

82 12 0
(Đồ án hcmute) thiết kế bộ điều khiển thiết bị điện thông minh

Đ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 THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN TỬ TRUYỀN THÔNG THIẾT KẾ BỘ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN THÔNG MINH GVHD: TH.S ĐẶNG PHƯỚC HẢI TRANG SVTH: ĐINH BÁ PHƯỚC MSSV: 15141349 SKL 0 7 Tp Hồ Chí Minh, tháng 08/2020 an TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬTTHÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ BỘ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN THÔNG MINH SVTH: ĐINH BÁ PHƯỚC MSSV: 15141349 Khố: 2015 Ngành: CNKT Điện tử Truyền thơng GVHD: Th.S ĐẶNG PHƯỚC HẢI TRANG Tp Hồ Chí Minh, tháng 08 năm 2020 an 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 tháng năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Đinh Bá Phước MSSV: 15141349 Ngành: CNKT Điện tử Truyền Thông Lớp: 15141CLVT Giảng viên hướng dẫn: ThS Đặng Phước Hải Trang ĐT: 0964100106 Ngày nhận đề tài: Ngày nộp đề tài: Tên đề tài: Thiết kế điều khiển thiết bị điện thông minh Các số liệu, tài liệu ban đầu: Nội dung thực đề tài: Sản phẩm: GIẢNG VIÊN HƯỚNG DẪN i an CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆTNAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên: Đinh Bá Phước MSSV: 15141349 Ngành: CNKT Điện tử Truyền thông Tên đề tài: Thiết kế điều khiển thiết bị điện thông minh………………………… Họ tên Giáo viên hướng dẫn: ThS Đặng Phước Hải Trang NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Nội dung khối lượng phù hợp với yêu cầu KLTN (cho sinh viên thực hiện) Ưu điểm: Đề tài có tính ứng dụng Khuyết điểm: Tài liệu tham khảo khiêm tốn, chưa thích tài liệu tham khảo Chưa đánh giá chi tiết kết nghiên cứu Đề nghị cho bảo vệ hay không? Đề nghị cho bảo vệ trước hội đồng Đánh giá loại: Khá Điểm: …7, 0…………… (Bằng chữ: Bảy chẵn ) Tp Hồ Chí Minh, ngày 11 tháng 08 Giáo viên hướng dẫn (Ký & ghi rõ họ tên) ii an năm 2020 CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên: Đinh Bá Phước MSSV: 15141349 Ngành: CNKT Điện tử Truyền thông Tên đề tài: Thiết kế điều khiển thiết bị điện thông minh Họ tên Giáo viên phản biện: NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: ……………… (Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng Giáo viên phản biện (Ký & ghi rõ họ tên) iii an năm 2020 LỜI CẢM ƠN Trong suốt thời gian thực đồ án người thực nhận sự trợ giúp tận tình Thầy ThS Đặng Phước Hải Trang để em hồnh thành đồ án Em xin chân thành cảm ơn quý thầy, cô trường Đại Học Sư Phạm Kỹ Thuật TP HCM, đặc biệt thầy cô khoa Điện - Điện Tử, nhiệt tình giúp đỡ, truyền đạt kiến thức suốt trình học tập người thực trường Vốn kiến thức tiếp thu trình học tập khơng tảng cho q trình thực đồ án tốt nghiệp mà hành trang quý báu cho sự nghiệp em sau Em xin cảm ơn sự ủng hộ giúp đỡ nhiệt tình gia đình, bạn bè, người thân động viên, giúp đỡ em suốt trình học tập thực đồ án tốt nghiệp Mặc dù cố gắng hết sức, xong chắn đồ án khơng tránh khỏi thiếu sót Em mong nhận sự thông cảm bảo tận tình q thầy bạn Cuối em xin kính chúc q Thầy, Cơ, gia đình bạn bè dồi sức khỏe thành công sự nghiệp Xin chân thành cảm ơn! Người thực đề tài Đinh Bá Phước v an TÓM TẮT Trong năm qua, khoa học máy tính xử lý thơng tin có bước tiến vượt bậc ngày có đóng góp to lớn vào cách mạng khoa học kỹ thuật đại Đặc biệt sự đời phát triển nhanh chóng kỹ thuật số làm cho ngành điện tử trở nên phong phú đa dạng Nó góp phần lớn việc đưa kỹ thuật đại thâm nhập rộng rãi vào lĩnh vực hoạt động sản xuất, kinh tế đời sống xã hội Từ hệ thống máy tính lớn đến hệ thống máy tính cá nhân, từ việc điều khiển máy công nghiệp đến thiết bị phục vụ đời sống ngày người Trong hệ thống đó, việc trao đổi thông tin vô quan trọng Công nghệ truyền tin không dây ngày phát triển, đặc biệt công nghệ Wifi phổ biến hầu hết thiết bị điện tử di động Bên cạnh việc điều khiển thiết bị hình cảm ứng dần phổ biến ưu điểm vượt trội đặc biệt việc điều khiển trực tiếp thiết bị Đồ án trình bày kết nghiên cứu điều khiển công nghệ không dây Wifi, Internet thiết bị điện tử chạy hệ điều hành Android, điều khiển trực tiếp thiết bị thơng qua hình cảm ứng, ứng dụng vào việc điều khiển thiết bị điện xoay chiều công suất thấp thông qua việc điều khiển Web điện thoại Android Từ khóa: THIẾT KẾ BỘ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN THÔNG MINH vi an MỤC LỤC Trang bìa Trang Nhiệm vụ đồ án tốt nghiệp i Trang phiếu nhận xét giáo viên hướng dẫn ii Trang phiếu nhận xét giáo viên phản biện iii Lời cảm ơn iv Tóm tắt v Mục lục vi Danh mục chữ viết tắt ix Danh mục hình ảnh x CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ INTERNET OF THINGS (IOT) 2.1.1 Giới thiệu Internet of Things 2.1.2 Ứng dụng IoT 2.1.3 Đặc điểm công nghệ IoT 2.2 GIỚI THIỆU VỀ MQTT 2.2.1 Giao thức MQTT 2.2.2 Kiến trúc MQTT 2.2.3 Một số khái niệm giao thức MQTT 2.2.4 Ưu điểm MQTT 2.2.5 Ứng dụng MQTT 2.3 WEBSITE 2.3.1 Giới thiệu chung 2.3.2 Các thành phần Website 2.3.3 Ngơn ngữ lập trình web 2.4 GIAO TIẾP UART 10 2.5 MÀN HÌNH CẢM ỨNG 11 2.6 NGÔN NGỮ PHP 12 2.6.2 Đặc điểm bật PHP 12 vii an CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ 13 3.1 Sơ đồ khối hệ thống 13 3.1.1 Yêu cầu hệ thống 13 3.1.2 Sơ đồ khối chức mỗi khối 13 3.2 Chức khối: 14 3.2.1 Khối cảm biến 14 3.2.2 Khối xử lý trung tâm 16 3.2.3 Khối kết nối wifi 18 3.2.4 Khối điền khiển thiết bị ngoại vi 19 3.2.5 Khối cảm ứng 20 3.2.7 Thiết kế khối nguồn 25 3.2.8 Sơ đồ nguyên lý toàn mạch 26 CHƯƠNG 4: THI CÔNG HỆ THỐNG 28 4.1 THI CÔNG MẠCH 28 4.2 LẬP TRÌNH HỆ THỐNG 31 4.2.1 Lưu đồ giải thuật 31 4.2.2 Cài đặt Raspberry Pi thành Web Sever 34 4.2.3 Phần mềm lập trình cho ESP 8266 38 4.2.4 HƯỚNG DẪN SỬ DỤNG, THAO TÁC 43 CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT-ĐÁNH GIÁ 47 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51 6.1 KẾT LUẬN 51 6.2 HƯỚNG PHÁT TRIỂN 51 TÀI LIỆU THAM KHẢO 52 PHỤ LỤC 53 viii an CÁC TỪ VIẾT TẮT ADC Analog-to-Digital Converter / Chuyển tín hiệu analog sang digital CS Coding Scheme CSD Circuit Switched Data CTS Clear To Send / Xóa để gửi CTS Clear to Send DCD Data Carry Detect / Phát mang liệu DSR Date Set Ready / Dữ liệu sẵn sàng DTE Data Terminal Equipment (typically computer, terminal, printer) DTR Data Terminal Ready / Sẵn sàng nhận liệu DTX Discontinuous Transmission EFR Enhanced Full Rate EGSM Enhanced GSM ETS European Telecommunication Standard FR Full Rate GPRS General Packet Radio Service GSM Global Standard for Mobile Communications HR Half Rate I/O Input/Output IC Integrated Circuit Imax Maximum Load Current Kbps Kilo bits per second LED Light Emitting Diode Li-Ion Lithium-Ion MO Mobile Originated MT Mobile Terminated RI Ring Indicator / Báo hiệu chuông RTS Request To Send / Yêu cầu để gửi RXD Receive Data / Truyền liệu TXD Transmit Data /Nhận liệu ii an {number3 =1; btn3->setText ("BAT"); Serial println ("$R3ON"); } memset (buffer3, 0, sizeof (buffer3)); itoa (number3, buffer3, 10); } void setup (void) { pinMode (RL1, OUTPUT); Serial begin (115200); nexInit (); n0 attachPop (n0PopCallback); n1 attachPop (n0PopCallback); b0 attachPop (b0PopCallback, &b0); b1 attachPop (b1PopCallback, &b1); b2 attachPop (b2PopCallback, &b2); } void loop (void) { nexLoop (nex_listen_list); UART_Control (); } void UART_Control () { if (!UART_Read (300, response)) { return; } if (UART_HasOwnString ("$")) { if (UART_Compare ("$T")) 56 an { n0 setValue (30); } else if (UART_Compare ("$H")) { n1 setValue (70); } } } bool UART_Read (unsigned long TIMEOUT, char* response) { int rsize = 0; if (Serial available ()) { while (TIMEOUT > 0) { if (Serial available ()) { char c = Serial read (); if (c != '\n' && c != '\r') { response[rsize++] = c; } if (rsize == UART_RESPONSE_MAX_LEN - 1) { return true; } } TIMEOUT; delay (1); } } response[rsize] = '\0'; return rsize > 0; } bool UART_HasOwnString (const char* str) { 57 an return (strstr (response, str) != nullptr); } bool UART_Compare (const char* command) { return strcmp (response, command) == 0; } Chương trình code ESP_RELAY #include #define BLYNK_PRINT Serial #include #include #include char auth[] = "v1O79-pXioMClsQNxHKE_e_0VYe60etB"; char ssid[] = "hassio"; char pass[] = "12345678"; BlynkTimer timer; #define RELAY_1 #define RELAY_2 12 #define RELAY_3 #define RELAY_1_BLYNK V12 #define RELAY_2_BLYNK V13 #define RELAY_3_BLYNK V14 #define RELAY_4_BLYNK V15 #define DHT_PIN 15 // dht #define GAS_PIN 14 // gas #define SUN_PIN 13 // anh sang #define GAS_BLYNK V6 // GAS #define HUL_BLYNK V5 // DO AM #define TEM_BLYNK V4 // NHIET DO #define SUN_BLYNK V7 // ANH SANG #include "DHT h" #define DHTTYPE DHT11 58 an DHT dht (DHT_PIN, DHTTYPE); int gas = 0, sun = 0; float hul = 0, tem = 0; HardwareSerial uart (2); #define UART_REQUEST_TIMEOUT 5000L #define UART_RESPONSE_MAX_LEN 128 char response[128]; void setup () { Serial begin (115200); delay (500); uart begin (115200); delay (500); Blynk begin (auth, ssid, pass); timer setInterval (1000L, Sensor_Read); delay (5000); Sensor_Init (); Relay_Init (); } void loop () { Blynk run (); timer run (); if (!UART_Read (300, response)) { return; } if (UART_HasOwnString ("$")) { if (UART_Compare ("$R1ON")) { digitalWrite (RELAY_1, true); 59 an Blynk virtualWrite (RELAY_1_BLYNK, true);// CHAN AO, GIA TRI } else if (UART_Compare ("$R1OFF")) { digitalWrite (RELAY_1, false); Blynk virtualWrite (RELAY_1_BLYNK, false); } else if (UART_Compare ("$R2ON")) { digitalWrite (RELAY_2, true); Blynk virtualWrite (RELAY_2_BLYNK, true); } else if (UART_Compare ("$R2OFF")) { digitalWrite (RELAY_2, false); Blynk virtualWrite (RELAY_2_BLYNK, false); } else if (UART_Compare ("$R3ON")) { digitalWrite (RELAY_3, true); Blynk virtualWrite (RELAY_3_BLYNK, true); } else if (UART_Compare ("$R3OFF")) { digitalWrite (RELAY_3, false); Blynk virtualWrite (RELAY_3_BLYNK, false); } } } void Sensor_Init () { pinMode (GAS_PIN, INPUT); 60 an pinMode (SUN_PIN, INPUT); dht begin (); } void Relay_Init () { pinMode (RELAY_1, OUTPUT); pinMode (RELAY_2, OUTPUT); pinMode (RELAY_3, OUTPUT); } void Sensor_Read () { gas = readPinDigital (GAS_PIN); sun = readPinDigital (SUN_PIN); hul = dht readHumidity (); tem = dht readTemperature (); Sensor_WriteBlynk (); } void Sensor_WriteBlynk () { Blynk virtualWrite (GAS_BLYNK, gas); Blynk virtualWrite (SUN_BLYNK, sun); if (!isnan (hul) && !isnan (tem)) { Blynk virtualWrite (HUL_BLYNK, hul); Blynk virtualWrite (TEM_BLYNK, tem); } } BLYNK_CONNECTED () { Blynk syncAll (); } BLYNK_WRITE (V12) 61 an { Serial print (F ("V12: ")); Serial println (param asInt ()); digitalWrite (RELAY_1, param asInt ()); UART_Send_Relay ("R1", param asInt ()); } BLYNK_WRITE (V13) { Serial print (F ("V13: ")); Serial println (param asInt ()); digitalWrite (RELAY_2, param asInt ()); UART_Send_Relay ("R2", param asInt ()); } BLYNK_WRITE (V14) { Serial print (F ("V14: ")); Serial println (param asInt ()); digitalWrite (RELAY_3, param asInt ()); UART_Send_Relay ("R3", param asInt ()); } BLYNK_WRITE (V15) { Serial print (F ("V15: ")); Serial println (param asInt ()); } bool UART_Read (unsigned long TIMEOUT, char* response) { int rsize = 0; if (uart available ()) { while (TIMEOUT > 0) { if (uart available ()) { char c = uart read (); 62 an if (c != '\n' && c != '\r') { response[rsize++] = c; } if (rsize == UART_RESPONSE_MAX_LEN - 1) { return true; } } TIMEOUT; delay (1); } } response[rsize] = '\0'; return rsize > 0; } bool UART_HasOwnString (const char* str) { return (strstr (response, str) != nullptr); } bool UART_Compare (const char* command) { return strcmp (response, command) == 0; } void UART_Send_Data (String data) { Serial println ("SEND VIA UART: " + data); uart println (data); } void UART_Send_Relay (String relay, bool status) { String data = "$" + relay; if (status) { data += "ON"; 63 an } else { data += "OFF"; } UART_Send_Data (data); } bool readPinDigital (int pin, bool state) { if (digitalRead (pin) == state) { delay (50); if (digitalRead (pin) == state) { return true; } } return false; } bool readPinDigital (int pin) { if (digitalRead (pin) == true) { delay (50); if (digitalRead (pin) == true) { return true; } } return false; } 64 an Chương trình code đo dòng điện, điện áp #define BLYNK_PRINT Serial #include #include char auth[] = "v1O79-pXioMClsQNxHKE_e_0VYe60etB"; char ssid[] = "hassio"; char pass[] = "12345678"; BlynkTimer timer; #include "SoftwareSerial h"; #include "Hshopvn_Pzem004t_V2 h" #define RX_PZEM D7 #define TX_PZEM D6 Hshopvn_Pzem004t_V2 pzem1 (TX_PZEM, RX_PZEM); unsigned int pz_u_fl; unsigned int pz_i_fl; unsigned int pz_p_fl; unsigned int pz_e_fl; void setup () { Serial begin (115200); delay (100); pzem1 begin (); pzem1 setTimeout (100); Blynk begin (auth, ssid, pass); timer setInterval (5000, readData); } void loop () { Blynk run (); timer run (); } 65 an void readData () { pzem_info pzemData = pzem1 getData (); pz_u_fl = pzemData volt; pz_i_fl = pzemData ampe*1000; pz_p_fl = pzemData power; pz_e_fl = pzemData energy; PZEM_Debug_Data (); Blynk virtualWrite (V8, pz_u_fl); delay (10); Blynk virtualWrite (V9, pz_i_fl); delay (10); Blynk virtualWrite (V10, pz_p_fl); delay (10); Blynk virtualWrite (V11, pz_e_fl); delay (10); } BLYNK_CONNECTED () { Blynk syncAll (); } BLYNK_WRITE (V12) { Serial print (F ("V12: ")); Serial println (param asInt ()); } BLYNK_WRITE (V13) { Serial print (F ("V13: ")); Serial println (param asInt ()); } BLYNK_WRITE (V14) 66 an { Serial print (F ("V14: ")); Serial println (param asInt ()); } BLYNK_WRITE (V15) { Serial print (F ("V15: ")); Serial println (param asInt ()); } void PZEM_Debug_Data () { Serial println ("u1: " + String (pz_u_fl)); Serial println ("i1: " + String (pz_i_fl)); Serial println ("p1: " + String (pz_p_fl)); Serial println ("e1: " + String (pz_e_fl)); } Chương trình code web var isEmpty = function (obj) { return Object keys (obj) length === 0; }; var requestApi = {}; requestApi makeGetData = function (data) { var url = '?'; var obj = Object assign ({}, data); if (!isEmpty (obj)) { for (var prop in obj) { if (obj hasOwnProperty (prop)) { url += prop + '=' + obj[prop] + "&"; } } } 67 an return url replace (/ $/g, ""); }; requestApi makePostData = function (data) { var formData = new FormData; var obj = Object assign ({}, data); if (!isEmpty (obj)) { for (var prop in obj) { if (obj hasOwnProperty (prop)) { formData append (prop, obj[prop]); } } } return formData; }; requestApi send = function (method, server, path, data) { if (method === 'GET') return this get (server, path, data); else if (method === 'POST') return this post (server, path, data); }; requestApi get = function (server, path, data) { var query = this makeGetData (data); return new Promise (function (resolve, reject) { var req = new XMLHttpRequest (); req onreadystatechange = function () { if (req readyState === 4) { if (req status === 200) { var data = JSON parse (req responseText); resolve (data); } else reject (Error (req statusText)); } }; req onerror = function () { reject (Error ("Error")); 68 an }; req open ("GET", server + path + query, true); req send (); }); }; requestApi post = function (server, path, data) { var formData = this makePostData (data); return new Promise (function (resolve, reject) { var req = new XMLHttpRequest (); req onreadystatechange = function () { if (req readyState === 4) { if (req status === 200) { var data = JSON parse (req responseText); resolve (data); } else reject (Error (req statusText)); } }; req onerror = function () { reject (Error ("Error")); }; req open ("POST", server + path, true); req setRequestHeader ( 'Content-Type', 'application/x-www-form-urlencoded' ); req send (formData); }); }; 69 an S an K L 0 ... thống điều khiển yêu cầu điều khiển qua mạng Internet, WiFi, 3G/4G tiện dụng điều khiển điện thoại thông minh Dự định em thiết kế hộp thông minh điều khiển thiết bị điện thông qua web server điều. .. vào điều khiển thiết bị  Khối đo dòng điện, điện áp, cơng suất, lượng: đo dịng điện, điện áp, cơng suất, lượng thiết bị tiêu thụ điện Mạch dùng để điều khiển cụ thể ba thiết bị, thiết bị điều khiển. .. nghệ thiết bị, hệ thống thông minh dần tạo Các hệ thống điều khiển thông minh sử dụng rộng rãi đời sống, chẳng hạn hệ thống thông minh điều khiển thiết bị điện nhà Các dự án nhà thông minh ứng

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

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

Tài liệu liên quan