Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 134 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
134
Dung lượng
7,69 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 CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT, ĐIỀU KHIỂN CÁC THIẾT BỊ ĐIỆN TRONG NHÀ THÔNG QUA APP ANDROID & MÀN HÌNH CẢM ỨNG DÙNG MẠNG LORA VÀ WIFI GVHD: VÕ ĐỨC DŨNG SVTH: NGUYỄN NGỌC NHIỆM MSSV: 16141218 SVTH: TRƯƠNG TUẤN ANH MSSV: 16141105 SKL 0 7 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 CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT, ĐIỀU KHIỂN CÁC THIẾT BỊ ĐIỆN TRONG NHÀ THƠNG QUA APP ANDROID & MÀN HÌNH CẢM ỨNG DÙNG MẠNG LORA VÀ WIFI GVHD: ThS Võ Đức Dũng SVTH: Nguyễn Ngọc Nhiệm - 16141218 Trương Tuấn Anh Tp Hồ Chí Minh – 08/2020 an - 16141105 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 04 tháng 08 năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: Nguyễn Ngọc Nhiệm Trương Tuấn Anh Kỹ thuật Điện Tử, Truyền Thơng Đại học quy 2016 MSSV: 16141218 MSSV: 16141105 Mã ngành: 141 Mã hệ: Lớp: 16141DT I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT, ĐIỀU KHIỂN CÁC THIẾT BỊ ĐIỆN TRONG NHÀ THƠNG QUA APP ANDROID & MÀN HÌNH CẢM ỨNG DÙNG MẠNG LORA VÀ WIFI II NHIỆM VỤ Các số liệu ban đầu: - Các loại vi điều khiển: Arduino Uno, Arduino Nano, Esp32 WROOM Các loại Module: Lora SX1278 UART, RTC DS1307 Màn hình hiển thị: LCD_TFT SPI 3.2inch, LCD 20X4, LCD 16X2 Cảm biến độ ẩm đất, cảm biến nhiệt độ, độ ẩm DHT11 Ngõ điều khiển: Relay, transistor, diode, led Nguồn: Adapter 5V-2A, Adapter 5V-1A Nội dung thực hiện: - Tìm hiểu tham khảo tài liệu, giáo trình, nội dung liên quan đến đề tài Tìm hiểu hình cảm ứng TFT, thiết kế giao diện giám sát điều khiển Thiết kế thi công phần cứng hế thống Viết chương trình giao tiếp ứng dụng Android, Firebase điều khiển trung tâm Viết chương trình để giao tiếp Arduino, Lora module cảm biến Nghiên cứu xây dựng ứng dụng Android Chạy thử nghiệm, hiệu chỉnh đánh giá kết Viết luận văn báo cáo Bảo vệ đồ án tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 10/03/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/07/2020 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN:ThS VÕ ĐỨC DŨNG CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH i an 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 04 tháng 08 năm 2020 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Ngọc Nhiệm MSSV: 16141218 Họ tên sinh viên: Trương Tuấn Anh MSSV: 16141105 Lớp: 16141TD2B Tên đề tài: Thiết kế thi công hệ thống giám sát, điều khiển thiết bị điện nhà thơng qua App Android & hình cảm ứng dùng mạng Lora Wifi Tuần/ngày Nội dung Tuần (30/3 – 5/4) Gặp GVHD để nghe phổ biến yêu cầu làm đồ án, tiến hành chọn đồ án Tuần (6/4 – 12/4) GVHD tiến hành xét duyệt đề tài Tuần (13/4 – 19/4) Viết đề cương chi tiết lịch trình đồ án tốt nghiệp Tuần (20/4 – 26/4) Tìm hiểu đề tài lựa chọn thiết bị phù hợp Tuần (27/4 – 3/5) Thiết kế sơ đồ khối giải thích chức khối Tuần (4/5 – 10/5) Tính tốn thiết kế sơ đồ nguyên lý cho hệ thống Tuần (11/5 – 17/5) Viết chương trình, kiểm tra hoạt động Arduino với module Lora SX1278, module ESP8266 NodeMCU, cảm biến Tuần (18/5 – 24/5) Thiết kế PCB thi công phần cứng Tuần (25/5 – 31/5) Hoàn thiện phần cứng Tuần 10 (1/6 – 7/6) Xác nhận GVHD Tìm hiểu cơng nghệ Lora, giao thức UART, Wifi Kiểm tra lắp ráp mơ hình ii an Tuần 11 (8/6 – 14/6) Thiết kế lưu đồ giải thuật viết chương trình điều hiển hệ thống Tuần 12 (15/6 – 21/6) Thiết kế app Android, truyền nhận liệu Firebase với App Esp8266 Tuần 13 (22/6 – 28/6) Chạy thử nghiệm toàn hệ thống Kiểm tra sửa chữa lỗi Tuần 14 (29/6 – 5/7) Tuần 15 (6/7 – 12/7) Tuần 16 (13/7 – 19/7) Viết báo cáo, làm silde báo cáo Hoàn thiện in báo cáo Báo cáo với GVHD GV HƯỚNG DẪN (Ký ghi rõ họ tên) iii an LỜI CAM ĐOAN Đề tài chúng em tự 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 Người thực đề tài Nguyễn Ngọc Nhiệm Trương Tuấn Anh iv an LỜI CẢM ƠN Lời đầu tiên, chúng em xin phép chân thành cảm ơn thầy cô khoa Điện – Điện tử giảng dạy cho chúng em kiến thức bổ ích để hơm ứng dụng hồn thiện đồ án tốt nghiệp Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc đến Thầy Võ Đức Dũng tận tình hướng dẫn, giúp đỡ nhóm thực đề tài Thầy tạo điều kiện, giải đáp thắc mắc, khó khăn để nhóm hồn thiện đề tài cách tốt Chúng em xin gửi lời đồng cảm ơn đến bạn lớp 16141DT chia trao đổi kiến thức kinh nghiệm quý báu thời gian thực đề tài Ngoài ra, chúng em xin gởi lời cảm ơn thật nhiều đến gia đình, người thân, người khích lệ, tạo động lực giúp nhóm hồn thành tốt đề tài Xin chân thành cảm ơn! Người thực đề tài Nguyễn Ngọc Nhiệm Trương Tuấn Anh v an MỤC LỤC NHIỆM VỤ i LỊCH TRÌNH ii LỜI CAM ĐOAN iii LỜI CẢM ƠN .v MỤC LỤC vi LIỆT KÊ HÌNH VẼ ix LIỆT KÊ BẢNG xii TÓM TẮT xiii 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 .3 Chương CƠ SỞ LÝ THUYẾT .4 2.1 GIỚI THIỆU VỀ MẠNG LORA 2.2 GIỚI THIỆU PHẦN CỨNG .5 2.2.1 Module thu phát RF UART Lora SX1278 2.2.2 Vi điều khiển 2.2.3 Module Cảm Biến Nhiệt Độ - Độ Ẩm DHT11 11 2.2.4 Module cảm biến độ ẩm đất 12 2.2.5 Module thời gian thực RTC- DS1307 13 2.2.6 Màn hình hiển thị 13 2.2.7 Tiếp điểm Relay 5v 17 2.3 GIỚI THIỆU CÁC CHUẨN TRUYỀN THÔNG 18 vi an 2.3.1 Chuẩn truyền thông UART 18 2.3.2 Chuẩn giao tiếp I2C 19 2.3.3 Chuẩn giao tiếp SPI 20 2.3.4 Truyền thông không dây wifi 21 Chương TÍNH TỐN VÀ THIẾT KẾ 23 3.1 GIỚI THIỆU 23 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 23 3.2.1 Thiết kế sơ đồ khối hệ thống 23 3.2.2 Tính tốn thiết kế mạch điện 25 Chương THI CÔNG HỆ THỐNG .44 4.1 GIỚI THIỆU 44 4.2 THI CÔNG HỆ THỐNG 44 4.2.1 Thi công board mạch 44 4.2.2 Lắp ráp kiểm tra 52 4.3 ĐĨNG GĨI VÀ THI CƠNG MƠ HÌNH 56 4.3.1 Đóng gói điều khiển 56 4.3.2 Thi cơng mơ hình 58 4.4 LẬP TRÌNH HỆ THỐNG .61 4.4.1 Lưu đồ giải thuật 61 4.4.4 Giới thiệu tính Realtime Database Firebase 75 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN .77 Chương KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 79 5.1 GIỚI THIỆU 79 5.2 KẾT QUẢ ĐẠT ĐƯỢC 79 5.3 KẾT QUẢ THỰC NGHIỆM 80 5.3.1 Bộ điều khiển trung tâm 80 5.3.2 Bộ điều khiển phụ 83 vii an 5.3.3 Điều khiển giám sát thiết bị từ xa điện thoại 85 5.3.4 Điều khiển giám sát thiết bị trực tiếp điều khiển 91 5.3.5 Điều khiển thiết bị giám sát liệu khơng có internet 92 5.4 NHẬN XÉT VÀ ĐÁNH GIÁ 93 5.4.1 Nhận xét 93 5.4.2 Đánh giá 94 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 96 6.1 KẾT LUẬN 96 6.2 HƯỚNG PHÁT TRIỂN 96 TÀI LIỆU THAM KHẢO 98 PHỤ LỤC .100 viii an PHỤ LỤC ILI9341_RED); } break; } } void recvWithStartEndMarkers() { static boolean recvInProgress = false, recvInProgress1 = false; static byte ndx = 0, ndx1 = 0; char startMarker = ''; char startMarker1 = '('; char endMarker1 = ')'; char rc; while (Serial.available() > && newData == false) { rc = Serial.read(); if (recvInProgress == true) { if (rc != endMarker) { receivedChars[ndx] = rc; ndx++; if (ndx >= numChars) { ndx = numChars - 1; } } else { receivedChars[ndx] = '\0'; // terminate the string recvInProgress = false; newData = true; ndx = 0; } } else if (rc == startMarker) { recvInProgress = true; } if (recvInProgress1 == true) { if (rc != endMarker1) { receivedChars1[ndx1] = rc; ndx1++; if (ndx1 >= numChars) { ndx1 = numChars - 1; } } else { receivedChars1[ndx1] = '\0'; // terminate the string recvInProgress1 = false; ndx1 = 0; newData_cd = true; } } else if (rc == startMarker1) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 105 PHỤ LỤC recvInProgress1 = true; } } } void update_th() { if (idx >= 10) { idx = idx - 10; secon++; if (secon < 6) { h1 = dht.readHumidity(); t1 = dht.readTemperature(); h2 = h2 + h1; t2 = t2 + t1; } else { h = h2 / 5; t = t2 / 5; t2 = 0; h2 = 0; secon = 0; } } } ISR(TIMER1_OVF_vect) { TCNT1 = 40536; idx++; } CODE ESP32 #include #include //#include #include #include #include #include #include "html.h" #include FirebaseData firebaseData; FirebaseJson json; #define RXD2 16 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 106 PHỤ LỤC #define TXD2 17 #define LED1 22 #define LED2 23 #define LEDWF const char *ssid = "LORA SYSTEM"; const char *password = "11111111"; WebServer server(80); // khởi tạo sever port 80 //String lamp_garden = "0", lamp1 = "0", lamp_k = "0"; //String pump_garden = "0", fan1 = "0", pump_k = "0"; String lamp_garden, lamp1, lamp_k; String pump_garden, fan1, pump_k; String tren, duoi, mod; String strGateWay; String temp, tem_cd; boolean led1 = false, led2 = false, led3 = false, led4 = false, led5 = false, led6 = false, mod1; const byte numChars = 32; char receivedChars[numChars]; char receivedChars1[numChars]; char receivedChars2[numChars]; boolean newData = false; boolean newDataBtn = false; boolean newData_th = false; boolean newData_doam = false; boolean isHand = false; boolean wifi = false, temp_wf, wifi2 = true; // use i for recv nhietdo int i = 0; int t, h; void setup() { pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(2, OUTPUT); pinMode(LEDWF, OUTPUT); Serial.begin(9600); Serial2.begin(9600); connectwf(); //connectWifi(); Firebase.begin("nhiem-5d2c9.firebaseio.com", "GYqZOvQQE8AasNWGNtLdcVp6LcxVQt09pXUSwJK2"); wifi = WiFi.isConnected(); translateStrBool(); //reset tat ca digitalWrite(LED1, led1); digitalWrite(LED2, led2); // digitalWrite(LEDWF, wifi); temp_wf = wifi; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 107 PHỤ LỤC temp = strToSend() + ">"; tem_cd = strToSend2(); recvWithStartEndMarkers(0); updateNewData(0); // recvWithStartEndMarkers(1); // updateNewData(1);; update_th(); digitalWrite(LEDWF, wifi); Serial2.print(strToSend()); Serial2.print(">"); Serial2.print("(00000)"); Serial.print("(00000)"); delay(9000); // recvWithStartEndMarkers(1); // updateNewData(1); Serial.print(strToSend()); Serial.print(wifi); Serial.print(">"); // getDataFireBase(); } void loop() { server.handleClient(); wifi = WiFi.isConnected(); if (temp_wf != wifi) { digitalWrite(LED1, led1); digitalWrite(LED2, led2); Serial.print(strToSend()); Serial.print(wifi); Serial.print(">"); temp_wf = wifi; } digitalWrite(LEDWF, wifi); if (!wifi && wifi2) { connectwf(); Serial2.print("(00000)"); Serial.print("(00000)"); wifi2 = false; } if (wifi) { wifi2 = true; } else { temp = String(strToSend() + ">"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 108 PHỤ LỤC } translateStrBool(); recvWithStartEndMarkers(0); if (isHand) { temp = String(strToSend() + ">"); isHand = false; } recvWithStartEndMarkers(1); if (isHand) { temp = String(strToSend() + ">"); isHand = false; } // recvWithStartEndMarkers_th(); updateNewData(0); updateNewData(1); update_th(); update_doam(); getDataFireBase(); guidulieu_cd(); if ((temp != String(strToSend() + ">")) && !isHand && (wifi == true)) { Serial.println("\nĐang so sánh:"); digitalWrite(LED1, led1); digitalWrite(LED2, led2); Serial2.print(strToSend()); Serial2.print(">"); Serial.print(strToSend()); Serial.print(wifi); Serial.print(">"); temp = strToSend() + ">"; } } CODE ARUDINO NANO KHỐI ĐIỀU KHIỂN PHỤ #include #include #include #define TX_PIN #define RX_PIN 11 10 #define LED3 #define LED4 #define BTN1 #define BTN2 #define BTN3 #define BTN4 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 109 PHỤ LỤC #define BTN5 #define BTN6 #define CMH 12 SoftwareSerial loraNode(RX_PIN, TX_PIN); LiquidCrystal_I2C lcd(0x3f, 20, 4); boolean led1 = false, led2 = false, led3 = false, led4 = false, led5 = false, led6 = false; String temp; const byte numChars = 32; char receivedChars[numChars]; boolean newData = false; int mod = 1; int value, percent; //doam volatile int idx = 0; int second = 0; void setup() { Serial.begin(9600); pinMode(BTN1, INPUT_PULLUP); pinMode(BTN2, INPUT_PULLUP); pinMode(BTN3, INPUT_PULLUP); pinMode(BTN4, INPUT_PULLUP); pinMode(BTN5, INPUT_PULLUP); pinMode(BTN6, INPUT_PULLUP); pinMode(CMH, INPUT_PULLUP); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(A0, INPUT); value = analogRead(A0); percent = map(value, 0, 1023, 0, 100); loraNode.begin(9600); temp = strToSend(); implementData(); // gửi cho node cập nhật trạng thái loraNode.print(temp); Serial.print(temp); lcd.init(); lcd.backlight(); cli(); TCCR1A = 0; TCCR1B = 0; TIMSK1 = 0; TCCR1B |= (1 && newData == false) { //while (Serial.available() > && newData == false) { rc = loraNode.read(); //rc = Serial.read(); if (recvInProgress == true) { if (rc != endMarker) { receivedChars[ndx] = rc; ndx++; if (ndx >= numChars) { ndx = numChars - 1; } } else { receivedChars[ndx] = '\0'; // terminate the string recvInProgress = false; ndx = 0; newData = true; } } else if (rc == startMarker) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 112 PHỤ LỤC recvInProgress = true; } } } boolean inputcd(int chan) { if (digitalRead(chan) == 0) { delay(20); if (digitalRead(chan) == 0) { while (digitalRead(chan) == 0); return true; } } return false; } void doamdat() { if (idx >= 10) { idx = idx - 10; second++; if (second == 2) { second = 0; value = analogRead(A0); percent = map(value, 0, 1023, 0, 100); } } } void hienthi_lcd() { if ( mod == 0) { lcd.setCursor(8, 0); lcd.print("HOME"); lcd.setCursor(0, 1); lcd.print("DEN 1:"); if (led1 == 1) lcd.print(" BAT else lcd.print(" TAT "); lcd.setCursor(0, 2); lcd.print("DEN 2:"); if (led2 == 1) lcd.print(" BAT else lcd.print(" TAT "); lcd.setCursor(0, 3); lcd.print(" "); } else if (mod == 1) { lcd.setCursor(8, 0); "); "); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 113 PHỤ LỤC lcd.print("VUON"); lcd.setCursor(0, 1); lcd.print("DEN:"); if (led3 == 1) lcd.print(" BAT ") ; else lcd.print(" TAT "); lcd.setCursor(12, 1); lcd.print("BOM:"); if (led4 == 1) lcd.print(" BAT"); else lcd.print(" TAT"); lcd.setCursor(0, 2); lcd.print("CAI: "); lcd.setCursor(6, 2); lcd.print("50-70"); lcd.setCursor(13, 2); lcd.print("CD: "); lcd.print("TD"); // lcd.setCursor(0, 3); lcd.print("DO AM DAT: "); if (percent < 100) { lcd.print(percent); lcd.setCursor(13, 3); lcd.print(" %"); } else { lcd.print(percent); lcd.setCursor(14, 3); lcd.print(" %"); } } else if (mod == 2) { lcd.setCursor(8, 0); lcd.print("KHO "); lcd.setCursor(0, 1); lcd.print("DEN :"); if (led5 == 1) lcd.print(" BAT else lcd.print(" TAT "); lcd.setCursor(0, 2); lcd.print("QUAT:"); if (led6 == 1) lcd.print(" BAT else lcd.print(" TAT "); lcd.setCursor(0, 3); lcd.print(" "); } ") ; "); } ISR (TIMER1_OVF_vect) { TCNT1 = 40536; idx++; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 114 PHỤ LỤC } CODE ARDUINO NANO KHỐI ĐIỀU KHIỂN PHỤ #include #include #include #define TX_PIN #define RX_PIN 11 10 #define LED5 #define LED6 #define BTN1 #define BTN2 #define BTN3 #define BTN4 #define BTN5 #define BTN6 #define CMH 12 SoftwareSerial loraNode(RX_PIN, TX_PIN); LiquidCrystal_I2C lcd(0x27, 16, 2); boolean led1 = false, led2 = false, led3 = false, led4 = false, led5 = false, led6 = false; String temp; int mod = 2; const byte numChars = 32; char receivedChars[numChars]; boolean newData = false; int h=100; void setup() { Serial.begin(9600); pinMode(BTN1, INPUT_PULLUP); pinMode(BTN2, INPUT_PULLUP); pinMode(BTN3, INPUT_PULLUP); pinMode(BTN4, INPUT_PULLUP); pinMode(BTN5, INPUT_PULLUP); pinMode(BTN6, INPUT_PULLUP); pinMode(CMH, INPUT_PULLUP); pinMode(LED5, OUTPUT); pinMode(LED6, OUTPUT); loraNode.begin(9600); temp = strToSend(); lcd.init(); lcd.backlight(); } void loop() { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 115 PHỤ LỤC h=100; if (inputcd(BTN1)) { led1 = !led1; mod=0; } if (inputcd(BTN2)) { led2 = !led2; mod=0; } if (inputcd(BTN3)) { led3 = !led3; mod=1; } if (inputcd(BTN4)) { led4 = !led4; mod=1; } if (inputcd(BTN5)) { led5 = !led5; mod=2; } if (inputcd(BTN6)) { led6 = !led6; mod=2; } if (inputcd(CMH)) { mod++; if (mod > 2) mod = 0; Serial.println(mod); } if (temp != strToSend()) { temp = strToSend(); implementData(); // gửi cho node cập nhật trạng thái loraNode.print(temp); Serial.print(temp); } recvWithStartEndMarkers(); showData(); hienthi_lcd(); } String strToSend() { return ""; } void implementData() { digitalWrite(LED5, led5); digitalWrite(LED6, led6); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 116 PHỤ LỤC } void showData() { if (newData == true) { // đọc liệu từ node gửi r cập nhật trạng thái led1 = ((String)receivedChars[0]).toInt(); led2 = ((String)receivedChars[1]).toInt(); led3 = ((String)receivedChars[2]).toInt(); led4 = ((String)receivedChars[3]).toInt(); led5 = ((String)receivedChars[4]).toInt(); led6 = ((String)receivedChars[5]).toInt(); temp = strToSend(); implementData(); newData = false; } } void recvWithStartEndMarkers() { static boolean recvInProgress = false; static byte ndx = 0; char startMarker = ''; char rc; while (loraNode.available() > && newData == false) { // while (Serial.available() > && newData == false) { rc = loraNode.read(); // rc = Serial.read(); //Serial.print(rc); if (recvInProgress == true) { if (rc != endMarker) { receivedChars[ndx] = rc; ndx++; if (ndx >= numChars) { ndx = numChars - 1; } } else { receivedChars[ndx] = '\0'; // terminate the string recvInProgress = false; ndx = 0; newData = true; } } else if (rc == startMarker) { recvInProgress = true; } } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 117 PHỤ LỤC boolean inputcd(int chan) { if (digitalRead(chan) == 0) { delay(20); if (digitalRead(chan) == 0) { while (digitalRead(chan) == 0); return true; } } return false; } void hienthi_lcd() { if ( mod == 0) { lcd.setCursor(0, 0); lcd.print("DEN 1:"); if (led1 == 1) lcd.print(" ON ") ; else lcd.print(" OFF "); lcd.setCursor(0, 1); lcd.print("DEN 2:"); if (led2 == 1) lcd.print(" ON "); else lcd.print(" OFF "); } else if (mod == 1) { lcd.setCursor(0, 0); lcd.print("DEN VUON:"); if (led3 == 1) lcd.print(" ON ") ; else lcd.print(" OFF"); lcd.setCursor(0, 1); lcd.print("BOM VUON:"); if (led4 == 1) lcd.print(" ON "); else lcd.print(" OFF"); } else if (mod == 2) { lcd.setCursor(0, 0); lcd.print("DEN KHO :"); if (led5 == 1) lcd.print(" ON ") ; else lcd.print(" OFF"); lcd.setCursor(0, 1); lcd.print("QUAT KHO :"); if (led6 == 1) lcd.print(" ON "); else lcd.print(" OFF"); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH an 118 S an K L 0 ... chọn đề tài ? ?Thi? ??t kế thi công hệ thống giám sát, điều khiển thi? ??t bị điện nhà thông qua App Android & hình cảm ứng dùng mạng Lora Wifi” Vì Lora giao thức khơng giây thi? ??t kế để truyền thông tầm... thống giám sát, điều khiển thi? ??t bị điện nhà thơng qua App Android & hình cảm ứng dùng mạng Lora Wifi” Sẽ giải vấn đề Các thi? ??t bị giám sát điều khiển từ xa điện thoại cần điện thoại điều khiển trung... Bộ điều khiển phụ 83 vii an 5.3.3 Điều khiển giám sát thi? ??t bị từ xa điện thoại 85 5.3.4 Điều khiển giám sát thi? ??t bị trực tiếp điều khiển 91 5.3.5 Điều khiển thi? ??t bị giám sát