Trong thế giới hiện đại ngày nay, những thiết bị điện đã không còn quá xa lạ với con người. Chúng có mặt ở mọi nơi và giúp cho cuộc sống của con người tiện lợi hơn. Tuy nhiên ở những nước đang phát triển như Việt Nam, nơi mà GDP của người dân còn chưa cao thì hóa đơn tiền điện mỗi tháng vẫn là một vấn đề cần phải đắn đo suy nghĩ. Nhất là những gia đình có con nhỏ, khi ở nhà một mình chúng có thể sử dụng các thiết bị tiêu thụ điện lớn như tivi, máy tính,… làm cho các phụ huynh phải đau đầu về hóa đơn tiền điện mỗi tháng. Vì vậy, hệ thống giám sát tiêu thụ điện này được tạo ra để giúp phụ huynh kiểm soát việc sử dụng điện trong nhà của con cái. Cụ thể là giám sát mức tiêu thụ điện năng của máy tính và báo hiệu khi điện năng tiêu thụ vượt quá mức cho phép. Hệ thống giám sát tiêu thụ điện là hệ thống giám sát cường độ dòng điện của thiết bị và qua đó hiển thị các thông tin về công suất tiêu thụ, nguồn điện đầu vào và số điện đã tiêu thụ của thiết bị điện được giám sát cho chủ nhà. Hệ thống sẽ cảnh báo bằng đèn tín hiệu khi lượng điện năng tiêu thụ vượt qua một ngưỡng quy định trước.
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN -o0o BÀI TẬP LỚN/ BÀI TẬP DỰ ÁN HỌC PHẦN IOT VÀ ỨNG DỤNG TÊN ĐỀ TÀI: HỆ THỐNG GIÁM SÁT TIÊU THỤ ĐIỆN DÂN DỤNG NHÓM: 19 Hà Nội, tháng 12 năm 2022 Lời cam đoan Em xin cam đoan đề tài: hệ thống giám sát tiêu thụ điện dân dụng cá nhân nghiên cứu thực Em kiểm tra liệu theo quy định hành Kết làm đề tài trung thực khơng chép từ tập nhóm khác Các tài liệu sử dụng tiểu luận có nguồn gốc, xuất xứ rõ ràng (Ký ghi rõ họ tên) Lời cảm ơn Em xin chân thành cảm ơn Thầy … tận tình hướng dẫn em suốt thời gian học tập để giúp em hồn thành tập lớn mơn học MỤC LỤC PHẦN MỞ ĐẦU Hệ thống giám sát tiêu thụ điện 2.Mục đích dự án 3.Phạm vi nghiên cứu .6 4.Phương pháp nghiên cứu .6 PHẦN NỘI DUNG 1.LỰA CHỌN THIẾT BỊ PHẦN CỨNG 1.1 Arduino Uno R3 1.2 Module thu phát Wifi ESP8266 NodeMCU CP2102 1.3 Connecting Wires 10 1.4 Breadboard 10 2.PHẦN MỀM YÊU CẦU 12 2.1 ARDUINO IDE 12 2.2 ARDUINO LANGUAGE 13 3.THIẾT KẾ KỸ THUẬT 14 a) Xây dựng sơ đồ khối hệ thống .12 b) Biểu đồ 12 c) Cơ sở toán học 12 d) Sơ đồ tổng quát mạch ( mô Tinkercad) .12 e) Coding 12 f ) Chạy mô phân tích 22 PHẦN KẾT LUẬN 24 TÀI LIỆU THAM KHẢO .25 PHẦN MỞ ĐẦU Trong giới đại ngày nay, thiết bị điện khơng cịn q xa lạ với người Chúng có mặt nơi giúp cho sống người tiện lợi Tuy nhiên nước phát triển Việt Nam, nơi mà GDP người dân cịn chưa cao hóa đơn tiền điện tháng vấn đề cần phải đắn đo suy nghĩ Nhất gia đình có nhỏ, nhà chúng sử dụng thiết bị tiêu thụ điện lớn tivi, máy tính,… làm cho phụ huynh phải đau đầu hóa đơn tiền điện tháng Vì vậy, hệ thống giám sát tiêu thụ điện tạo để giúp phụ huynh kiểm soát việc sử dụng điện nhà Cụ thể giám sát mức tiêu thụ điện máy tính báo hiệu điện tiêu thụ vượt mức cho phép Hệ thống giám sát tiêu thụ điện Hệ thống giám sát tiêu thụ điện hệ thống giám sát cường độ dòng điện thiết bị qua hiển thị thơng tin cơng suất tiêu thụ, nguồn điện đầu vào số điện tiêu thụ thiết bị điện giám sát cho chủ nhà Hệ thống cảnh báo đèn tín hiệu lượng điện tiêu thụ vượt qua ngưỡng quy định trước 2.Mục đích dự án Có số mục tiêu cần đạt để hoàn thành dự án này: • Đảm bảo thơng tin cường độ dịng điện, điện đầu vào, cơng suất • hiển thị xác liên tục Cảnh báo đèn tín hiệu thi lượng điện tiêu thụ vượt qua ngưỡng quy định trước 3.Phạm vi nghiên cứu • Quy mơ: Một gia đình gồm thành viên bố, mẹ trai • Thiết bị giám sát: Máy tính để bàn với cơng suất 400W 4.Phương pháp nghiên cứu Trong hộ gia đình có thành viên gồm bố mẹ trai Hệ thống giúp bố mẹ kiểm soát thời gian trai sử dụng máy tính lượng điện tiêu thụ Máy tính mà gia đình sử dụng có cơng suất toàn thiết bị vào khoảng 400W Do đó, thời gian sử dụng máy tính trai 4-5 tiếng ngày ( thực tế lớn hơn) ngày máy tính sử dụng đến kWh Và theo bảng giá bán lẻ điện sinh hoạt với cách tính lũy tiến cộng với điện tiêu thụ thiết bị điện khác, ước chừng tháng gia đình phải tốn khoảng 200.000đ tiền điện Đây số không nhỏ cho nhiều hộ gia đình Việt Nam Để kiểm soát điều này, hệ thống kết nối trực tiếp với máy tính đo cường độ điện mà sử dụng từ tính tốn cơng suất tiêu thụ theo dõi hoạt động đồng thời gửi liệu lên máy chủ Thinkspeak giúp cho bố mẹ biết thời gian sử dụng máy tính kiểm sốt hoạt động tiêu thụ điện máy tính PHẦN NỘI DUNG 1.LỰA CHỌN THIẾT BỊ PHẦN CỨNG 1.1 Arduino Uno R3 Arduino Uno là bảng mạch vi điều khiển nguồn mở dựa vi điều khiển Microchip ATmega328 phát triển Arduino.cc Bảng mạch trang bị chân đầu vào/ đầu Digital Analog giao tiếp với bảng mạch mở rộng khác Bo mạch Arduino sử dụng dòng vi xử lý 8-bit mega AVR Atmel với hai chip phổ biến ATmega328 ATmega2560 Các dòng vi xử lý cho phép lập trình ứng dụng điều khiển phức tạp trang bị cấu hình mạnh với loại nhớ ROM, RAM Flash, ngõ vào digital I/O có nhiều ngõ có khả xuất tín hiệu PWM, ngõ đọc tín hiệu analog chuẩn giao tiếp đa dạng UART, SPI, TWI (I2C) Ngồi ra, Arduino board cịn cung cấp cho pin khác pin cấp nguồn 3.3V, pin cấp nguồn 5V, pin GND, Hệ thống đọc liệu từ chân A0 Arduino Uno R3 tính tốn liệu liên quan 1.2 Module thu phát Wifi ESP8266 NodeMCU CP2102 Mạch thu phát Wifi ESP8266 NodeMCU kit phát triển dựa chip Wifi SoC ESP8266 với thiết kế dễ sử dụng đặc biệt sử dụng trực tiếp trình biên dịch Arduino để lập trình nạp code, điều khiến việc sử dụng lập trình ứng dụng ESP8266 trở nên đơn giản Mạch thu phát Wifi ESP8266 NodeMCU thiết kế hướng đến các ứng dụng liên quan đến IoT, liệu được truyền qua sóng wifi giúp cho liệu truyền tải đến nơi có kết nối internet - • • • • • • • • Thơng số kỹ thuật IC chính: ESP8266 Wifi SoC Phiên firmware: Node MCU Chip nạp giao tiếp UART: CP2102 GPIO tương thích hồn tồn với firmware Node MCU Cấp nguồn: 5VDC MicroUSB GIPO giao tiếp mức 3.3VDC Tích hợp Led báo trạng thái, nút Reset, Flash Tương thích hồn tồn với trình biên dịch Arduino Module wifi ESP8266 có vai trị kết nối với mạng nhận liệu từ Arduino qua chân Tx, Rx gửi chúng đến máy chủ Thinkspeak 1.3 Connecting Wires Trong mạch điện tử nào, dây dẫn dây dẫn điện kết nối phần tử tiếp xúc Về mặt lý thuyết, chúng khơng có điện trở cung cấp kết nối hoàn hảo 1.4 Breadboard Bảng mạch để lắp mạch điện lên 1.5 Resistor 330 Ohm Điện trở là linh kiện điện tử quan trọng thiếu mạch điện, điện trở có tác dụng sau: • Khống chế dịng điện qua tải cho phù hợp • Mắc điện trở thành cầu phân áp • Phân cực cho bóng bán dẫn • Tham gia vào mạch tạo dao động R C Điện trở điện trở vạch màu, có vạch màu thể trị số điện trở theo quy ước chung giới 1.6 Màn hình LCD 16x02 Màn hình LCD 16×2 là linh kiện sử dụng rộng rãi trong dự án điện tử lập trình LCD 16×2 được sử dụng để hiển thị trạng thái thơng số • LCD 16×2 có 16 chân chân liệu (D0 – D7) chân điều khiển (RS, RW, EN) • chân cịn lại dùng để cấp ngun v ốn nn cho LCD 16ì2 ã Cỏc chõn điều khiển giúp ta dễ dàng cấu hình LCD chế độ lệnh chế độ liệu • Chúng cịn giúp ta cấu hình chế độ đọc ghi ã LCD 16ì2 cú th s dng ch độ bit bit 2.PHẦN MỀM YÊU CẦU 2.1 ARDUINO IDE Mơi trường phát triển tích hợp Arduino (IDE) ứng dụng đa tảng (dành cho Windows, MAC OS, Linux) Mã nguồn cho IDE phát hành theo GNU (Giấy phép Công cộng) phiên Arduino IDE hỗ trợ ngôn ngữ C C ++ cách sử dụng quy tắc đặc biệt cấu trúc mã Arduino IDE cung cấp phần mềm thư viện từ dự án Wiring, cung cấp nhiều thủ tục đầu vào đầu thông thường Mã người dùng viết yêu cầu hai chức bản, để bắt đầu phác thảo vịng lặp chương trình chính, biên dịch liên kết với sơ khai chương trình main () thành chu trình thực thi chương trình điều hành với chuỗi công cụ GNU, bao gồm với phân phối IDE 2.2 ARDUINO LANGUAGE Phần mềm biên dịch lưu trữ máy tính tách biệt với Arduino Uno R3 Cơng việc trình biên dịch chuyển đổi chương trình cung cấp người viết chương trình vào mã máy phù hợp để tải vào xử lý Sau tệp nguồn cung cấp cho trình biên dịch, trình biên dịch thực hai bước để hiển thị mã máy 2.3 THINKSPEAK Thingspeak tảng mà bạn trực quan hóa phân tích liệu đám mây Nó sản phẩm Matlab bạn xử lý phân tích liệu trực tiếp từ đám mây Chủ yếu sử dụng dự án IoT cần phân tích để theo dõi thay đổi giá trị cảm biến đám mây Thingspeak cung cấp khả khác để thu thập, trực quan hóa phân tích liệu đám mây Sau tính • Các thiết bị dễ dàng định cấu hình gửi liệu tới Thingspeak cách sử dụng giao thức truyền thơng • Có thể xem liệu thời gian thực • Nó nhận liệu từ phần mềm bên thứ ba • Có thể sử dụng với Matlab để phân tích liệu • Nó khơng cần server phần mềm web để xây dựng prototype hệ thống IoT • Tự động thực hành động giao tiếp phần mềm bên thứ ba 3.THIẾT KẾ KỸ THUẬT a) Xây dựng sơ đồ khối hệ thống : LED NGUỒN ĐIỆN ARDUINO UNO R3 ESP8266 THINKSPEAK LCD 16X02 b) Biểu đồ hệ thống c) Cơ sở toán học Arduino UNO R3 hoạt động mức điệp áp từ 0-5V.Vì đo dịng điện Arduino ta dùng dịng điện có hiệu điện từ 0-5V ( lớn mức Arduino hỏng) Arduino có chân đọc liệu đánh số từ A0- A5 truyền liệu tín hiệu Analog có dải từ 0-1023 Ta có cơng thức chuyển từ tín hiệu Analog sang điện áp từ 0-5V sau: Vout= A0 x /1024 (V) Và cơng thức tính cường độ dòng điện: Icurrent = (Voffset – Vout ) / Sensitivity (A) Trong đó: - Icurrent cường độ dịng điện - Voffset điện áp khơng có dòng điện chạy mạch ( 2.5V) Sensitivity độ nhạy ( 0.185) Từ ta tính cơng suất theo cơng thức P=U.I (W) Và công thức điện tiêu thụ: A=P.T (kWh) (T thời gian tính giờ) d) Sơ đồ tổng quát mạch (mô Tinkercad) Mạch mô sử dụng chiết áp để điều chỉnh dòng điện đầu vào Arduino từ 0-5V ( mơ dịng điện đầu vào từ máy tính) Sau Arduino nhận liệu tính tốn để thực việc bật sáng đèn LED cảnh báo tùy theo cường độ dòng điện Arduino gửi liệu cho ESP8266 qua cổng truyền liệu Tx mình, ESP8266 đọc liệu cổng RX gửi liệu lên ThinkSpeak Đồng thời hình LCD hiển thị cường độ dòng điện đo e) Coding #include #define AREF 5.0 // chân AREF float val, voltage, temp; String ssid = "Simulator Wifi"; String password = ""; String host = "api.thingspeak.com"; const int httpPort = 80; 10 String url = "/update?api_key=0J414VN10692DTHS&field1="; 11 const int trigger = 11; 12 const int echo = 12; 13 int pushButton = 2; 14 int led = 13; 15 16 LiquidCrystal lcd(12, 11, 10, 9, 8, 7); 17 18 19 float duration, distance; 20 unsigned int Lando; 21 float voltage1, sensedCurrentA; 22 bool redstat, yellowstat, greenstat; 23 float Wattage=0.0; 24 25 int greenpin=2; 26 int yellowpin=3; 27 int redpin=4; 28 29 void setupESP8266(void) { 30 pinMode(greenpin, OUTPUT); 31 pinMode(yellowpin, OUTPUT); 32 pinMode(redpin, OUTPUT); 33 // Khoi dong cong Serial 34 Serial.begin(115200); 35 Serial.println("AT"); 36 delay(10); 37 if (Serial.find("OK")) 38 Serial.println("ESP8266 OK!!!"); 39 40 // Ket noi Wifi 41 Serial.println("AT+CWJAP=\"" + ssid + "\",\"" + password + "\""); 42 delay(10); 43 if (Serial.find("OK")) 44 Serial.println("Connected to WiFi!!!"); 45 46 47 48 Serial.println("AT+CIPSTART=\"TCP\",\"" + host + "\"," + httpPort); 49 delay(50); 50 if (Serial.find("OK")) 51 Serial.println("ESP8266 Connected to server!!!") ; 52 53 } 54 55 void Electric(void){ 56 57 58 int Value = analogRead(A0); 59 60 voltage1 = Value * AREF/ 1024; 61 62 sensedCurrentA = (voltage1 - 2.5) / 0.185; 63 if(sensedCurrentA 2.2 || sensedCurrentA < -2.2){ 74 redstat=true; 75 }else if(sensedCurrentA > || sensedCurrentA < -2){ 76 yellowstat=true; 77 }else{ 78 greenstat=true; 79 } 80 81 // In ket qua 82 digitalWrite(greenpin, greenstat); 83 digitalWrite(yellowpin, yellowstat); 84 digitalWrite(redpin, redstat); 85 86 Serial.println(" "); 87 Serial.print("Cuong dong dien: "); 88 Serial.print(sensedCurrentA); 89 Serial.println("A"); 90 Serial.print("Cong suat: "); 91 Serial.print(sensedCurrentA* 220); 92 Serial.println("W"); 93 Serial.print("Dien tieu thu: "); 94 Serial.print(Wattage/3600/1000); 95 Serial.println("kWh"); 96 delay(400); 97 98 } 99 void anydata(void) { 100 101 digitalWrite(trigger, LOW); 102 delayMicroseconds(2); 103 digitalWrite(trigger, HIGH); 104 delayMicroseconds(10); 105 digitalWrite(trigger, LOW); 106 String httpPacket = "GET " + url + Wattage/3600/1000 + "&field2=" + sensedCurrentA* 220 + "&field3=" + sensedCurrentA + " HTTP/1.1\r\nHost: " + host + "\r\n\r\n"; 107 int length = httpPacket.length(); 108 Serial.print("AT+CIPSEND="); 109 Serial.println(length); 110 delay(10); 111 Serial.print(httpPacket); 112 delay(10); 113 } 114 115 void setup() { 116 pinMode(trigger, OUTPUT); 117 pinMode(echo, INPUT); 118 Serial.begin(9600); 119 setupESP8266(); 120 lcd.begin(16, 2); 121 lcd.print("Current Ampe:"); 122 123 } 124 125 void loop() { 126 Electric(); 127 anydata(); 128 lcd.setCursor(0, 1); 129 lcd.print(sensedCurrentA); 130 delay(500); 131 } f) Chạy mơ phân tích kết • Ban đầu, máy tính hoạt động ổn định mức bình thường với I=1.61A ( đèn LED xanh bật) , biểu đồ công suất cường độ dòng điện nằm ngang