Ngày nay, khoa học công nghệ phát triển mạnh mẽ và đã tạo ra những sản phẩmthông minh, tiện lợi, đa dạng với nhiều chức năng khác nhau để phục vụ nhu cầu ngàycàng cao của con người. Bên cạnh đó, việc tiết kiệm năng lượng luôn được đặc biệtquan tâm trong mọi lĩnh vực.Trong nông nghiệp, ngoài những yếu tố như phân bón, nước, độ ẩm, nhiệt độ thìánh sáng cũng là một phần thiết yếu để cây trồng phát triển tốt vì thế việc chiếu sáng chocác loài hoa, cây trồng ra kịp thời vụ, dịp lễ đang được đặc biệt quan tâm.Tại nhiều trang trại trồng thanh long, hoa cúc, nuôi cấy mô… ở một số địaphương trên cả nước, từ nhiều năm nay, bóng đèn sợi đốt vẫn được sử dụng để chiếusáng cho cây trồng nhằm kích thích cây tăng trưởng. Bóng đèn sợi đốt được ví như là“mặt trời nhân tạo” dành riêng cho nông nghiệp, không những cho ánh sáng khá đồngđều mà còn phát ra lượng nhiệt năng sưởi ấm cho cây trồng giúp kích thích rễ phát tiểnvà thực hiện phản ứng quang học, từ đó kích thích tăng trưởng. Cho nên, dù cây đượctrồng trong phòng nuôi cấy mô, không tiếp xúc với ánh sáng mặt trời hoặc vào banđêm, cây vẫn thực hiện tốt quá trình quang hợp. Ngoài ra, đèn sợi đốt có công dụngxua đuổi sâu bọ và những con vật đêm gây hại cho vườn tược. Bên cạnh những ưuđiểm trên thì đèn sợi đốt lại tiêu hao nhiều điện năng trong khi sử dụng.Đặc biệt đối với trang trại trồng hoa cúc ở những nơi có khí hậu lạnh, người trồngphải dùng đèn sợi đốt để canh thời gian sáng và sưởi ấm cho cây để cây ra hoa đúng dịpTết và mang lại giá trị kinh tế cao. Vì vậy tùy vào các mốc thời gian trong năm màchúng ta phải điều chỉnh ánh sáng hợp lý để cây trồng phát triển đạt năng suất cao vàmang lại hiệu quả kinh tế cao.Nhận thấy tầm quan trọng của những vấn đề trên nhóm đã nghĩ ra ý tưởng thiếtkế hệ thống chiếu sáng cho cây trồng nhằm tăng năng suất và tiết kiệm năng lượng gópphần nâng cao thu nhập cho người nông dân.Trong phần đồ án, nhóm báo cáo sẽ đi sâu vào cách điều khiển độ sáng đèn vàsử dụng ánh sáng nhân tạo để thắm sáng, cũng như sử dụng công nghệ không dây(Zigbee) để giao tiếp, điều khiển mạng lưới ánh sáng.
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 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 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 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 hồn thiện mơ hình Tuần 13 - Chạy, kiểm tra hiệu chỉnh toà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 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 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 cô 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 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 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 DANH MỤC HÌNH ẢNH Hình 2.1: Các dạng mơ hình Zigbee Hình 2.2: Các ứng dụng giao thức Zigbee Hình 2.3: Truyền liệu nối tiếp UART Hình 2.4: Sơ đồ gói liệu truyền nhận UART 10 Hình 2.5 Sơ đồ khối giao tiếp UART 11 Hình 2.6: Sơ đồ kết nối I2C 12 Hình 2.7: Các mạch Arduino thông dụng 14 Hình 3.1: Sơ đồ khối hệ thống 16 Hình 3.2: Mơ-đun Arduino Mega 2560 18 Hình 3.3: Sơ đồ nguyên lý mạch điều khiển trung tâm 19 Hình 3.4: Sơ đồ nguyên lý mạch phất điểm 21 Hình 3.5: Sơ đồ nguyên lý mạch công suất 22 Hình 3.6: Mơ-đun Arduino Uno R3 23 Hình 3.7: Sơ đồ nguyên lý mạch điều khiển phụ 25 Hình 3.8: Mô-đun Xbee S2 sơ đồ chân 26 Hình 3.9: Mơ hình mạng Zigbee 27 Hình 3.10: Sơ đồ nguyên lý khối thu phát tín hiệu Zigbee 28 Hình 3.11: Màn hình Nextion HMI 3.2 Inch 29 Hình 3.12: Sơ đồ nguyên lý khối hiển thị 30 Hình 3.13: Mơ-đun RTC DS1307 31 Hình 3.14: Sơ đồ nguyên lý RTC DS1307 31 Hình 3.15: Sơ đồ nguyên lý khối thời gian thực 32 Hình 3.16: Sơ đồ ngun lý Mơ-đun cảm biến ánh sáng quang trở CDS 34 Hình 3.17: Mơ-đun cảm biến ánh sáng quang trở CDS 33 Hình 3.18: Sơ đồ nguyên lý khối cảm biến 34 Hình 3.19: Nguồn adapter 5V – 1A 36 Hình 4.1: Icon XCTU cài đặt 37 Hình 4.2: Giao diện website digi.com 37 Hình 4.3: Cửa sổ làm việc 38 Hình 4.4: Đế mạch thu phát RF Xbee 38 Hình 4.5: Thiết lập cấu hình mơ-đun Xbee 39 Hình 4.6: Thiết lập phần mềm chức cho module 40 Hình 4.7: Cửa sổ giao tiếp 42 Hình 4.8: Cửa sổ kiểm tra kết nối mạng 43 Hình 4.9: Mặt PCB mạch thu phát tín hiệu Zigbee 44 Hình 4.10: Mặt PCB mạch thu phát tín hiệu Zigbee 44 Hình 4.11: Icon Nextion Editor sau cài đặt 44 Hình 4.12: Trang chủ Nextion Editor 45 Hình 4.13: Kiểu lập trình kích thước hình HMI 45 Hình 4.14: Chọn chiều thiết kế giao diện 46 Hình 4.15: Page0 ……………………………………………………………………………………………….…………….… 46 Hình 4.16: Page1 ……………………………………………………………………………………………….…………….… 46 Hình 4.17: Page2 ……………………………………………………………………………………………….……………… 47 Hình 4.18: Page3 ……………………………………………………………………………………………….……………… 47 Hình 4.19: Page4 ……………………………………………………………………………………………….……………… 47 viii PHỤ LỤC } } // -//NHAN DU LIEU TU XBEE// void nhan() { 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])); } ttd = Data_2.toInt(); } } } // -void auto_mode() { if(message=="65 ffff ffff ffff") { gio_on = myNextion.getComponentValue("va0"); phut_on = myNextion.getComponentValue("va1"); gio_off = myNextion.getComponentValue("va2"); phut_off = myNextion.getComponentValue("va3"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 78 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 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 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 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 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 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 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 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