Điều khiển và giám sát thiết bị điện trong gia đình sử dụng wifi thông qua điện thoại thông minh

79 36 0
Điều khiển và giám sát thiết bị điện trong gia đình sử dụng wifi thông qua điện thoại thông minh

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LÝ THÀNH ĐẠT Điều khiển giám sát thiết bị điện gia đình sử dụng Wifi thơng qua điện thoại thơng minh (Control and monitoring of electrical devices in the home using WiFi via smartphone) Chuyên ngành: :Kĩ thuật viễn thông Mã nghành : CA150134 LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN VĂN KHANG Hà Nội – 2017 i LỜI CẢM ƠN Để hồn thành luận văn này, tơi xin tỏ lịng biết ơn sâu sắc tới thầy GS.TS.Nguyễn Văn Khang - người trực tiếp hướng dẫn tơi q trình nghiên cứu, thầy có định hướng đưa ý tưởng dẫn q giá để tơi hồn thành luận văn Đồng thời, tơi xin gửi lời cảm ơn chân thành đến tất thầy, cô giáo trường Đại học Bách Khoa Hà Nội đặc biệt tới thầy, cô giáo tham gia giảng dạy lớp 15AKTVTND, người tận tình hướng dẫn, truyền đạt kiến thức tạo tiền đề cho tơi hồn thành luận văn Trong q trình nghiên cứu, cố gắng để thực luận văn cách tốt nhất, song số mặt hạn chế khó tránh khỏi sai sót Kính mong nhận giúp đỡ quý báu thầy, để luận văn hồn chỉnh Tác giả luận văn Lý Thành Đạt ii LỜI CAM ĐOAN Tên là: Lý Thành Đạt Học viên lớp: 15AKTVTND – Kỹ thuật viễn thông Hiện làm viê ̣c ta ̣i: Đài PT-TH tỉnh Nam Định Điạ chỉ: Số Nguyễn Viết Xuân, P.Lộc Hạ, TP NĐ Tôi xin cam đoan: Đề tài “ Điều khiển giám sát thiết bị điện gia đình sử dụng Wifi thơng qua điện thoại thông minh ” thầy giáo PGS.TS Nguyễn Văn Khang hướng dẫn cơng trình nghiên cứu riêng tơi Tất tài liệu tham khảo có nguồn gốc, xuất xứ rõ ràng Tác giả xin cam đoan tất nội dung luận văn nội dung đề cương yêu cầu thầy giáo hướng dẫn Nếu sai tơi hồn tồn chịu trách nhiệm trước hội đồng khoa học trước pháp luật Tác giả luận văn Lý Thành Đạt iii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT vi DANH MỤC CÁC BẢNG viii DANH MỤC CÁC HÌNH ix MỞ ĐẦU CHƯƠNG - TỔNG QUAN ĐIỀU KHIỂN THIẾT BỊ ĐIỆN GIA ĐÌNH VÀ IOT(INTERNET OF THING) 1.1 Giới thiệu IOT 1.2 Mơ hình tổng quan điều khiển thiết bị điện gia đình 1.3 Khảo sát mộ số điều khiển thiết bị điện gia đình 1.4 Các giải pháp điều khiển không dây hiệu 1.4.1 Các giải pháp 1.4.2 Đánh giá giải pháp 10 1.5 Giới thiệu giao tiếp Wifi 11 1.5.1 Khái niệm 11 1.5.2 Phân loại 11 1.5.3 Giao thức sử dụng 13 1.5.4 Bảo mât mạng không dây 14 1.6 Vi Xử Lý trung tâm Esp8266 14 iv 1.6.1.Thông số kỹ thuật Vi Xử lý Esp8266 15 1.6.2 Đặc điểm VXL ESP8266 15 1.6.3 CPU, nhớ giao tiếp 17 1.6.4 Tập lệnh ESP8266[10] 18 1.7 Phát biểu toán cần nghiên cứu 21 1.8 Kết luận chương 21 CHƯƠNG - THIẾT KẾ PHẦN CỨNG VÀ PHẦN MỀM CỦA BỘ ĐIỀU KHIỂN 22 2.1 Giới thiệu chương 22 2.2 Sơ đồ khối điều khiển 22 2.3 Thiết kế khối nguồn 23 2.4 Thiết kế khối cảm biến nhiệt độ độ ẩm 24 2.5 Thiết kế Module cảm biến đo cường độ ánh sáng BH1750 28 2.5.1 Chức 28 2.5.2 Thông số kỹ thuật 28 2.5.3 Hoạt động 28 2.6 Thiết kế module cảm biến chuyển động (PIR motion) 30 2.6.1 Chức 30 2.6.2 Thông số kỹ thuật 30 2.7 Cảm biến khí Gas MQ2 30 2.7.1.Chức 30 2.7.2.Thông số kỹ thuật 31 v 2.7.3 Hoạt động 31 2.8 Thiết kế vi xử lý trung tâm 32 2.9 Bộ nhớ cho CPU 33 2.10 Khối giao tiếp USB 33 2.11 Khối giao tiếp trung gian 34 2.12 Sơ đồ nguyên lý tổng hợp hệ thống 35 2.13 Ứng Dụng Smartphone 35 2.16 Chương trình cho Vi xử lý Esp8266 40 2.17 Kết luận chương 46 CHƯƠNG - KẾT QUẢ THỰC NGHIỆM HỆ THỐNG 47 3.1 Giới thiệu chương 47 3.2 Bảng mạch hoàn thiện 47 3.3 Phần mềm điều khiển giám sát 47 3.3.1 Nguyên lí hoạt động 48 3.3.2 Thử nghiệm đo giá trị nhiệt độ độ ẩm 48 3.3.3 Thử nghiệm đo giá trị cảm biến ánh sáng 49 3.4 Kết luận chương 51 KẾT LUẬN 52 TÀI LIỆU THAM KHẢO 53 vi DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Viết tắt CCK Tiếng Anh Tiếng Việt Complimentary code keying Khóa mã bù Global System for Mobile Hệ thống thơng tin di động tồn Communication cầu hệ LAN Local Area Network Mạng cục LLC Logical Link Control Điều khiển liên kết logic MAC Medium Access Control Điều khiển truy nhập môi trường GSM NDIS Network Driver Interface Specification Bộ điều khiển mạng Near Field Communications Công nghệ giao tiếp tầm ngắn Orthogonal frequency-division Ghép kênh phân chia theo tần số multiplexing trực giao OSI Open Systems Interconnection Kết nối hệ thống mở PC Personal Computer Máy tính cá nhân PCB PRINTED CIRCUIT BOARD Bảng mạch in RF Radio Frequency Tần số vô tuyến SPI Serial Peripheral Interface Giao diện ngoại vi nối tiếp WEP Wired Equivalent Privacy Wifi Wireless Fidelity NFC OFDM WiMAX WLAN WMAN WPA Bảo mật tương đương với mạng có dây Mạng khơng dây sử dụng sóng vơ tuyến Wordwide Interopeabillity for Tương tác tồn cầu với truy cập MicroWave Access viba Wireless Local Area NetWork Mạng vô tuyến cục Wireless Metropolitan Area NetWork Wireless Protected Area Mạng vô tuyến đô thị Vùng bảo vệ không dây vii WPAN Wireless Personal NetWork Mạng vô tuyến cá nhân WWAN Wireless Wide Area NetWork Mạng vô tuyến diện rộng viii DANH MỤC CÁC BẢNG Bảng 1.1 Đánh giá giải pháp điều khiển 10 Bảng 1.2 Một số lệnh AT comand 18 Bảng 1.3 Các lệnh AT cấu hình 18 Bảng 1.4 Các lệnh AT module wifi cấu hình Station/Client 19 Bảng 1.5 Các lệnh AT với module wifi cấu hình Access Point 19 Bảng 1.6 Tập lệnh AT khác 20 Bảng 3.1 Kết thử nghiệm cảm biến nhiệt độ độ ẩm 49 Bảng 3.2 Giá trị trả cảm biến chuyển động 51 ix DANH MỤC CÁC HÌNH Hình 1.1 Mơ hình tổng quan thiết bị điện nhà Hình 1.2 Hình ảnh điều khiển thiết bị từ xa Camsco C601 Hình 1.3 Bộ điều khiển thiết bị từ xa sử dụng công nghệ GSM Hình 1.4 Sơ đồ chân ESP8266 16 Hình 1.5 Sơ đồ khối ESP8266 17 Hình 2.1 Sơ đồ khối hệ thống 22 Hình 2.2 Sơ đồ khối nguồn cấp 23 Hình 2.3 Sơ đồ chân cảm biến nhiệt độ độ ẩm DHT11 24 Hình 2.4 Sơ đồ kết nối với Vi xử lý 25 Hình 2.5 Cảm biến nhiệt độ độ ẩm (DHT11) 25 Hình 2.6 Giao tiếp DHT11 với Vi xử lý 26 Hình 2.7 Giao tiếp DHT11 với Vi xử lý 27 Hình 2.8 Module cảm biến ánh sáng BH1750 29 Hình 2.9 Sơ đồ mạch cảm biến ánh sáng BH1750 29 Hình 2.10 Module cảm biến phát chuyển động 30 Hình 2.11 Module cảm biến khí Gas Sơ đồ chân 31 Hình 2.12 Cảm biến khí Gas MQ2 31 Hình 2.13 Module RC522 Error! Bookmark not defined Hinh 2.14 Sơ đồ chân Atmega328 Error! Bookmark not defined Hình 2.15 Hình ảnh động Servo Error! Bookmark not defined Hình 2.16 Sơ đồ chân vi xử lý ESP8266 32 PHỤ LỤC * Sơ đồ nguyên lí tổng hợp toàn hệ thống: * Code điều khiển cho ESP8266: #define BLYNK_PRINT Serial // Comment this out to disable prints and save space #include #include #include #include "States.h" #include #include #include BH1750 lightMeter; #define DHT1PIN D6 //pin gpio 12 in sensor #define DHT2PIN D3 // //#define DHTTYPE DHT11 #define DHT1TYPE DHT21 // DHT 22 Change this if you have a DHT11 #define DHT2TYPE DHT11 // DHT 22 Change this if you have a DHT11 DHT dht1(DHT1PIN, DHT1TYPE); DHT dht2(DHT2PIN, DHT2TYPE); const int PIRPin = BUILTIN_LED; const int btn1Pin = D7; const int btn2Pin = D0; const int btn3Pin = D5; WidgetLED led1(V1); WidgetLED led2(V2); WidgetLED led3(V3); WidgetLED led13(V13); WidgetLED ledgas(V14); // You should get Auth Token in the Blynk App // Go to the Project Settings (nut icon) char auth[] = "c06d1b956e5a442bb268607fd0d0af2f"; // Put your Auth Token here (see Step above) SimpleTimer timer; // Pin definitions #define RGB_BTN_PIN V10 #define RGB_LED_PIN V9 #define ZERGBA_PIN V8 //////////////////////////// // Other constants const byte SERIAL_SOF = 0xA5; const byte SERIAL_EOF = 0x5A; const int OUT_BUF_MAX = 7; // bytes const byte COMM_RGB = 1; const byte COMM_DISCO = 2; const byte COMM_BLUE_SKY = 3; const byte COMM_NIGHT = 4; const byte COMM_OVERCAST = 5; const byte COMM_GOLDEN = 6; const byte COMM_SNOW = 7; const byte COMM_LIGHTNING = 8; // Other constants const int TIMEOUT = 300; // ms const int BUFFER_SIZE = 22; // bytes const int ICON_SIZE = 4; // bytes const int DT_SIZE = 12; // bytes // Global variables WidgetLED rgb_led(RGB_LED_PIN); CloudState cloud_state; WiFiClient client; WeatherType current_weather; bool force_update; uint8_t color_r; uint8_t color_g; uint8_t color_b; byte out_msg[OUT_BUF_MAX]; void setup() { uint8_t led = 0; Serial.begin(9600); // See the connection status in Serial Monitor lightMeter.begin(); dht1.begin(); dht2.begin(); pinMode(PIRPin, INPUT_PULLUP); pinMode(btn1Pin, INPUT_PULLUP); pinMode(btn2Pin, INPUT_PULLUP); pinMode(btn3Pin, INPUT_PULLUP); CLOUD_RGB; unsigned long time; time = millis(); force_update == false; color_r = 0; color_g = 0; color_b = 0; rgb_led.off(); timer.setInterval(1000L, buttonLed1Widget); timer.setInterval(1000L, buttonLed2Widget); timer.setInterval(1000L, buttonLed3Widget); timer.setInterval(1000L, buttonLed13Widget); // Setup a function to be called every second timer.setInterval(10000L, senddht11); timer.setInterval(10000L, senddht21); timer.setInterval(10000L, sendlux); timer.setInterval(10000L, sendadc); Blynk.begin(auth, "MaiLoan", "hoilamgi"); //insert here your SSID and password while (Blynk.connect() == false) { // Wait until connected } } // V1 LED Widget represents the physical button state boolean btnState1 = false; void buttonLed1Widget() { // Read button boolean isPressed = (digitalRead(btn1Pin) == LOW); // If state has changed if (isPressed != btnState1) { if (isPressed) { led1.off(); } else { led1.on(); } btnState1 = isPressed; } } // V2 LED Widget represents the physical button state boolean btnState2 = false; void buttonLed2Widget() { // Read button boolean isPressed = (digitalRead(btn2Pin) == LOW); // If state has changed if (isPressed != btnState2) { if (isPressed) { led2.on(); } else { led2.off(); } btnState2 = isPressed; } } // V3 LED Widget represents the physical button state boolean btnState3 = false; void buttonLed3Widget() { // Read button boolean isPressed = (digitalRead(btn3Pin) == LOW); // If state has changed if (isPressed != btnState3) { if (isPressed) { led3.on(); } else { led3.off(); } btnState3 = isPressed; } } // V13 LED Widget represents the physical button state boolean btnState13 = false; void buttonLed13Widget() { // Read button boolean isPressed = (digitalRead(PIRPin) == LOW); // If state has changed if (isPressed != btnState13) { if (isPressed) { led13.on(); } else { led13.off(); } btnState13 = isPressed; } } void senddht11() { // You can send any value at any time // Please don't send more that 10 values per second //Read the Temp and Humidity from DHT float h1 = dht1.readHumidity(); float t1 = dht1.readTemperature(); Blynk.virtualWrite(V6, t1); // virtual pin Blynk.virtualWrite(V5, h1); // virtual pin } void senddht21() { float h2 = dht2.readHumidity(); float t2 = dht2.readTemperature(); Blynk.virtualWrite(V11, t2); // virtual pin Blynk.virtualWrite(V12, h2); // virtual pin } void sendlux() { uint16_t lux = lightMeter.readLightLevel(); Blynk.virtualWrite(V4, lux); } void sendadc() { int sensorValue = analogRead(A0); // Convert the analog reading (which goes from - 1023) to a voltage (0 - 3.2V): float voltage = sensorValue * (3.2 / 1023.0); voltage=voltage *100; if (voltage>20) { ledgas.on();} else { ledgas.off(); } Blynk.virtualWrite(V7, voltage); // virtual pin } // Callback when RGB button is pushed BLYNK_WRITE(RGB_BTN_PIN) { if ( (param.asInt() == 1) && (cloud_state != CLOUD_RGB) ) { cloud_state = CLOUD_RGB; rgb_led.on(); sendRGB(); } } // Callback when the ZeRGBa changes BLYNK_WRITE(ZERGBA_PIN) { color_r = param[0].asInt(); color_g = param[1].asInt(); color_b = param[2].asInt(); sendRGB(); } // Send RGB code with red, green, blue values void sendRGB() { out_msg[0] = COMM_RGB; out_msg[1] = color_r; out_msg[2] = color_g; out_msg[3] = color_b; transmitMessage(out_msg, 4); } void loop() { Blynk.run(); timer.run(); //CLOUD_RGB; } BLYNK_CONNECTED() //synch button states when connected { Blynk.syncAll(); //this crashes the connection } /******************************************************* ********* * Transmitter ******************************************************* ********/ void transmitMessage(byte msg[], uint8_t len) { int i; byte cs; byte *out_buf; uint8_t buf_size; // If message is greater than max size, only xmit max bytes if ( len > OUT_BUF_MAX ) { len = OUT_BUF_MAX; } // Full buffer is message + SOF, EOF bytes buf_size = len + 2; // Create the output buffer with BEGIN, SOF, CS, and EOF out_buf = (byte*)malloc(buf_size * sizeof(byte)); out_buf[0] = SERIAL_SOF; memcpy(out_buf + 1, msg, len); out_buf[buf_size - 1] = SERIAL_EOF; // Transmit buffer for ( i = 0; i < buf_size; i++ ) { Serial.write(out_buf[i]); } // Free some memory free(out_buf); } ... phát RF Điều khiển giám sát qua Ethernet Điều khiển giám sát thiết bị Sử dụng dây dẫn để kết nối thiết bị Điều khiển giám sát thiết bị thông Điều khiển giám sát qua sóng Wifi qua mạng Wifi, mạng... - Mua sắm thông minh - Quản lý thiết bị cá nhân - Đồng hồ đo thông minh - Điều khiển giám sát nhà 1.2 Mơ hình tổng quan điều khiển thiết bị điện gia đình Mơ hình tổng quan thiết bị điện ngơi... đề tài ? ?Điều khiển giám sát thiết bị điện gia đình sử dụng Wifi thơng qua điện thoại thơng minh. ” Nội dung nghiên cứu ứng dụng phần mềm “Blynk” cài đặt điện thoại kết nối Wifi thông qua Vi xử

Ngày đăng: 28/02/2021, 07:39

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan