1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế bộ điều khiển thiết bị điện thông minh

76 12 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 2,93 MB

Nội dung

Thiết kế bộ điều khiển thiết bị điện thông minh Thiết kế bộ điều khiển thiết bị điện thông minh Thiết kế bộ điều khiển thiết bị điện thông minh Thiết kế bộ điều khiển thiết bị điện thông minh Thiết kế bộ điều khiển thiết bị điện thông minh Thiết kế bộ điều khiển thiết bị điện thông minh

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 Khoá: 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 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 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 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 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 DANH MỤC HÌNH ẢNH Hình Trang Hình 2.1 Internet of things Hình 2.2 Kiến trúc MQTT Hình 2.3 Tên miền Hình 3.1 Sơ đồ khối hệ thống 13 Hình 3.2 Cảm biến DHT11 15 Hình 3.3 Sơ đồ nguyên lý kết nối DHT11 với ESP 8266 15 Hình 3.4 Raspberry Pi Model B 16 Hình 3.5 Sơ đồ chân Kit Raspberry Pi Model B 16 Hình 3.6 Module Wifi ESP8266 18 Hình 3.7 Sơ đồ chân Module Wifi ESP8266 19 Hình 3.8 Sơ đồ nguyên lý điều khiển thiết bị ngoại vi 20 Hình 3.9 Arduino mega 2560 hình cảm ứng 21 Hình 3.10 Board Arduino Mega 2560 (mặt trước sau) 22 Hình 3.11 Board Arduino Mega 2560 22 Hình 3.12 Màn hình cảm ứng TFT 23 Hình 3.13 Sơ đồ hình cảm ứng TFT 23 Hình 3.14 Mạch PZEM-004T 24 Hình 3.15 Sơ đồ nguyên lý mạch nguồn 25 Hình 3.16 Sơ đồ nguyên lý mạch điều khiển 26 Hình 4.1 Mạch thi công 27 Hình 4.2 Lưu đồ điều khiển Web 29 Hình 4.3 Lưu đồ điều khiển Web 29 Hình 4.4 Lưu đồ điều khiển hình cảm ứng 31 Hình 4.5 Hình ảnh apache hiển thị trình duyệt 32 Hình 4.6 Kết sau cài đặt database 35 Hình 4.7 Cài đặt JRE 36 Hình 4.8 Hình ảnh cập nhập phần mềm cho Arduino 37 Hình 4.9 Download Arduino 37 Hình 4.10 Giải nén file 36 Hình 4.11 Hình ảnh hình lập trình 38 Hình 4.12 Hình ảnh vùng chức 39 Hình 4.13 Tập lệnh phần mềm lập trình 39 Hình 4.14 Hình ảnh vùng thơng báo 40 iii Hình 4.15 Hình ảnh web điều khiển thiết bị 41 Hình 4.16 Hình ảnh bật thiết bị 42 Hình 4.7 Hình ảnh tắt thiết bị 42 Hình 4.8 Hình ảnh bật, tắt thiết bị 43 Hình 5.1 Board mạch điều khiển 44 Hình 5.2 Các thiết bị điều khiển web 45 Hình 5.3 Giao diện website điều khiển 46 iv CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Với sự phát triển mạnh mẽ khoa học cơng 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 dụng công nghệ IoTs quan tâm xây dựng nhiều trở thành xu xã hội đại Do giá thành cao nên việc triển khai hạn chế Trên thực tế, nhiều hệ thống nhà thông minh từ Âu-Mỹ lắp trọn cho biệt thự trệt, lầu rộng chừng 300m2 nhiều lên đến tỷ đồng, cá biệt có hệ thống lên đến tỷ đồng [6] Một số đủ gây chống váng Cịn sản phẩm nhà thông minh từ Công ty Việt Nam dao động từ 30 – 150 triệu đồng tùy theo gói lắp đặt, từ hộ chung cư, nhà phố biệt thự sân vườn Những đề tài nghiên cứu trước thiết kế hệ thống mơ hình điều khiển thông minh sử dụng nhiều công nghệ như: sử dụng sóng hồng ngoại, RF, bluetooth hay mạng WLAN Các hệ thống điều khiển thông minh không ngừng phát triển; đặc biệt thời kỳ mạng Internet phát triển mạnh mẽ, hệ 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 khiển thiết bị thơng qua hình cảm ứng, đồng thời đo điện tiêu thụ thiết bị điện, tính tiền điện hàng tháng, đưa cảnh báo tiêu thụ điện tháng vượt mức cho phép kiểm tra xem thiết bị sử dụng cịn hoạt động hay khơng Hệ thống sử dụng xử lý trung tâm Kit Raspberry Pi Đây điểm đồ án so với đồ án khác Việc nghiên cứu thiết kế sản phẩm điều khiển thiết bị với giá thành tối ưu phù hợp cho đại đa số gia đình có sống trung bình có ý nghĩa lớn, góp phần phát triển hệ thống điều khiển thông minh Do đó, em định thực đề tài: “THIẾT KẾ BỘ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN THÔNG MINH” Đề tài ứng dụng công nghệ wifi phổ biến nhiều thiết bị, đặc biệt điểm đề tài so với sản phẩm có điều khiển thơng qua internet giúp tận dụng thiết bị sử dụng hệ điều hành có sẵn người dùng, giúp giảm giá thành sản phẩm, ngồi với hình hiển thị lớn điện thoại cho phép hiển thị nhiều thông tin hơn, với việc điều khiển thông qua Kit Raspberry Pi đem lại nhiều cảm hứng thực dự án theo ý muốn cách dễ dàng 1.2 MỤC TIÊU Đề tài có mục tiêu sau:  Điều khiển thiết bị điện xoay chiều công suất thấp thông qua công nghệ Wifi, điều khiển thơng qua hình cảm ứng  Viết chương trình điều khiển cho Kit Raspberry Pi nhận tín hiệu từ ngõ vào cảm biến, hình cảm ứng để điều khiển giao tiếp với thiết bị bên theo ý muốn  Thi công hộp thông minh điều khiển thiết bị điện  Thiết kế giao diện phần mềm điều khiển thiết bị điện điện thoại web 1.3 NỘI DUNG NGHIÊN CỨU Đề tài có nội dung sau:  Tìm hiểu Blynk, ngơn ngữ PHP để thiết kế Web  Lập trình giao tiếp với module PZEM004T để đo thơng số điện  Lập trình giao tiếp với hình cảm ứng qua giao thức UART  Viết chương trình cho ESP8266 gửi nhận liệu lên Web  Xây dựng giao diện Web điều khiển giám sát thiết bị 1.4 GIỚI HẠN Đề tài thiết kế điều khiển thiết bị điện thơng minh có giới hạn bao gồm:  Khi bật nguồn hệ thống chưa chạy xác theo yêu cầu điều khiển sau phút hệ thống chạy xác theo yêu cầu điều khiển  Cảm biến đo nhiệt độ, độ ẩm mơi trường có sai số so với nhiệt độ, độ ẩm môi trường thực tế  Mạch đo điện tiêu thụ điện giá trị thị có sai số so với giá trị thực tế  Đề tài xây dựng mô hình với thiết bị điều khiển giả lập theo thực tế Tuy nhiên so với thiết bị thực tế khơng khác xa nhiều chất điều khiển, việc điều khiển thiết bị thông qua web server 1.5 BỐ CỤC Nội dung đề tài gồm phần sau: Chương 1: Tổng quan  Đặt vấn đề  Mục tiêu đề tài  Nhiệm vụ đề tài  Giới hạn Chương 2: Cơ sở lý thuyết hệ thống  Giới thiệu Internet of things  Giới thiệu MQTT, Website  Giới thiệu Android, ngôn ngữ PHP  Giới thiệu phần cứng Raspberry Pi Màn hình cảm ứng Chương 3: Tính tốn và thiết kế  Giới thiệu sơ đồ khối hệ thống  Chức khối hệ thống  Tính tốn, lựa chọn thiết bị, thiết kế khối hệ thống Chương 4: Thi công hệ thống  Thiết kế phần cứng  Giới thiệu phần mềm lập trình  Lập trình cho hệ thống  Hướng dẫn sử dụng thao tác Chương 5: Kết - nhận xét - đánh giá  Kết đạt  Nhận xét đánh giá Chương 6: Kết luận và hướng phát triển  Kết luận  Hướng phát triển đề tài void b1PopCallback (void *ptr2) { NexButton *btn2 = (NexButton *)ptr2; memset (buffer2, 0, sizeof (buffer2)); btn2->getText (buffer2, sizeof (buffer2)); number2 += 1; if ( (number2%2)== 0) {number2 = 0; btn2->setText ("TAT"); Serial println ("$R2OFF"); } else {number2 =1; btn2->setText ("BAT"); Serial println ("$R2ON"); } memset (buffer2, 0, sizeof (buffer2)); itoa (number2, buffer2, 10); } void b2PopCallback (void *ptr3) { NexButton *btn3 = (NexButton *)ptr3; memset (buffer3, 0, sizeof (buffer3)); btn3->getText (buffer3, sizeof (buffer3)); number3 += 1; if ( (number3%2)== 0) {number3 = 0; btn3->setText ("TAT"); Serial println ("$R3OFF"); } else 55 {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 { 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 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 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 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 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 { 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 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 } 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 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 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 { 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 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 }; 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 ... 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. .. biến, hình cảm ứng để điều khiển giao tiếp với thiết bị bên theo ý muốn  Thi công hộp thông minh điều khiển thiết bị điện  Thiết kế giao diện phần mềm điều khiển thiết bị điện điện thoại web 1.3... 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

Ngày đăng: 18/02/2022, 22:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w