1. Trang chủ
  2. » Tất cả

(Đồ án hcmute) thiết kế và thi công hệ thống chiếu sáng điều khiển qua mạng zigbee

106 3 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

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 CHIẾU SÁNG ĐIỀU KHIỂN QUA MẠNG ZIGBEE GVHD: PHAN VÂN HOÀN SVTT: TRẦN BÌNH TRỌNG MSSV: 13141387 SVTH: NGUYỄN ĐÌNH KHƯƠNG MSSV: 15141189 SKL 0 Tp Hồ Chí Minh, tháng 07/2020 an BỘ GIÁO DỤC VÀ ĐÀ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 CHIẾU SÁNG ĐIỀU KHIỂN QUA MẠNG ZIGBEE GVHD: ThS Phan Vân Hồn SVTH: Trần Bình Trọng MSSV: 13141387 Nguyễn Đình khương MSSV: 15141189 Tp Hồ Chí Minh 07/2020 an 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 03 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: Trần Bình Trọng Nguyễn Đình Khương Điện tử cơng nghiệp Đại học quy 2013 2015 MSSV: 13141387 MSSV: 15141189 Mã ngành: 41 Mã hệ: Lớp: 13141DT1A Lớp: 15141DT1B I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG CHIẾU SÁNG ĐIỀU KHIỂN QUA MẠNG ZIGBEE II NHIỆM VỤ Các số liệu ban đầu: - Vi điều khiển Arduino Uno R3, Arduino Mega 2560 ngơn ngữ lập trình - Tài liệu Arduino, Xbee S2 - Thư viện Arduino, Xbee, DS1307, Nextion Nội dung thực hiện: - Nội dung 1: Nghiên cứu thiết kế giao diện để người dùng giao tiếp với hệ thống thơng qua hình Nextion HMI 3.2Inch - Nội dung 2: Tìm hiểu nghiên cứu Mô-đun Arduino, Mô-đun Realtime Mô-đun cảm biến ánh sáng - Nội dung 3: Nghiên cứu cách kết nối, chế độ hoạt động Mô-đun Xbee S2 để xây dựng hệ thống mạng không giây Zigbee - Nội dung 4: Nghiên cứu tìm hiểu cách thức điều khiển độ sáng đèn - Nội dung 5: Lập trình điều khiển độ sáng phản hồi trạng thái đèn - Nội dung 6: Thi công phần cứng - Nội dung 7: Thiết kế mơ hình hệ thống - Nội dung 8: Đánh giá kết thực III NGÀY GIAO NHIỆM VỤ: 23/03/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/08/2020 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: CÁN BỘ HƯỚNG DẪN ThS Phan Vân Hoà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 03 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 1: TRẦN BÌNH TRỌNG Lớp: 13141DT1A MSSV: 13141387 Họ tên sinh viên 2: NGUYỄN ĐÌNH KHƯƠNG Lớp: 15141DT1B MSSV: 15141189 Tên đề tài: Thiết kế thi công hệ thống chiếu sáng điều khiển qua mạng Zigbee Tuần/ngày Tuần (23/03 - 29/03) Tuần (30/03 - 05/04) Tuần (06/04 - 12/04) Tuần (13/04 - 19/04) Nội dung Xác nhận GVHD - Gặp GVHD để nghe phổ biến yêu cầu làm đồ án, tiến hành chọn đề tài - GVHD tiến hành xét duyệt đề tài - Viết đề cương chi tiết - Gặp báo cáo GVHD hướng thực đề tài - Tìm kiếm số tài liệu liên quan - Trao đổi với giáo viên cơng nghệ Zigbee - Tìm hiểu cách cấu hình thiết lập mơ hình mạng Zigbee sử dụng module (20/04 - 26/04/) Xbee S2 Tuần Tuần (27/04-03/05) Tuần (04/05 - 10/05) Tuần (11/05 - 17/05) Tuần (18/05 - 24/05) - Tìm hiểu mạch Arduino cách lập trình -Tìm hiểu module cảm biến quang trở CDS -Tìm hiểu module thời gian thực DS1307 - Tìm hiểu mạch cơng suất điều khiển độ sáng đèn - Tìm hiểu thiết kế giao diện hiển thị hình Nextion HMI ii an Tuần 10 (25/05 - 31/05) Tuần 11 (01/06 - 07/06) Tuần 12 - Thiết kế sơ đồ mạch vẽ PCB - Vẽ lưu đồ giải thuật viết chương trình - Thi cơng phần cứng - Thi cơng mơ hình - Báo cáo tiến độ GVHD (08/06 - 14/06) - Chỉnh sửa phần cứng, phần mềm hoàn thiện mơ hình Tuần 13 - Chạy, kiểm tra hiệu chỉnh tồn mơ hình (15/06 - 21/06) Tuần 14 - Viết báo cáo (22/06 - 28/06) Tuần 15 - Chỉnh sửa hoàn thiện báo cáo (29/06 - 05/07) Tuần 16 (06/07 - 12/07) Tuần 17, 18 - Thiết kế slide thuyết trình - Làm slide báo cáo nộp báo cáo (13/07 -23/07) GV HƯỚNG DẪN (Ký ghi rõ họ tên) iii an LỜI CAM ĐOAN Đề tài 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 Trần Bình Trọng – Nguyễn Đình Khương iv an LỜI CẢM ƠN Lời đầu tiên, chúng em xin trân trọng gửi lời cảm ơn đến thầy ThS Phan Vân Hồn người nhiệt tình hỗ trợ, giải đáp khúc mắc, truyền đạt kiến thức, theo dõi sát q trình làm đồ án, từ thầy đóng góp ý kiến định hướng cho đề tài động viên chúng em trình làm đề tài Tiếp đến, chúng em xin cảm ơn đến thầy cô khoa Điện- Điện tử tạo điều kiện cho chúng em thực đề tài đặc biệt thầy PGS.TS Nguyễn Thanh Hải thầy ThS.Võ Đức Dũng Chính kiến thức, kỹ quan trọng mà thầy truyền tải mà chúng em vận dụng để giải vấn đề gặp phải thực đề tài Mặc dù cố gắng nỗ lực mình, song chắn đồ án khơng tránh khỏi thiếu sót Chúng em kính mong nhận thơng cảm bảo tận tình thầy Người thực Trần Bình Trọng – Nguyễn Đình Khương v an MỤC LỤC LỜI CAM ĐOAN iv LỜI CẢM ƠN v MỤC LỤC vi DANH MỤC HÌNH ẢNH viii DANH SÁCH CÁC BẢNG x CHƯƠNG 1: TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Giới hạn 1.4 Nội dung thực CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan mạng Zigbee 2.1.1 Tổng quan 2.1.2 Cấu trúc mạng Zigbee 2.1.2 Mô hình mạng Zigbee 2.1.3 Các dải tầng sóng hoạt động Zigbee 2.1.4 Ưu nhược điểm giao thức Zigbee 2.2 Các chuẩn giao tiếp 2.2.1 Chuẩn giao tiếp UART 2.2.2 Chuẩn giao tiếp I2C 12 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 15 3.1 Giới thiệu 15 3.2 Thiết kế hệ thống 15 3.2.1 Thiết kế sơ đồ khối hệ thống 15 3.2.2 Tính tốn thiết kế mạch 17 CHƯƠNG 4: THI CÔNG HỆ THỐNG 37 4.1 THI CÔNG HỆ THỐNG 37 4.1.1 Thi cơng mạch thu phát tín hiệu Zigbee 37 4.1.2 Thiết kế thi công giao diện điều khiển HMI Nextion Editor 44 4.1.3 Thi công mạch điều khiển trung tâm 51 4.1.4 Thi công mạch điều khiển phụ 52 4.1.5 Thi công mạch phát điểm mạch công suất 54 4.2 Lưu đồ giải thuật 55 4.2.1 Lưu đồ mạch điều khiển trung tâm 55 4.2.2 Lưu đồ mạch điều khiển phụ 59 vi an 4.3 Phần mềm lập trình Arduino IDE 61 4.3.1 Giới thiệu phần mềm Arduino IDE 61 4.3.2 Cài đặt cách sử dụng phần mềm Arduino IDE 61 4.4 Tiến hành lắp ráp hệ thống hoàn chỉnh 64 4.4.1 Lắp ráp hệ thống 64 4.4.2 Mơ hình hệ thống 65 CHƯƠNG 5: KẾT QUẢ VÀ ĐÁNH GIÁ 66 5.1 Kết đạt 66 5.2 Kết chạy thử nghiệm hệ thống 66 5.3 Nhận xét đánh giá 71 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 72 6.1 Kết luận 72 6.2 Hướng phát triển đề tài 72 TÀI LIỆU THAM KHẢO 73 PHỤ LỤC 74 vii an PHỤ LỤC Serial.println("gio on: " + String(gio_on) + " phut on: " + String(phut_on) + "gio off: " + String(gio_off) + " phut off: " + String(phut_off)); dim = 0; message = myNextion.listen(); gio_c = 0; phut_c = 0; giay_c = 0; } if(message=="65 17 ffff ffff ffff") { gio_c = 0; phut_c = 0; giay_c = 0; } readDS1307(); if ((hour >= gio_on)&&(minute >= phut_on)&&(hour < 22)) { dim = 1; } if ((gio_off >= hour)&&(phut_off>=minute)&&(hour < gio_on)&&(minute < phut_on)) { dim = 0; } if (giay_c != second) { myNextion.setComponentText("giay",String(second)); myNextion.setComponentText("phut",String(minute)); myNextion.setComponentText("gio",String(hour)); if(phut_c != minute) { myNextion.setComponentText("phut",String(minute)); if(gio_c != hour) { myNextion.setComponentText("gio",String(hour)); gio_c = hour; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 79 PHỤ LỤC } phut_c = minute; } giay_cu = second; } } // -void manual_mode() { message = myNextion.listen(); if(message != ""){ // if a message is received Serial.println(message);} // print it out if (message=="65 ffff ffff ffff") { if (ON==1) { dim = 1; myNextion.setComponentText("level","100"); Serial.println(dimming); } } if(message=="65 ffff ffff ffff") { if(ON==1) { dim = 2; myNextion.setComponentText("level","70"); Serial.println(dimming); } } if (message=="65 ffff ffff ffff") // NHAN ON { dim = 1; myNextion.setComponentText("level","100"); ON=1; Serial.println(dimming); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 80 PHỤ LỤC } if (message=="65 3 ffff ffff ffff") //NHAN OFF { dim = 0; myNextion.setComponentText("level","0"); ON=0; Serial.println(dimming); } } // void kiemtrattd() { switch (ttd) { case 3: // den hu myNextion.sendCommand("vis sang_1,0"); myNextion.sendCommand("vis sang_2,1"); myNextion.sendCommand("vis sang_3,1"); break; case 6: // den hu myNextion.sendCommand("vis sang_1,1"); myNextion.sendCommand("vis sang_2,0"); myNextion.sendCommand("vis sang_3,1"); break; case 5: // den hu myNextion.sendCommand("vis sang_1,1"); myNextion.sendCommand("vis sang_2,1"); myNextion.sendCommand("vis sang_3,0"); break; case 7: // khong den nao hu myNextion.sendCommand("vis sang_1,1"); myNextion.sendCommand("vis sang_2,1"); myNextion.sendCommand("vis sang_3,1"); break; case 2: // đèn hư myNextion.sendCommand("vis sang_1,0"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 81 PHỤ LỤC myNextion.sendCommand("vis sang_2,0"); myNextion.sendCommand("vis sang_3,1"); break; case 1: // đèn hư myNextion.sendCommand("vis sang_1,0"); myNextion.sendCommand("vis sang_2,1"); myNextion.sendCommand("vis sang_3,0"); break; case 4: // đèn hư myNextion.sendCommand("vis sang_1,1"); myNextion.sendCommand("vis sang_2,0"); myNextion.sendCommand("vis sang_3,0"); break; case 0: // đèn hư myNextion.sendCommand("vis sang_1,0"); myNextion.sendCommand("vis sang_2,0"); myNextion.sendCommand("vis sang_3,0"); break; } } // #include /* Địa DS1307 */ const byte DS1307 = 0x68; /* Số byte liệu đọc từ DS1307 */ const byte NumberOfFields = 7; int second, minute, hour, day, wday, month, year; int bcd2dec(byte num) { return ((num/16 * 10) + (num % 16)); } /* Chuyển từ Decimal sang BCD */ int dec2bcd(byte num) { return ((num/10 * 16) + (num % 10)); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 82 PHỤ LỤC void readDS1307() { /* Chuyển từ format BCD (Binary-Coded Decimal) sang Decimal */ Wire.beginTransmission(DS1307); Wire.write((byte)0x00); Wire.endTransmission(); Wire.requestFrom(DS1307, NumberOfFields); second = bcd2dec(Wire.read() & 0x7f); minute = bcd2dec(Wire.read() ); hour = bcd2dec(Wire.read() & 0x3f); // chế độ 24h wday = bcd2dec(Wire.read() ); day = bcd2dec(Wire.read() ); month = bcd2dec(Wire.read() ); year = bcd2dec(Wire.read() ); year += 2000; } /* Chuyển từ format BCD (Binary-Coded Decimal) sang Decimal */ void printDigits(int digits){ // thành phần thời gian ngăn chách dấu : Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); } /* cài đặt thời gian cho DS1307 */ void setTime(byte hr, byte minu, byte sec, byte wd, byte d, byte mth, byte yr) { Wire.beginTransmission(DS1307); Wire.write(byte(0x00)); // đặt lại pointer Wire.write(dec2bcd(sec)); Wire.write(dec2bcd(minu)); Wire.write(dec2bcd(hr)); Wire.write(dec2bcd(wd)); // day of week: Sunday = 1, Saturday = Wire.write(dec2bcd(d)); Wire.write(dec2bcd(mth)); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 83 PHỤ LỤC Wire.write(dec2bcd(yr)); Wire.endTransmission(); } void digitalClockDisplay(){ Serial.print(hour); printDigits(minute); printDigits(second); Serial.print(" "); Serial.print(day); Serial.print(" "); Serial.print(month); Serial.print(" "); Serial.print(year); Serial.println(); } void loop() { message = myNextion.listen(); //check for message if(message != ""){ // if a message is received Serial.println(message); // print it out } chon_mode(); } ISR (TIMER1_OVF_vect) { TCNT1 = 25000; // reset lại TIMER kiemtrattden(); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 84 PHỤ LỤC CHƯƠNG TRÌNH BỘ ĐIỀU KHIỂN ĐÈN Bộ điều khiển đèn #include // thư viện Xbee #define COOR 0x419B5210 // địa XBee trung tâm #define D1 0x409B9150 // địa XBee đèn #define D2 0x40E74427 // địa XBee đèn #define D3 0x418F1397 // địa XBee đèn #define DCCOOR "1084889937" //địa dạng thập phân XBee trung tâm #define DCD1 "1083937104" // địa dạng thập phân XBee đèn #define DCD2 "1088898087" // địa dạng thập phân XBee đèn #define DCD3 "1099895703" // địa dạng thập phân XBee đèn // chọn chân triac, chân cảm biến unsigned char AC_LOAD = 3; int cb = 7; // khởi tạo XBee XBee xbee = XBee(); XBeeResponse response = XBeeResponse(); // khai báo địa module Xbee board đèn cảm biến XBeeAddress64 addr64_1 = XBeeAddress64(0x0013A200, COOR); XBeeAddress64 addr64_2 = XBeeAddress64(0x0013A200, D1); XBeeAddress64 addr64_3 = XBeeAddress64(0x0013A200, D2); XBeeAddress64 addr64_4 = XBeeAddress64(0x0013A200, D3); // khởi tạo phản hồi XBee ZBRxResponse rx = ZBRxResponse(); ZBRxIoSampleResponse ioSample = ZBRxIoSampleResponse(); // khai báo biến unsigned int dimtime , dim = , dimming_cu,dlieu, tt_m, tt_c, ttden; int value_m, value_c; const char gm[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; String Data_2; // du lieu nhan duoc tu xbee String Address, diachi_s; uint8_t Data_send_a[1] = {0x00}; // -void setup() { pinMode(AC_LOAD, OUTPUT); pinMode(cb,INPUT); attachInterrupt(0, zero_crosss_int, FALLING); chân số Serial.begin(9600); xbee.setSerial(Serial); } void zero_crosss_int() { //chân ngắt nối vào // hàm ngắt để thực kích TRIAC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 85 PHỤ LỤC if ( dim == 0) detachInterrupt(0); if (dim == 1) dimtime = 1; if (dim > 1) dimtime = 2200; delayMicroseconds(dimtime); // thời gian off TRIAC digitalWrite(AC_LOAD, HIGH); // kích TRIAC delayMicroseconds(10); // trì hỗn để đảm bảo kích TRIAC digitalWrite(AC_LOAD, LOW); // ngắt xung kích } // -void loop() { xbee.readPacket(); if (xbee.getResponse().isAvailable()) { if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) { xbee.getResponse().getZBRxResponse(rx); XBeeAddress64 senderLongAddress = rx.getRemoteAddress64(); Address = String(senderLongAddress.getLsb());//Lay gia tri LSB Data_2=""; for (int i= 0; i < rx.getDataLength(); i++) { if (!iscntrl(rx.getData()[i])) Data_2=Data_2+String(char(rx.getData()[i])); } dlieu = Data_2.toInt(); } if ( Address == DCCOOR) { dim = dlieu; if ( dim == 0) detachInterrupt(0); else attachInterrupt(0, zero_crosss_int, RISING); if ( dimming != dimming_cu) { if ( dim

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

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w