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

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 và màn hình

126 1 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 126
Dung lượng 5,04 MB

Nội dung

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 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 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 LIỆT KÊ HÌNH VẼ Hình 2.1 Cấu tạo mạng Lora .4 Hình 2.2 Module E32-TTL-100 RF Hình 2.3 Ảnh minh họa arduino Uno Hình 2.4 Arduino Nano .8 Hình 2.5 Module wifi Esp32 WROOM 10 Hình 2.6 Module cảm biến nhiệt độ, độ ẩm DHT11 .11 Hình 2.7 Cảm biến đo độ ẩm đất .12 Hinh 2.8 Module thời gian thực RTC – DS1307 13 Hình 2.9 Màn hình LCD TFT 3.2inch ILI9341 .14 Hình 2.10 Ảnh minh họa LCD20x4 15 Hình 2.11 Ảnh minh họa LCD 16x2 .16 Hình 2.12 Module chuyển đổi I2C cho LCD 17 Hình 2.13 Kết nối I2C với LCD 17 Hình 2.14 Relay 5v 18 Hình 2.15 Kết nối UART hai thiết bị 19 Hình 2.16 Sơ đồ giao tiếp I2C thiết bị 20 Hình 2.17 Sơ đồ giao tiếp SPI thiết bị 21 Hình 2.18 Mạng wifi .22 Hình 3.1 Sơ đồ khối hệ thống 23 Hình 3.2 Mạch kích Relay .25 Hình 3.3 Khối ngõ cơng suất .27 Hình 3.4 Khối cảm biến 28 Hình 3.5 Khối điều khiển hiển thị 29 Hình 3.6 Mạch chuyển bus tín hiệu 29 Hình 3.7 Sơ đồ nguyên lý khối thu phát Lora 30 ix Hình 3.8 Khối xử lý điều khiển trung tâm 31 Hình 3.9 Sơ đồ nguyên lý toàn mạch 32 Hình 3.10 Adapter 5V-2A .34 Hình 3.11 Khối cơng suất 35 Hình 3.12 Khối cảm biến .35 Hình 3.13 Khối điều khiển hiển thị 36 Hình 3.14 Mạch nút nhấn 36 Hình 3.15 Khối thu phát Lora 37 Hình 3.16 Khối xử lý điều khiển 38 Hình 3.17 Sơ đồ ngun lý tồn mạch khối phụ 39 Hình 3.18 Adapter 5V-1A .41 Hình 3.19 Sơ đồ nguyên lý toàn mạch khối phụ 42 Hình 4.1 Lớp PCB khối .45 Hình 4.2 Lớp lớp PCB mạch mở rộng bus 45 Hình 4.3 Sơ đồ bố trí linh kiện khối 46 Hình 4.4 Sơ đồ bố trí linh kiện mạch mở rộng bus 46 Hình 4.5 Lớp PCB khối phụ 48 Hình 4.6 Lớp PCB nút nhấn 48 Hình 4.7 Sơ đồ bố trí linh kiện khối phụ 49 Hình 4.8 Sơ đồ bố trí mạch nút nhấn .49 Hình 4.9 Lớp PCB khối phụ 51 Hình 4.10 Sơ đồ bố trí linh kiện khối phụ 51 Hình 4.11 Hình ảnh thực tế lớp board mạch khối 52 Hình 4.12 Hình ảnh thực tế lớp board mạch khối 53 Hình 4.13 Hình ảnh thực tế lớp board mạch khối phụ 53 Hình 4.14 Hình ảnh thực tế lớp board mạch khối phụ 54 Hình 4.15 Hình ảnh thực tế lớp board mạch khối phụ 54 x Hình 4.16 Hình ảnh thực tế lớp board mạch khối phụ 55 Hình 4.17 Mơ hình khối dạng 2D 56 Hình 4.18 Mơ hình khối phụ dạng 2D 56 Hình 4.19 Mơ hình khối phụ dạng 2D 57 Hình 4.20 Mơ hình thực tế khối 58 Hình 4.21 Mơ hình thực tế khối phụ 59 Hình 4.22 Mơ hình thực tế khối phụ 60 Hình 4.23 Lưu đồ giải thuật ESP32 61 Hình 4.24 Lưu đồ chương trình gửi liệu từ Firebase sang LORA TFT 63 Hình 4.25 Lưu đồ giải thuật Arduino Uno .64 Hình 4.26 Lưu đồ chương trình điều khiển TFT .66 Hình 4.27 Lưu đồ giải thuật khối phụ 67 Hình 4.28 Lưu đồ chương trình gửi liệu từ nút nhấn sang LORA 68 Hình 4.29 Lưu đồ giải thuật khối phụ 69 Hình 4.30 Lưu đồ trình nhận liệu từ Lora hình TFT 70 Hình 4.31 Lưu đồ giải thuật ứng dụng Android 71 Hình 4.32 Giao diện lập trình phần mềm Arduino IDE 72 Hình 4.33 Giao diện quản lý dự án 73 Hình 4.34 Giao diện thiết kế 74 Hình 4.35 Giao diện lập trình 75 Hình 4.36 Tạo dự án Firebase 76 Hình 4.37 Giao diện người dùng Firebase .77 Hình 4.38 Ngõ vào điều khiển 78 Hình 5.1 Bộ điều khiển trung tâm (nhà chính) 80 Hình 5.2 Kết nối wifi ESP .81 Hình 5.3 Đăng nhập wifi cho hệ thống 81 Hình 5.4 Bộ điền khiển trung tâm kết nối wifi .82 xi Hình 5.5 Đo thời tiết google .82 Hình 5.6 Bộ điều khiển phụ 1(vườn) .83 Hình 5.7 Bộ điều khiển phụ 2(kho) 84 Hình 5.8 Giao diện đăng nhập app android 85 Hình 5.9 Giao diện trang chủ danh mục menu 86 Hình 5.10 Bật đèn điều khiển trung tâm .87 Hình 5.11 Dữ liệu đồng ba điều khiển 87 Hình 5.12 Tùy chọn giọng nói giao diện giọng nói 88 Hình 5.13 Giao điện cài đặt ứng dụng điện thoại 89 Hình 5.14 Giao diện cài bơm vườn 90 Hình 5.15 Cài giá trị tự động cho bơm vườn 90 Hình 5.16 Giao diện hiển thị độ ẩm đất LCD 91 Hình 5.17 Giao diện điều khiển cảm ứng TFT 92 LIỆT KÊ BẢNG Bảng 2.1 Các chế độ làm việc module thu phát RF UART Lora SX1278 Bảng 3.1 Tổng dịng điện khối tiêu thụ 33 Bảng 3.2 Tổng dòng điện khối phụ tiêu thụ 40 Bảng 3.3 Tổng dòng điện khối phụ tiêu thụ 43 Bảng 4.1 Danh sách linh kiện khối 44 Bảng 4.2 Danh sách linh kiện khối phụ 47 Bảng 4.3 Danh sách linh kiện khối phụ 50 Bảng 5.1 Thống kê đánh giá hệ thống 30 lần thực nghiệm 94 xii TĨM TẮT Khi cơng nghệ ngày phát triển, nhu cầu đời đời sống người ngày cao Những thiết bị công nghệ phần thiếu sống Đặc biệt, muốn xây dựng cho tổ ấm an tồn tiện ích Chính thế, hệ thống điều khiển thiết bị nhà từ xa giải pháp tiện lợi để người sử dụng ngơi nhà Giải pháp điều khiển thiết bị phổ biến ngày điều khiển trực tiếp nút nhấn, cơng tắc Thay phải đến trực tiếp công tắc để bật/tắt thiết bị nhà hay hàng trăm mét để điều khiển thiết bị bơm ngồi vườn lúc điều khiển từ xa, đặc biệt sử dụng smartphone để làm điều Đề tài 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” 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 tâm có kết nối internet hình cảm ứng Bên cạnh cịn giám sát thông số nhiệt độ, độ ẩm, độ ẩm đất Khi khơng có internet, thiết bị điều khiển điều khiển từ xa thông qua mạng Lora, mạng truyền thông không dây tầm xa ứng dụng rộng rãi lĩnh vực IoT(Internet of Things) xiii CHƯƠNG TỔNG QUAN Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Hiện nay, công nghệ ngày đại phát triển để đáp ứng nhu cầu cao người Chính cơng nghệ gần gũi với sống ngày hết, thời đại mà bùng phát kỹ thuật tiên tiến ứng dụng mạnh mẽ Trong sống thường nhật, quen thuộc với việc bật tắt thiết bị công tắc thông thường Với sống bộn bề ngày nay, bị chi phối nhiều thứ Việc khỏi nhà mà qn tắt đèn, điều hịa chuyện khơng gặp Với công tắc thông thường, rời khỏi nhà mà quên tắt thiết bị nhà Để tắt thiết bị cách quay trở lại nhà tắt chúng Điều đơi gây cho nhiều phiền tối Để giải vấn đề ta dùng công nghệ truyền nhận liệu không dây RF, NFC, Bluetooth, Wifi, Lora… Ở nhóm định 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 xa, lượng thấp Giao thức cung cấp khả liên lạc mà thiết bị thơng minh cần có, liên minh Lora hoạt động để đảm bảo khả tương tác nhiều mạng toàn quốc [1] LoRa hướng tới kết nối thiết bị với khoảng cách lớn Nó hỗ trợ liên lạc khoảng cách lên tới 15 – 20 km, với hàng triệu node mạng Mạng Lora hoạt động băng tần cấp phép, với tốc độ thấp từ 0,3kbps đến khoảng 30kbps [2] Với đặc tính này, mạng LoRa phù hợp với lĩnh vực liên quan đến Internet of Things(IoT) tầm xa, ứng dụng cần trao đổi liệu mức thấp trì thời gian dài 1.2 MỤC TIÊU Nghiên cứu, thiết kế thi công hệ thống gồm xử lý trung tâm hai xử lý phụ để điều khiển, giám sát thiết bị đèn, quạt, nhiệt độ, độ ẩm… từ xa thơng app android & hình cảm ứng dùng mạng LoRa Wifi BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƯƠNG TỔNG QUAN 1.3 NỘi DUNG NGHIÊN CỨU - Nghiên cứu, thiết kế khối xử lý trung tâm để thu thập liệu gửi tín hiệu điều khiển đến khối con, đồng thời nhận tín hiệu điều khiển từ khối xử lý để điều khiển thiết bị - Nghiên cứu, thiết kế khối xử lý để kết nối với thiết bị, sensor… nhận tín hiệu điều khiển từ khối xử lý trung tâm đồng thời gửi tín hiệu để điểu khiển ngược lại khối xử lý trung tâm - Viết chương trình để giao tiếp app android, Module wifi, Arduino Lora - Thiết kế ứng dụng để điều khiển giám sát hệ thống điện thoại sử dụng hệ điều hành Android - Thiết kế, thi công hệ thống, chạy thử nghiệm hoàn thiện sản phẩm - Viết luận văn báo cáo bảo vệ đề tài tốt nghiêp 1.4 GIỚI HẠN - Sử dụng Arduino Uno, Arduino Nano, NodeMCU Esp32, Lora sx1278 Uart - Dữ liệu điều khiển truyền nhận với giao thức truyền thông không dây Lora với khoảng cách truyền nhận tối đa 400m - Bộ xử lý trung tâm sử dụng hình cảm ứng TFT 3.2 inch để điều khiển thiết bị giám sát liệu - Nguồn cấp 220VAC trực tiếp từ điện lưới, thông qua mạch chuyển đổi 5VDC 1A, 2A cấp nguồn cho xử lý hoạt động khơng sử dụng nguồn dự phịng - Ngõ điều khiển thiết bị có cơng suất 1000W - Board mạch xử lý trung tâm đặt hộp mica có kích thước 17x15x8cm - Board mạch hai xử lý đặt hộp mica có kích thước 14x11x8cm BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH PHỤ LỤC createButtonCircle(Den_NC, ILI9341_GREEN); } else { createButtonCircle(Den_NC, ILI9341_RED); } if (quatNC) { createButtonCircle(Quat_NC, ILI9341_GREEN); } else { createButtonCircle(Quat_NC, ILI9341_RED); } break; "Bat", 2, ILI9341_WHITE, 280, 98, 35, 1, "Tat", 2, ILI9341_WHITE, 280, 98, 35, 1, "Bat", 2, ILI9341_WHITE, 280, 188, 35, 1, "Tat", 2, ILI9341_WHITE, 280, 188, 35, 1, case 2: if (denV) { createButtonCircle(Den_V, "Bat", 2, ILI9341_WHITE, 280, 98, 35, 1, ILI9341_GREEN); } else { createButtonCircle(Den_V, "Tat", 2, ILI9341_WHITE, 280, 98, 35, 1, ILI9341_RED); } if (bomV) { createButtonCircle(Bom_V, ILI9341_GREEN); } else { createButtonCircle(Bom_V, ILI9341_RED); } break; "Bat", 2, ILI9341_WHITE, 280, 188, 35, 1, "Tat", 2, ILI9341_WHITE, 280, 188, 35, 1, case 3: if (denK) { createButtonCircle(Den_K, "Bat", 2, ILI9341_WHITE, 280, 98, 35, 1, ILI9341_GREEN); } else { createButtonCircle(Den_K, "Tat", 2, ILI9341_WHITE, 280, 98, 35, 1, ILI9341_RED); } if (quatK) { createButtonCircle(Quat_K, ILI9341_GREEN); } else { createButtonCircle(Quat_K, "Bat", 2, ILI9341_WHITE, 280, 188, 35, 1, "Tat", 2, ILI9341_WHITE, 280, 188, 35, 1, BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 104 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 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 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 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 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 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 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 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 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 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 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 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 118 ... bật/tắt thi? ??t bị nhà hay hàng trăm mét để điều khiển thi? ??t bị bơm vườn lúc điều khiển từ xa, đặc biệt sử dụng smartphone để làm điều Đề tài tài ? ?Thi? ??t kế thi công hệ thống giám sát, điều khiển thi? ??t. .. 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... 5.3.2 Bộ điều khiển phụ 83 vii 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

Ngày đăng: 01/11/2022, 12:59

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

TÀI LIỆU LIÊN QUAN

w