Nghiên cứu thiết kế hệ thống giám sát đèn chiếu sáng khu vực sân chơi công cộng
b TRƢỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU THIẾT KẾ HỆ THỐNG GIÁM SÁT ĐÈN CHIẾU SÁNG KHU VỰC SÂN CHƠI CÔNG CỘNG Giảng viên hƣớng dẫn : TS LÊ ANH NGỌC Sinh viên thực : Chuyên ngành : ĐIỆN TỬ VIỄN THƠNG Lớp : Khố : 2013-2018 Hà Nội, Tháng 12 năm 2017 TRƢỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU THIẾT KẾ HỆ THỐNG GIÁM SÁT ĐÈN CHIẾU SÁNG KHU VỰC SÂN CHƠI CÔNG CỘNG Giảng viên hƣớng dẫn : TS LÊ ANH NGỌC Sinh viên thực : Chuyên ngành : ĐIỆN TỬ VIỄN THÔNG Lớp : Khoá : 2013-2018 Hà Nội, tháng 12 năm 2017 LỜI CẢM ƠN Sau trình tìm hiểu làm việc nghiêm túc với đôn đốc hƣớng dẫn tận tình thầy giáo TS Lê Anh Ngọc, em hoàn thành đồ án tốt nghiệp Em xin chân thành cảm ơn thầy-ngƣời động viên giúp đỡ em mặt tinh thần kiến thức để em vƣợt qua ngày tháng khó khăn thời sinh viên Thầy trực tiếp hỗ trợ, bảo bổ sung kiến thức mà thân em thiếu, giúp đỡ em suốt thời gian qua để em hoàn thiện đƣợc đề tài Qua đây, em xin cảm ơn tồn thể thầy giáo khoa Điện tử Viễn Thông trƣờng Đại học Điện Lực trang bị cho chúng em kiến thức chuyên ngành quý báu để chúng em có tảng hồn thành đƣợc đồ án ngày hôm Sau xin gửi lời cảm ơn chân thành tới gia đình, bạn bè động viên, giúp đỡ em trình học tâp, nghiên cứu hoàn thành đồ án Một lần em xin chân thành cảm ơn thầy cô bạn ! NHẬN XÉT (Của giảng viên hướng dẫn) ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Giảng viên hướng dẫn (Ký, ghi rõ họ tên) TS Lêa Anh Ngọc i MỞ ĐẦU Hiện Việt Nam nhu cầu giám sát từ xa hệ thống chiếu sáng công cộng cấp thiết nhằm giúp cho việc sử dụng ngƣời đƣợc thuận tiện, dễ dàng mà lại đảm bảo quản lý đƣợc hệ thống cách tối ƣu Việc giám sát đèn ảnh hƣởng trực tiếp đến chức điều khiển dựa quan sát ta tùy chỉnh bật/tắt cho phù hợp giảm thất thoát điện, tiết kiệm điện tối đa Hơn để quản lý hoạt động đèn ngƣời vận hành hệ thống phải ln có mặt trƣờng để theo dõi kiểm tra Việc gây phiền phức tốn thời gian dẫn đến hiệu cơng việc khơng cao Hiểu đƣợc vấn đề đó, em lựa chọn đề tài “NGHIÊN CỨU THIẾT KẾ HỆ THỐNG GIÁM SÁT ĐÈN CHIẾU SÁNG KHU VỰC SÂN CHƠI CÔNG CỘNG” để đƣa giải pháp giải vấn đề Hệ thống có khả giám sát trạng thái đèn điện thoại di động thơng qua kết nối sóng wifi Chúng ta ngồi đâu với smartphone có internet theo dõi cụ thể, xác hoạt động tồn hệ thống chiếu sáng mà không cần lại nhiều Cùng phối hợp bạn xxx thiết kế chức điều khiển đèn không dây sử dụng lƣợng mặt trời, chúng em hồn thiện hệ thống chiếu sáng thơng minh giúp tiết kiệm chi phí dây nhƣ tiết kiệm điện cho đất nƣớc, đảm bảo an toàn cho ngƣời dùng mà lại vô tiện lợi dễ sử dụng, phù hợp cho việc điều khiển, giám sát từ xa Bên cạnh có chế độ tự động điều chỉnh ánh sáng bóng đèn cho phù hợp với mục đích sử dụng giúp tiết kiệm lƣợng cách tối đa Sau trình tìm hiểu em hoàn thành đồ án tốt nghiệp Nội dung đồ án gồm chƣơng: Chƣơng 1: Tổng quan đề tài Chƣơng 2: Cơ sở lý thuyết lien quan đến đề tài Chƣơng 3: Thiết kế, triển khai thử nghiệm hệ thống ii MỤC LỤC MỞ ĐẦU i MỤC LỤC ii DANH MỤC HÌNH ẢNH iv DANH MỤC CÁC TỪ VIẾT TẮT vi CHƢƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1 Giới thiệu chung đề tài 1.1 Đặt vấn đề 1.2 Mục tiêu đề tài Tổng quan hệ thống Lựa chọn phƣơng án thiết kế 4 Lựa chọn linh kiện cho hệ thống 4.1 Vi điều khiển ATmega328P 4.2 IC ổn áp AMS1117 4.3 Module ESP8266 4.4 Module NRF24L01 4.5 Biến trở điều chỉnh ánh sáng 4.6 Nút bấm đèn led 4.7 Quang trở 10 4.8 Opto quang 10 4.9 Đèn lƣợng mặt trời 11 4.10 Acquy 12 4.11 Tấm pin lƣợng mặt trời 13 4.12 Bộ điều khiển sạc 14 4.13 Mạch hạ áp 15 CHƢƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN ĐẾN ĐỀ TÀI 16 ii i Truyền liệu sóng vơ tuyến RF 16 Công nghệ truyền thông WiFi 17 Giao thức MQTT 18 Giao thức TCP/IP 21 Chuẩn giao tiếp UART 22 Chuẩn giao tiếp SPI 23 Chứng số SSL 24 Websocket 25 CHƢƠNG 3: THIẾT KẾ, TRIỂN KHAI VÀ THỬ NGHIỆM HỆ THỐNG 27 Thiết kế hệ thống 27 1.1 Sơ đồ khối nguyên lý hoạt động hệ thống 27 1.2 Thiết kế phần cứng 30 1.3 Thiết kế phần mềm 35 Triển khai mô hình hệ thống 38 2.1 Lắp đặt mơ hình hệ thống 38 2.2 Cài đặt chƣơng trình 38 Thử nghiệm mơ hình hệ thống phân tích kết 47 3.1 Thử nghiệm mơ hình hệ thống 47 3.2 Phân tích kết 48 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 49 PHỤ LỤC 50 TÀI LIỆU THAM KHẢO 70 iv DANH MỤC HÌNH ẢNH Hình 1.1: Mơ hình hệ thống Hình 1.2: ATmega328P Hình 1.3: IC AMS1117 Hình 1.4: Module ESP8266 Hình 1.5: Module NRF24L01 Hình 1.6: Nút bấm Hình 1.7: Đèn led Hình 1.8: Quang trở 10 Hình 1.9: Opto quang 11 Hình 1.10: Đèn lƣợng mặt trời 12 Hình 1.11: Acquy 13 Hình 1.12: Pin lƣợng mặt trời 14 Hình 1.13: Bộ điều khiển sạc 14 Hình 1.14: Mạch hạ áp 15 Hình 2.1: Cơ chế hoạt động Mqtt 19 Hình 2.2: Mức đảm bảo chất lƣợng QoS 20 Hình 2.3: Mơ hình TCP/IP 21 Hình 2.4: Cơ chế hoạt động SSL 25 Hình 3.1: Sơ đồ khối hệ thống 27 Hình 3.2: Sơ đồ nguyên lý mạch trung tâm 30 Hình 3.3: Sơ đồ mạch in mạch trung tâm 31 Hình 3.4: Sơ đồ nguyên lý mạch điều khiển đèn 32 Hình 3.5: Sơ đồ mạch in mạch điều khiển đèn 33 Hình 3.6: Vỏ mạch trung tâm 34 Hình 3.7: Vỏ mạch điều khiển đèn 34 Hình 3.8: Thuật tốn điều khiển mạch trung tâm 36 Hình 3.9: Thuật toán điều khiển mạch đèn 37 v Hình 3.10: Mơ hình sản phẩm 38 Hình 3.11: Cài thƣ viện cho ESP8266 39 Hình 3.12: Download cài đặt thƣ viện 39 Hình 3.13: Kết thúc trình cài thƣ viện 40 Hình 3.14: tạo tài khoản cloudmqtt 40 Hình 3.15: Các thơng số tạo xong tài khoản 41 Hình 3.16: Đăng kí tài khoản giám sát hệ thống 42 Hình 3.17: Tạo topic hoat_dong 42 Hình 3.18: Kết tạo xong topic 43 Hình 3.19: Kết giám sát Web server 43 Hình 3.20: Giao diện ứng dụng Mqtt Buddy 44 Hình 3.21: Tạo kết nối tài khoản đăng kí 44 Hình 3.22: Tạo nút hiển thị trạng thái ON/OFF đèn 45 Hình 3.23: Tại nút hiển thị chế độ điều khiển 46 Hình 3.24: Kết sau trình tạo nút 46 Hình 3.25: Kết thử nghiệm tự động 47 Hình 3.26: Kết thử nghiệm tay 48 vi DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Arduino IDE Tiếng Anh Tiếng Việt Arduino Integrated Development Environment Môi trƣờng phát triển tích hợp Arduino Electrically Erasable Programmable Read-Only Memory Bộ nhớ truy xuất ngẫu nhiên FTP File Transport Protocol Giao thức truyền tệp GND Ground Chân nối đất EEPROM HTML HyperText Markup Language HTTP HyperText Transfer Protocol ICMP Internet Control Message Protocol IGMP Internet Group Message Protocol Ngôn ngữ đánh dấu siêu văn Giao thức truyền tải siêu văn Giao thức thơng báo kiểm sốt internet Giao thức thơng điệp nhóm internet IoT Internet of Things Vạn vật kết nối Internet IP Internet Protocol Giao thức liên mạng MQTT Message Queuing Telemetry Transport Giao thức truyền thông điệp PWM Pulse Width Modulation Phƣơng pháp điều xung PWM QoS Quality of Service Chất lƣợng dịch vụ RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên RF Radio Frequency Tần số vô tuyến SSL Secure Sockets Layer Chứng số SSL SPI Serial Peripheral Bus TCP Transmission Control Protocol Truyền thông nối tiếp đồng Giao thức điều khiển giao vận WiFiClient espClient; //khởi tạo clident PubSubClient client(espClient); //khởi tạo cho mqtt hoạt động long lastMsg = 0; char msg[50]; //gửi liệu lên mạng char pubMsgTR[50]; //từ mạng gửi int value = 0; int indexmang; //cộng dồn chuỗi boolean checkServer = false; boolean checknhan = false; void setup() { Serial.begin(9600); //truyền giao thức UART cho VĐK pinMode(LED, OUTPUT); setup_wifi(); //kết nối tới user pass client.setServer(mqtt_server, mqtt_port); //kết nối tới địa server client.setCallback(callback); sw_secs.start(); //setup cho mqtt //bắt đầu đếm timer } void setup_wifi() { delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void callback(char* topic, byte* payload, unsigned int length) { char pubMsg[50]; checknhan = true; for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } if(payload[0] == 'h') { client.publish(mqtt_topic_pub_hoat_dong, "BANG TAY"); } if(payload[0] == 'a') { client.publish(mqtt_topic_pub_hoat_dong, "TU DONG"); } Serial.println(); checknhan = false; } void reconnect() { // Loop until we're reconnected while (!client.connected()) { //chƣa kết nối đƣợc hiển thị kết nối Serial.print("Attempting MQTT connection "); // Attempt to connect if (client.connect("ESP8266",mqtt_user,mqtt_pwd)) { //kết nối tới user pass Serial.println("connected"); checkServer = true; client.subscribe(mqtt_topic_sub); //đăng ký topic } else { Serial.print("failed, rc="); Serial.print(client.state()); //hiển thị lỗi Serial.println(" try again in seconds"); // Wait seconds before retrying delay(5000); } } } void loop() { if (!client.connected()) { checkServer = false; reconnect(); } if(checknhan == false) { serialEvent(); } client.loop(); //thực liên tục if(sw_secs.elapsed() >= 1) { if(checkServer == true) { digitalWrite(LED,!digitalRead(LED)); } sw_secs.reset(); sw_secs.start(); } } void serialEvent() { //đọc data VDK while (Serial.available()) { // get the new byte: char inChar = (char)Serial.read(); // add it to the inputString: msg[indexmang] = inChar; //trả chuỗi mạng indexmang++; // if the incoming character is a newline, set a flag // so the main loop can something about it: if (inChar == '\n') { //kết thúc Process_Data(msg); //xử lý indexmang = 0; //xóa memset(msg,0,50); //xóa } } } void Process_Data(String chuoi) //hàm xử lý tín hiệu { if(chuoi[0] == 'S') { // trạng thái đèn if(chuoi[1] == '1') { client.publish(mqtt_topic_pub_status, "ON"); } else if(chuoi[1] == '0') { client.publish(mqtt_topic_pub_status, "OFF"); } // trạng thái đèn if(chuoi[1] == '2') { client.publish(mqtt_topic_pub_status2, "ON"); } else if(chuoi[1] == '3') { client.publish(mqtt_topic_pub_status2, "OFF"); } } } - Code mạch điều khiển đèn 1: #include #include #define pin_AS A0 #define pin_den //chân điều khiển đèn #define pin_chuyendong //cảm biến chuyển động uint8_t mode; uint8_t value_vr = 10, value_vr2 = 200; //khởi tạo giá trị ban đầu cho biến trở String message; //đọc chuỗi tín hiệu nhận bóng đèn uint8_t status_den; nRF24L01p receiver(10, 9); //CSN,CE -khai báo để khối NRF hoạt động void setup() { Serial.begin(9600); chọn 9600 để ổn định //để truyền liệu lên máy tính tốc độ baud pinMode(pin_AS, INPUT_PULLUP); pinMode(pin_den, OUTPUT); //khởi tạo chân đèn output analogWrite(pin_den, 0); pinMode(pin_chuyendong, INPUT_PULLUP); //khởi tạo chân cảm biến chuyển động SPI.begin(); SPI.setBitOrder(MSBFIRST); //khởi tạo NRF 24L01, truyền theo kiểu MSB receiver.channel(90); //thiết lập kênh truyền 90(có thể cọn từ 0- 125) receiver.RXaddress("Artur"); //địa nhận receiver.TXaddress("Brtur"); // mở kênh phát receiver.init(); //khởi tạo NRF } void loop() { rfEvent(); if ( mode == 0) // che tu dong { tudong(); } } void rfEvent() { if (receiver.available()) //đọc giá trị NRF { receiver.read(); //hàm đọc liệu có liệu trả receiver.rxPL(message); //truyền vào biến message Serial.println(message); //hiển thị lên hình xem có chuỗi không Process_Relay(message); //hàm xử lý chuỗi nhận message = ""; //xóa } } void Process_Relay(String chuoi) { if (chuoi[0] == 'v') { mode = 0; } if (chuoi[0] == '~' && chuoi[1] == '1') { if(status_den == 1) // bật đèn { Serial.println("S1"); receiver.txPL("S1"); receiver.send(SLOW); } if(status_den == 0) // tắt đèn { Serial.println("S0"); receiver.txPL("S0"); receiver.send(SLOW); } } if (chuoi[0] == '$' && chuoi[1] == '1' && chuoi[2] == ',') { mode = 2; value_vr = (chuoi[3] - 48) * 100 + (chuoi[4] - 48 ) * 10 + (chuoi[5] 48); // Serial.println("chuoi nhan duoc: " + String(value_vr)); analogWrite(pin_den, value_vr); } if (chuoi[0] == '$' && chuoi[1] == '2' && chuoi[2] == ',') { mode = 2; value_vr2 = (chuoi[3] - 48) * 100 + (chuoi[4] - 48 ) * 10 + (chuoi[5] 48); // Serial.println("chuoi nhan duoc: " + String(value_vr2)); analogWrite(pin_den, value_vr2); } if (chuoi[0] == 'h') { mode = 1; } if (chuoi[0] == 'a') { mode =0; } if ( mode == && chuoi[0] == '1' && chuoi[1] == '1') { analogWrite(pin_den, 200); status_den = 1; // che bang tay } if ( mode == && chuoi[0] == '1' && chuoi[1] == '0') { analogWrite(pin_den, 0); status_den = 0; } } Chế độ tự động: void tudong(){ // Serial.println(analogRead(pin_AS)); if(analogRead(pin_AS) 700) // trời tối { // khơng có ngƣời qua if(digitalRead(pin_chuyendong) == 0) { // Serial.println("khong nguoi"); co analogWrite(pin_den, value_vr); status_den = 0; } // có ngƣời qua if(digitalRead(pin_chuyendong) == 1) { // Serial.println("co nguoi"); analogWrite(pin_den, value_vr2); status_den = 1; } } } - Code mạch điều khiển đèn 2: #include #include #define pin_AS A0 #define pin_den //chân điều khiển đèn #define pin_chuyendong //cảm biến chuyển động uint8_t mode; uint8_t value_vr = 10, value_vr2 = 200; String message; //đọc chuỗi tín hiệu nhận bóng đèn uint8_t status_den; nRF24L01p receiver(10, 9); //CSN,CE -khai báo để khối NRF hoạt động void setup() { Serial.begin(9600); //để truyền liệu lên máy tính tốc độ baud chọn 9600 để ổn định pinMode(pin_AS, INPUT_PULLUP); pinMode(pin_den, OUTPUT); //khởi tạo chân đèn output pinMode(pin_chuyendong, INPUT_PULLUP); //khởi tạo chân cảm biến chuyển động SPI.begin(); SPI.setBitOrder(MSBFIRST); //khởi tạo NRF 24L01, truyền theo kiểu MSB receiver.channel(90); //thiết lập kênh truyền 90(có thể cọn từ 0- 125) receiver.RXaddress("Artur"); //địa nhận receiver.TXaddress("Brtur"); // mở kênh phát receiver.init(); } //khởi tạo NRF void loop() { rfEvent(); if ( mode == 0) // che tu dong { // Serial.println("che tu dong"); tudong(); } } void rfEvent() { if (receiver.available()) //đọc giá trị NRF { receiver.read(); //hàm đọc liệu có liệu trả receiver.rxPL(message); //truyền vào biến message Serial.println(message); //hiển thị lên hình xem có chuỗi khơng Process_Relay(message); //hàm xử lý chuỗi nhận message = ""; //xóa } } void Process_Relay(String chuoi) { if (chuoi[0] == 'v') //báo cài đặt xong chế độ { mode = 0; //chế độ tự động } if (chuoi[0] == '~' && chuoi[1] == '2') { if(status_den == 1) // bật đèn { Serial.println("S2"); //truyền trạng thái bật receiver.txPL("S2"); receiver.send(SLOW); } if(status_den == 0) // tắt đèn { Serial.println("S3"); receiver.txPL("S3"); receiver.send(SLOW); } } if (chuoi[0] == '$' && chuoi[1] == '1' && chuoi[2] == ',') { mode = 2; //đang chế độ cài đặt value_vr = (chuoi[3] - 48) * 100 + (chuoi[4] - 48 ) * 10 + (chuoi[5] 48); Serial.println("chuoi nhan duoc: " + String(value_vr)); analogWrite(pin_den, value_vr); //điều khiển sáng theo mức } if (chuoi[0] == '$' && chuoi[1] == '2' && chuoi[2] == ',') { mode = 2; value_vr2 = (chuoi[3] - 48) * 100 + (chuoi[4] - 48 ) * 10 + (chuoi[5] 48); Serial.println("chuoi nhan duoc: " + String(value_vr2)); analogWrite(pin_den, value_vr2); } if (chuoi[0] == 'h') { mode = 1; } if (chuoi[0] == 'a') { mode =0; } if (mode == && chuoi[0] == '2' && chuoi[1] == '1') { analogWrite(pin_den, 200); status_den = 1; // che bang tay } if (mode == && chuoi[0] == '2' && chuoi[1] == '0') { analogWrite(pin_den, 0); status_den = 0; } } Chế độ tự động: void tudong(){ //Serial.println(analogRead(pin_AS)); if(analogRead(pin_AS) 500) // trời tối { // khơng có ngƣời qua if(digitalRead(pin_chuyendong) == 0) { //Serial.println("khong nguoi"); co analogWrite(pin_den, value_vr); status_den = 0; } // có ngƣời qua if(digitalRead(pin_chuyendong) == 1) { //Serial.println("co nguoi"); analogWrite(pin_den, value_vr2); status_den = 1; } } } TÀI LIỆU THAM KHẢO [1] Lê Xuân Tâm, Đồ án điều khiển từ xa sóng RF, Đại học Trà Vinh, 2012 [2] Liu Chee Wei, smart lighting systems: modular intelligent control system, Universiti Tunku Abdul Rahman, 2011 [3] Mallikarjun M Kodabagi, Reshmabanu M Nadaf, Smart Lighting System To Reduce Energy Consumption, Asian Journal of Engineering and Technology Innovation,Volume 4, Issue 7, Published on: 7/05/2016 [4] Prof K.Y.Rajput, Gargeyee Khatav, Monica Pujari, Priyanka Yadav, Intelligent Street Lighting System Using Gsm, International Journal of Engineering Science Invention,Volume Issue 3, March 2013 [5] Đỗ Hữu Tồn, “Tìm hiểu giao thức MQTT” cộng đồng arduino Việt Nam, 2016 ... hiệu công việc không cao Hiểu đƣợc vấn đề đó, em lựa chọn đề tài “NGHIÊN CỨU THIẾT KẾ HỆ THỐNG GIÁM SÁT ĐÈN CHIẾU SÁNG KHU VỰC SÂN CHƠI CÔNG CỘNG” để đƣa giải pháp giải vấn đề Hệ thống có khả giám. .. thành hệ thống chiếu sáng hoàn chỉnh khắc phục đƣợc nhƣợc điểm mơ hình truyền thống 1.2 Mục tiêu đề tài Thiết kế đƣợc hệ thống điều khiển giám sát đèn chiếu sáng không dây phục vụ sân chơi công cộng. .. ĐIỆN LỰC KHOA ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU THIẾT KẾ HỆ THỐNG GIÁM SÁT ĐÈN CHIẾU SÁNG KHU VỰC SÂN CHƠI CÔNG CỘNG Giảng viên hƣớng dẫn : TS LÊ ANH NGỌC Sinh viên thực