TỔNG QUAN
Công nghệ không dây, bao gồm Wifi, 3G và Internet không dây, đã cách mạng hóa đời sống kinh tế - xã hội hiện đại, cho phép con người kết nối và phát triển thông qua việc làm việc và học tập trực tuyến Sự phát triển của công nghệ này cũng thúc đẩy các ngành công nghiệp hiện đại hóa với các thiết bị điều khiển và giám sát từ xa Trong bối cảnh đó, công nghệ Internet of Things (IoT) đang nổi bật, kết nối các thiết bị qua internet để giao tiếp, như bóng đèn thông minh hay xe tự lái Dựa trên những tiện ích của mạng không dây và công nghệ IoT, nhóm nghiên cứu đã chọn đề tài “Nghiên cứu - Thi công hệ thống ứng dụng IoT giám sát điện năng tiêu thụ của thiết bị điện” để phát triển một hệ thống giám sát điện năng từ xa.
Việc sử dụng điện hợp lý đang là thách thức lớn đối với các hộ gia đình và nhà máy do giá điện ngày càng tăng Giám sát điện năng từ xa giúp cải thiện quản lý nhu cầu sử dụng và đưa ra biện pháp tiết kiệm hiệu quả Thiết bị quan sát từ xa cho phép theo dõi các thông số như điện áp, dòng điện, công suất và điện năng tiêu thụ Nhóm sinh viên Nguyễn Trung Nghĩa và Nguyễn Hoàng Anh Phi tại Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã nghiên cứu đề tài “Nghiên cứu – Thi công hệ thống thu thập dữ liệu và giám sát điện năng” Tuy nhiên, nhóm nhận thấy mô hình có kích thước lớn, không có khả năng lập báo cáo lịch sử và chỉ có thể xem trên Website Nhằm khắc phục những nhược điểm này, nhóm đã phát triển một mô hình nhỏ gọn hơn và cải tiến các tính năng giám sát.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 2
Sản phẩm có kích thước 20x20x11cm, cho phép lập báo cáo lịch sử để giám sát hiệu suất năng lượng Người dùng có thể dễ dàng reset điện năng tiêu thụ, theo dõi thông qua điện thoại thông minh và đo nguồn một chiều DC một cách tiện lợi.
Xây dựng hệ thống thu thập dữ liệu và giám sát điện năng từ xa cho các thông số nguồn điện xoay chiều như điện áp, dòng điện, công suất, tần số, hệ số công suất và năng lượng tiêu thụ của nhiều thiết bị Hệ thống cũng có khả năng đo điện áp nguồn điện một chiều DC và gửi cảnh báo qua Gmail khi mức năng lượng sử dụng nguồn AC vượt quá giới hạn cho phép, từ đó đề xuất giải pháp khắc phục hiệu quả.
Trong quá trình thực hiện đề tài “Nghiên cứu - Thi công hệ thống ứng dụng
IoT giám sát điện năng tiêu thụ của thiết bị điện ” nhóm đã thực hiện các nội dung như sau:
NỘI DUNG 1: Tìm hiểu các tài liệu về đề tài
NỘI DUNG 2: Cài đặt phần mềm lập trình cho vi điều khiển, cài đặt các driver và thư viện phục vụ cho đề tài
NỘI DUNG 3: Kết nối vi điều khiển ESP8266 với module cảm biến PZEM –
NỘI DUNG 4: Lập trình vi điều khiển cho phép đo điện năng
NỘI DUNG 5: Thiết kế và thi công mô hình
NỘI DUNG 6: Chạy thử nghiệm
NỘI DUNG 7: Thiết kế Website và App
NỘI DUNG 9: Viết báo cáo
NỘI DUNG 10: Bảo vệ đồ án tốt nghiệp
Đề tài “Nghiên cứu - Thi công hệ thống ứng dụng IoT giám sát điện năng tiêu thụ của thiết bị điện” gặp một số hạn chế, bao gồm khả năng thu thập dữ liệu không đồng nhất, độ chính xác của cảm biến có thể bị ảnh hưởng bởi môi trường, và chi phí đầu tư ban đầu cho hệ thống IoT có thể cao.
Kích thước mô hình 20x20x11cm
Hệ thống chỉ sử dụng cho hộ gia đình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 3
Đo được nguồn một chiều DC từ 5V trở lên
Dùng Module NodeMCU ESP8266 thực hiện việc điều khiển đo điện năng
Giám sát thông qua giao diện App Blynk và Web Cayenne có server miễn phí
Sử dụng tủ có vỏ bằng nhựa
Nguồn DC sử dụng từ Pin năng lượng mặt trời 9V 2W
Hoạt động khi có mạng Wifi ổn định
Bố cục đề tài gồm những phần sau:
Chương này trình bày từ cách đặt vấn đề, lý do chọn đề tài đến mục tiêu, nội dung, giới hạn cho đến bố cục đề tài
Chương 2: Cơ sở lý thuyết
Chương này trình bày chi tiết lý thuyết về những module, linh kiện sử dụng cho đề tài
Chương 3: Thiết kế và tính toán
Chương này trình bày các bước thiết kế, tính toán, lựa chọn linh kiện, module phù hợp với yêu cầu của đề tài
Chương 4: Thi công hệ thống
Chương này trình bày chi tiết các bước thi công hệ thống
Chương 5: Kết quả, nhận xét và đánh giá
Chương này trình bày kết quả đạt được sau khi hoàn thành hệ thống và đưa ra nhận xét, đánh giá kết quả đạt được
Chương 6: Kết luận và hướng phát triển
Chương này cho kết luận tổng quát về đề tài và hướng phát triển cho hệ thống hoàn thiện hơn
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4
CƠ SỞ LÝ THUYẾT
TẦM QUAN TRỌNG CỦA ĐIỆN NĂNG
Điện đóng vai trò quan trọng trong cuộc sống hàng ngày, được sản xuất từ các nhà máy phát điện Những nhà máy này sử dụng nhiều nguồn năng lượng tự nhiên như nhiệt điện, thủy điện, năng lượng gió và năng lượng mặt trời để tạo ra điện.
Việc sử dụng các thiết bị điện trong sinh hoạt hàng ngày khiến chúng ta phải trả chi phí cho nguồn năng lượng điện Khi mức tiêu thụ điện năng tăng lên, số tiền phải trả cho lượng điện tiêu thụ cũng sẽ lớn hơn, dẫn đến chi phí cao cho người sử dụng.
Việc tiết kiệm điện năng không chỉ giúp giảm chi phí tiêu dùng và đầu tư mà còn đảm bảo nguồn cung điện ổn định cho các hoạt động sinh hoạt và sản xuất Khi nhu cầu sử dụng điện tăng cao trong xã hội hiện đại, việc tiêu thụ điện quá mức có thể dẫn đến tình trạng mất điện kéo dài, ảnh hưởng tiêu cực đến đời sống và hoạt động kinh doanh Hơn nữa, sử dụng điện năng vượt mức cũng làm giảm tuổi thọ của các thiết bị điện.
Những lợi ích của việc sử dụng tiết kiệm điện năng:
Bắt đầu thực hiện chế độ tiết kiệm điện ngay hôm nay sẽ giúp bạn giảm đáng kể hóa đơn tiền điện hàng tháng, từ đó tiết kiệm chi phí hiệu quả.
Sử dụng điện tiết kiệm không chỉ giúp giảm tiêu thụ năng lượng mà còn làm cho các thiết bị và máy móc hoạt động ít hơn, từ đó kéo dài tuổi thọ và giảm thiểu khả năng hỏng hóc.
Quản lý và giám sát điện năng đóng vai trò quan trọng trong việc tiết kiệm năng lượng, đồng thời giúp giảm thiểu sự phụ thuộc vào nguồn nhiên liệu hóa thạch đang ngày càng khan hiếm.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5
TỔNG QUAN VỀ IOT
Hình 2.1 Sơ đồ mạng lưới IoT
Internet Of Things (IoT) là một mạng lưới các thiết bị kết nối qua Internet, cho phép chúng thu thập và chia sẻ dữ liệu về cách sử dụng và môi trường hoạt động Các thiết bị này sử dụng cảm biến để thu thập dữ liệu, giao tiếp qua một ngôn ngữ chung và mã hóa thông tin trước khi gửi lên nền tảng IoT Nền tảng IoT tiếp nhận dữ liệu từ nhiều nguồn khác nhau, thực hiện phân tích sâu và trích xuất thông tin giá trị theo yêu cầu của người dùng.
Việc thu thập dữ liệu diễn ra qua việc truyền tải thông tin từ các thiết bị đến một điểm tập hợp thông qua mạng không dây Dữ liệu này sau đó được gửi qua Internet đến trung tâm dữ liệu hoặc đám mây, nơi có khả năng lưu trữ và xử lý thông tin.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6
2.2.2 Mô hình Internet Of Thing cơ bản
Hình 2.2 Mô hình IoT cơ bản
Các thành phần cơ bản của một mô hình IoT:
Kết nối và đồng bộ hóa là quá trình quan trọng trong việc đồng bộ các giao thức và định dạng dữ liệu khác nhau vào một giao diện phần mềm, giúp đảm bảo truyền dữ liệu chính xác và tương tác hiệu quả với tất cả các thiết bị.
- Quản lý thiết bị: Đảm nhiệm vai trò kết nối các thiết bị hoạt động bình thường, cập nhật phần mềm (hoặc ứng dụng) đang chạy trên thiết bị
Cơ sở dữ liệu là thành phần quan trọng nhất trong nền tảng IoT, đóng vai trò lưu trữ và mở rộng để đáp ứng nhu cầu cho các hệ thống cơ sở dữ liệu dựa trên đám mây.
Quản lý và xử lý hoạt động dựa trên nguyên tắc Event - Action - Triggers cho phép thực hiện các hoạt động thông minh, tận dụng dữ liệu từ cảm biến để tối ưu hóa quy trình.
Bộ não của nền tảng IoT đóng vai trò quan trọng trong việc phân tích dữ liệu từ cơ sở dữ liệu, cho phép truy xuất và chọn lọc thông tin cần thiết theo yêu cầu.
- Giao diện: Cho phép người dùng quan sát một cách trực quan, dữ liệu được miêu tả sinh động
Giao thức kết nối với hệ thống bên ngoài cho phép tích hợp hiệu quả với các hệ thống thứ ba và phần còn lại của hạ tầng công nghệ thông tin, chẳng hạn như hệ thống quản lý sản xuất MES, thông qua giao diện lập trình ứng dụng (API).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7
NODEMCU ESP8266 V3.0
NodeMCU ESP8266 chia làm 2 phần: Phần mềm theo tiêu chuẩn NodeMCU và phần cứng dùng chip ESP8266 (Wifi SoC)
ESP8266 là vi điều khiển 32-bit tích hợp WiFi 2.4GHz, được phát triển bởi Espressif Systems, nhằm cung cấp giải pháp giao tiếp WiFi cho các thiết bị IoT Nó nổi bật nhờ tính đơn giản trong lập trình và được hỗ trợ mạnh mẽ bởi cộng đồng Arduino.
NodeMCU là một nền tảng mã nguồn mở quan trọng trong thiết kế sản phẩm IoT, sử dụng ngôn ngữ lập trình Lua Bo mạch này có nhiều chân GPIO giúp kết nối với các thiết bị ngoại vi, đồng thời hỗ trợ tạo PWM và giao tiếp qua I2C, SPI và UART.
NodeMCU có khả năng như một module wifi:
- Có thể quét và kết nối WiFi (Wifi Client) mọi nơi để lưu trữ, truy cập từ server
- Tạo điểm truy cập WiFi (WiFi Access Point) cho phép các thiết bị khác kết nối, giao tiếp với vi điều khiển
- Là một server để xử lý dữ liệu từ các thiết bị sử dụng internet khác
ESP-12E được phát triển bởi đội ngũ Ai-thinker, sử dụng bộ xử lý lõi ESP8266 với kích thước nhỏ gọn và tích hợp Micro MCU 32 bit tiết kiệm năng lượng Module này hỗ trợ tốc độ xung nhịp lên đến 80MHz và 160Hz, cùng với khả năng hỗ trợ RTOS Đặc điểm nổi bật của dòng ESP8266 là việc tích hợp các mạch RF như balun, công tắc anten, bộ khuếch đại công suất TX và bộ lọc RX ngay trong module Ngoài ra, module còn hỗ trợ chuẩn IEEE b/g/n và giao thức TCP/IP hoàn chỉnh.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8
Hình 2.3 Sơ đồ chân ESP – 12E
NodeMCU là một kit phát triển mạnh mẽ, kết hợp giữa chip ESP-12E và firmware ESP8266 trên nền tảng Arduino Thiết kế phần cứng giao tiếp tiêu chuẩn giúp người dùng dễ dàng kết nối và lập trình Với khả năng nạp chương trình trực tiếp qua phần mềm Arduino và tương thích với các thư viện Arduino có sẵn, NodeMCU ESP8266 đang trở thành lựa chọn hàng đầu cho các dự án IoT hiện nay.
Hình 2.4 Sơ đồ chân NodeMCU ESP8266 V3
Module ESP8266 có tổng cộng 16 chân GPIO, tất cả các chân GPIO đều có trở kéo lên nguồn bên trong (ngoại trừ chân GPIO 16 kéo xuống GND):
- Chân GPIO1 và GPIO3: Hai GPIO này được nối với TX và RX của bộ UART0 NodeMCU nạp code thông qua bộ UART này nên tránh sử dụng
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9
Chân GPIO0, GPIO5 và GPIO15 trên ESP8266 đóng vai trò quan trọng trong việc cấu hình để điều khiển quá trình nạp code Để đảm bảo mức logic ổn định cho các chân này, NodeMCU đã được trang bị các điện trở kéo lên.
- GPIO 9, GPIO10: Hai chân này dùng để giao tiếp với External Flash của ESP vì vậy cũng không thể dùng được
- Các chân GPIO còn lại không có chức năng gì đặc biệt nên sử dụng bình thường
- IC chính: Chip ESP8266 wifi (wifi SoC), firmware: NodeMCU Lua
- Các chân GPIO hoạt động 3.3VDC, tích hợp led báo trạng thái, nút Reset, Flash 4MB
- Dòng điện tiêu thụ: 70mA (max 200mA)
- Hỗ trợ bảo mật: WPA/WPA2
- Tích hợp giao thức: TCP/IP
- Điện áp vào 5V thông qua cổng USB
- Ngoại vi giao tiếp UART / SDIO / SPI/ I2C/ GPIO/ PWM
- Một bộ chuyển đổi ADC có độ chính xác cao – 10bit
- Dải nhiệt độ rộng: -40 ~125 ºC
- Có thể dùng tập lệnh AT
- Hỗ trợ cho Window và Linux.
MODULE ĐO ĐIỆN NĂNG PZEM – 016
Module Pzem – 016 là thiết bị đo điện năng cho nguồn điện xoay chiều AC, sử dụng giao thức RS485 để truyền dữ liệu Nó có khả năng đo các thông số quan trọng như điện áp, dòng điện, tần số, hệ số công suất, công suất tiêu thụ và điện năng tiêu thụ Ngoài ra, module này còn cho phép cài đặt ngưỡng báo động để theo dõi hiệu suất hoạt động.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10
- Điện áp đo: 80 ~260VAC, sai số 1%
- Dòng điện đo: 0 ~100A, sai số 1%
- Công suất đo: 0 ~26kW, sai số 1%
- Điện năng: 0- 9999kWh, sai số 1%
- Hệ số công suất: 0.00 ~1.00 PF
- Giao tiếp RS485 baud 9600, 8 bit dữ liệu, 1bit stop, không có bit parity
- Có opto cách ly an toàn giữa mạch đo và mạch nhận tín hiệu RS485
- Lưu trữ dữ liệu trong bộ nhớ
2.4.2 Cấu trúc lệnh Đọc kết quả đo Định dạng lệnh của thiết bị Master đọc kết quả đo là 8 bytes:
The command format for the Slave device consists of the Slave Address, followed by the high byte and low byte of the Register Address, the high byte and low byte of the Number of Registers, and finally the high byte and low byte of the CRC Check The response format from the Slave device is categorized into two types.
Slave Address +0x04 +Number of Bytes +Register 1 Data High Byte + Register
1 Data Low Byte +…+ CRC Check High Byte + CRC Check Low Byte
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11
Slave Address +0x84 + Abnormal code + CRC Check High Byte + CRC Check Low Byte
Mã Abnormal được phân tích như sau:
Bảng 2.1 Địa chỉ thanh ghi lưu kết quả đo Địa chỉ thanh ghi Sự miêu tả Độ phân giải
0x0000 Giá trị điện áp 1 LSB tương đương
0x0001 Giá trị dòng điện mức thấp 16 bits
1LSB tương đương 0.001A 0x0002 Giá trị dòng điện mức cao 16 bits
0x0003 Giá trị công suất mức thấp 16 bits
0.1W 0x0004 Giá trị công suất mức cao 16 bits
0x0005 Giá trị điện năng mức thấp 16 bits
1 LBS tương đương 0x0006 Giá trị điện năng mức cao 16 bits 1Wh
0x0007 Giá trị tần số 1LBS tương đương
0x0008 Giá trị hệ số công suất 1LBS tương đương
0xFFFF thì cảnh báo 0x0000 thì không cảnh báo
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 12
2.4.3 Sơ đồ khối chức năng và sơ đồ nối dây
Hình 2.6 Sơ đồ chức năng Pzem – 016
Hình 2.7 Sơ đồ nối dây Pzem – 016
MODULE ĐO ĐIỆN NĂNG PZEM – 017
Module Pzem – 017 là thiết bị đo điện năng cho nguồn điện một chiều DC, sử dụng giao thức RS485 để truyền dữ liệu Nó có khả năng đo điện áp, dòng điện, công suất tiêu thụ và điện năng tiêu thụ, đồng thời cho phép cài đặt ngưỡng báo động.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 13
- Điện áp đo: 5 ~ 300VDC, sai số 1%
- Dòng điện : 0.02~ 300A (có thể kết hợp với điện trở shunt 50, 100, 200, 300A), sai số 1%
- Công suất: 0.2 ~ 90kW, sai số 1%
- Năng lượng: 0 ~ 9999kWh, sai số 1%
- Giao tiếp RS485 baud 9600, 1 bit stop, no parity
- Lưu trữ dữ liệu trong bộ nhớ
2.5.2 Cấu trúc lệnh Đọc kết quả đo Định dạng lệnh của thiết bị Master đọc kết quả đo là 8 bytes :
The response format from the Slave device consists of two types: Slave Address, followed by 0x04, the high byte of the register address, the low byte of the register address, the high byte of the number of registers, the low byte of the number of registers, and finally, the high byte and low byte of the CRC check.
Slave Address +0x04 +Number of Bytes +Register 1 Data High Byte + Register
1 Data Low Byte +…+ CRC Check High Byte + CRC Check Low Byte
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 14
Slave Address +0x84 + Abnormal code + CRC Check High Byte + CRC Check Low Byte
Mã Abnormal được phân tích như sau:
Bảng 2.2 Địa chỉ thanh ghi lưu kết quả đo Địa chỉ thanh ghi Sự miêu tả Độ phân giải
0x0000 Giá trị điện áp 1 LSB tương đương
0x0001 Giá trị dòng điện 1LSB tương đương
0x0002 Giá trị công suất mức thấp 16 bits
0.1W 0x0003 Giá trị công suất mức cao 16 bits
0x0004 Giá trị điện năng mức thấp 16 bits 1 LBS tương đương
1Wh 0x0005 Giá trị điện năng mức cao 16 bits
Tình trạng báo động điện áp mức cao
0xFFFF thì cảnh báo, 0x0000 thì không cảnh báo
0x0007 Tình trạng báo động điện áp mức thấp
0xFFFF thì cảnh báo, 0x0000 thì không cảnh báo
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 15
2.5.3 Sơ đồ khối chức năng và sơ đồ nối dây
Hình 2.9 Sơ đồ khối chức năng Pzem – 017
Hình 2.10 Sơ đồ nối dây Pzem – 017
MODULE HIỂN THỊ
Màn hình LCD được ưa chuộng nhờ khả năng hiển thị thông số rõ ràng, chi tiết, giá thành hợp lý và lập trình đơn giản, thường được sử dụng trong các loại màn hình như GLCD, OLED, và HMI Hai loại LCD phổ biến hiện nay là LCD 16x2 và LCD 20x4; trong đó, LCD 16x2 có 2 hàng với 16 ký tự mỗi hàng, còn LCD 20x4 có 4 hàng với 20 ký tự mỗi hàng.
20 kí tự Để thuận tiện cho việc giám sát thì LCD 20x4 rất phù hợp với nhiều kí tự, kích thước lớn
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 16
Bảng 2.3 Thông tin chi tiết các chân LCD 20x4
Thứ tự Tín hiệu Input/ Output Chức năng
2 Vdd Power Điện áp vào 5V
3 Vo Analog Điều khiển độ tương phản của màn hình
Thanh ghi lựa chọn tín hiệu
H : Chọn thanh ghi dữ liệu
5 R/W Input Đọc/ Ghi dữ liệu
6 E Input Tín hiệu cho phép
7 DB0 Input Dữ liệu (LSB)
14 DB7 Input Dữ liệu (MSB)
Trong 16 chân của LCD được chia ra làm 4 dạng tín hiệu như sau:
Các chân cấp nguồn bao gồm chân số 1 nối với Mass (0V), chân số 2 kết nối với nguồn +5V (Vdd), và chân thứ 3 (Vo) dùng để điều chỉnh độ tương phản Chân Vo thường được kết nối với biến trở, điều chỉnh cho đến khi ký tự hiển thị rõ ràng thì dừng lại.
Các chân điều khiển trong mạch bao gồm chân số 4 là chân RS, dùng để lựa chọn thanh ghi, chân R/W đảm nhiệm việc điều khiển quá trình đọc và ghi, và chân E là chân cho phép tạo xung chốt.
Các chân dữ liệu D7 – D0: Chân số 7 đến chân số 14 là 8 chân dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 17
Các chân LED_A và LED_K, tương ứng với chân số 15 và 16, được sử dụng để cung cấp nguồn cho đèn nền, giúp hiển thị rõ ràng vào ban đêm Mỗi ký tự trên màn hình LCD có một địa chỉ riêng.
- Hàng 1: Kí tự tận cùng bên trái có địa chỉ là 0x80, cuối cùng là 0x93
- Hàng 2: Địa chỉ bắt đầu là 0xC0 và địa chỉ kết thúc là 0xD3
- Hàng 3: Địa chỉ bắt đầu là 0x94 và địa chỉ kết thúc là 0xA7
- Hàng 4: Địa chỉ bắt đầu là 0xD4 và địa chỉ kết thúc là 0xE7
Điện áp hoạt động: 5V DC
Dòng tiêu thụ: 350uA – 600uA
Nhiệt độ hoạt động: -30 ºC đến 75 ºC
Kích thước 96x60mm, nền xanh lá
I2C (Inter-Integrated Circuit) là giao thức giao tiếp do Philips Semiconductors phát triển, cho phép truyền dữ liệu giữa bộ xử lý trung tâm và nhiều IC trên cùng một board mạch thông qua hai đường tín hiệu SCL và SDA Để giao tiếp với LCD, vi điều khiển cần tối thiểu 6 chân (RS, E, D7-D4), điều này có thể gây khó khăn trong thiết kế do tốn nhiều tài nguyên Tuy nhiên, việc sử dụng module chuyển đổi I2C giúp tiết kiệm tài nguyên cho vi điều khiển, chỉ cần 2 chân cấp nguồn và 2 chân giao tiếp SCL và SDA Bên cạnh đó, module còn cho phép điều chỉnh độ tương phản dễ dàng mà không cần sử dụng biến trở ngoài khi điều khiển trực tiếp.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 18
Điện áp hoạt động: 2.5 – 6V DC
Hỗ trợ màn hình LCD 16x2, LCD 20x4, LCD 16x4 (Driver HD44780)
Địa chỉ mặc định 0x27 (có thể điều chỉnh bằng cách ngắn mạch chân A0/A1/A2)
Kích thước 41.5mm (L) x 19mm (W) x 15.3mm (H)
Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.
MODULE CHUYỂN ĐỔI TÍN HIỆN UART SANG RS485
Các tín hiệu giao thức UART trong vi điều khiển thường sử dụng chuẩn TTL hoặc CMOS Để giao tiếp với các thiết bị sử dụng giao thức Modbus RTU, cần thiết phải có mạch chuyển đổi từ TTL/CMOS sang RS232 hoặc RS485 Trong nghiên cứu này, nhóm chọn sử dụng mạch TTL – RS485 với IC Max485, được tích hợp sẵn trên board truyền nhận năng lượng thấp theo chuẩn RS485.
Hình 2.13 Module chuyển đổi tín hiệu UART sang RS485
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 19
Điện áp hoạt động: 5V DC
Chức năng của từng chân:
Chân A: Đầu vào nhận tín hiệu không đảo và đầu ra truyền tín hiệu không đảo
Chân B: Đầu vào nhận tín hiệu đảo và đầu ra truyền tín hiệu đảo
Chân RE: Cho phép nhận dữ liệu (tích cực mức thấp)
Chân DE: Cho phép truyền dữ liệu (tích cực mức cao)
Chân DI: Truyền dữ liệu đến bus 485 (nối đến chân TX của vi điều khiển)
Chân RO: Nhận dữ liệu từ bus 485 (nối đến chân RX của vi điều khiển).
GIAO THỨC MODBUS – RTU
Modbus là giao thức truyền thông công nghiệp được phát triển bởi Modicon (nay thuộc Schneider Electric) vào năm 1979, cho phép giao tiếp giữa các thiết bị Với độ ổn định cao, tính miễn phí, sự đơn giản và dễ sử dụng, Modbus đã trở thành chuẩn giao tiếp công nghiệp phổ biến.
Modbus hoạt động theo nguyên tắc "Master - Slave", trong đó Master kết nối với một hoặc nhiều Slave Các Slave không thể tự động truyền dữ liệu mà phải chờ yêu cầu từ Master Master có nhiệm vụ ghi hoặc đọc dữ liệu từ các thanh ghi của thiết bị Slave Mỗi Slave được gán một địa chỉ 8 bit duy nhất, không trùng lặp với các Slave khác.
Giao thức Modbus được chia thành nhiều loại như Modbus RTU, Modbus ASCII, Modbus TCP/IP (Modbus ASCII được mã hóa dạng hexa decimal – 4bit, cần
2 byte dữ liệu truyền cho một byte thông tin, Modbus RTU mã hóa dạng nhị phân với
Một byte dữ liệu và một byte truyền thông có tốc độ baud từ 9600 đến 57600, sử dụng giao thức Modbus TCP/IP qua Ethernet (Modbus IP) với mỗi địa chỉ tương ứng là một địa chỉ IP Tất cả các giao thức này đều hoạt động dựa trên nguyên tắc Master – Slave, trong đó thiết bị Master gửi yêu cầu đến thiết bị Slave và chỉ khi nhận được yêu cầu, thiết bị Slave mới phản hồi Tất cả các thiết bị sẽ được kết nối trên cùng một đường truyền.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20
Hình 2.14 Sơ đồ kết nối Master – Slave Modbus
Trong mô hình OSI, Modbus RTU hoạt động ở lớp ứng dụng và yêu cầu lớp vật lý để kết nối với các thiết bị khác Chuẩn RS232 và RS485 được sử dụng làm đường truyền vật lý cho giao thức này.
Hình 2.15 Mô hình OSI Đường truyền vật lý RS485
RS485 là một giao thức truyền thông tương tự như RS232 nhưng có nhiều ưu điểm vượt trội hơn, vì vậy nó được sử dụng chủ yếu trong giao thức Modbus RTU Các đặc điểm nổi bật của RS485 bao gồm khả năng truyền dữ liệu ở khoảng cách xa, khả năng kết nối nhiều thiết bị trên cùng một đường truyền và độ bền cao trong môi trường công nghiệp.
- Có thể hỗ trợ một mạng lên đến 32 trạm thu phát trên cùng một đường truyền
- Tốc độ baud lên đến 115 200 cho một khoảng cách là 1200m
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21
- Không bị sụt áp trên đường truyền
- Có thể hoạt động trong môi trường nhiễu cao
Có 2 chế độ truyền: Chế độ truyền Half – Duplex chỉ một cặp dây đối xứng A-
B, chế độ truyền Full – Duplex cần 2 cặp dây A-B, X-Y Các dây tín hiệu được xoắn lại với nhau nên nếu có nhiễu tác động thì sẽ xảy ra đồng thời trên các dây Đồng thời nó sử dụng hệ thống truyền dẫn cân bằng nên điện áp giữa 2 dây sẽ ngược nhau và mức logic sẽ được xác định dựa trên điện áp giữa các cặp dây (ví dụ Dây A có mức logic ‘1’ thì dây B sẽ có mức logic ‘0’ và ngược lại ) nên khả năng chống nhiễu tốt
Mức logic RS485 có điện áp chênh lệch giữa hai thiết bị giao tiếp dao động từ -7V đến 12V Để đảm bảo tín hiệu ổn định, các thiết bị cần được kết nối GND trên cùng một đường truyền.
Trên thị trường hiện nay có nhiều module hỗ trợ kết nối vi điều khiển với các thiết bị sử dụng chuẩn RS485, trong đó IC max485 là phổ biến nhất, bên cạnh các IC khác như SN65HVD485E.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22
Hình 2.17 Module chuyển đổi UART sang RS485
2.8.3 Cấu trúc bảng tin Modbus RTU
Bảng tin Modbus được thiết kế dựa trên các bảng tin UART, yêu cầu các bảng tin Modbus khác nhau phải có khoảng thời gian cách nhau gọi là “Silent Interval” tối thiểu 3.5 lần thời gian của một bảng tin UART Trong một bảng tin Modbus, các ký tự cần được truyền liên tục; nếu xuất hiện khoảng “Silent Interval” lớn hơn 1.5 ký tự, bảng tin sẽ bị coi là không hoàn thành và thiết bị nhận sẽ bỏ qua nó.
Hình 2.18 Cấu trúc bảng tin Modbus RTU
Trong hệ thống truyền thông, bảng tin Master được gọi là Query, trong khi bảng tin Slave phản hồi được gọi là Response Master có khả năng gửi bảng tin đến tất cả các Slave thông qua phương thức Broadcast, và khi Slave nhận được bảng tin này, chúng không cần phải gửi phản hồi trở lại.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23
Bảng tin Query và Response sẽ có 4 trường: Device Address, Function Code, Data Bytes và Error Check
Device Address: Địa chỉ này giúp Master xác định được nó đang làm việc là
Các Slave trong hệ thống Modbus được gán địa chỉ từ 1 đến 247, đảm bảo rằng không có địa chỉ nào bị trùng lặp giữa các Slave Trường địa chỉ này nằm ở vị trí đầu tiên trong bảng tin Modbus và có kích thước 8 bit.
When the Device Address field in the Master’s Query message is set to 0x00, it indicates a Broadcast message, allowing all Slave devices to receive the message.
Function Code: Trường này theo sau trường Device Address và có kích thước
Trong giao thức Modbus, 8 bit sẽ chỉ định hành động mà Master yêu cầu Slave thực hiện, bao gồm việc đọc hoặc ghi dữ liệu từ một hoặc nhiều thiết bị Dữ liệu trong các thiết bị Modbus được phân loại thành các kiểu dữ liệu khác nhau và lưu trữ trong các thanh ghi (Register Type) Thông thường, Slave chỉ cần phản hồi đúng mã chức năng (Function Code) mà Master đã gửi để hoàn tất quá trình giao tiếp.
Bảng 2.4 Bảng chức năng Function Code
Function Code Action Register Type
01 (01 hex) Read Discrete Output Coils
05 (05 hex) Write single Discrete Output Coil
15 (0F hex) Write multiple Discrete Output Coils
02 (02 hex) Read Discrete Intput Contacts
04 (04 hex) Read Analog Input Register
03 (03 hex) Read Analog Output Holding
06 (06 hex) Write single Analog Output Holding
16 (10 hex) Write multiple Analog Output Holding
Data Bytes: This field contains additional information that the Slave must use to perform actions according to the Function Code In the case of a Response message, the Data field will include the data requested by the Master.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24
Error Check: Trường này dùng để kiểm tra lỗi khung truyền, nó chiếm 16 bit tương ứng 2 byte Modbus RTU sử dụng phương pháp Cyclical Redundancy Check (CRC)
Có 4 kiểu dữ liệu trong Modbus
Coil (hay Discrete Output): Đọc/ Ghi trạng thái (On/Off)
Discrete Input (hay Status Input): Chỉ đọc trạng thái
Input Register: Chỉ đọc thanh ghi
Holding Register: Ghi/Đọc vào thanh ghi
Trong đó Coil và Discrete Input có kích thước 1 bit, giá trị của nó có thể là ON
Discrete Input và Discrete Output Coils là hai loại dữ liệu quan trọng trong hệ thống điều khiển Discrete Input thể hiện trạng thái của các đầu vào vật lý và chỉ có thể đọc, trong khi Discrete Output Coils chứa trạng thái của các đầu ra vật lý, cho phép đọc và ghi dữ liệu Các thanh ghi Register, đặc biệt là Holding Register, là loại thanh ghi 16 bit với giá trị từ 0x0000 đến 0xFFFF, được sử dụng để lưu trữ dữ liệu cho các thiết bị và có thể đọc hoặc ghi Ngoài ra, Analog Input Register chỉ cho phép đọc dữ liệu đầu vào tương tự từ người dùng.
CHUẨN GIAO TIẾP I2C
I2C, viết tắt của Inter-Integrated Circuit, là một bus nối tiếp được phát triển bởi Philips Semiconductors vào năm 1982 Giao thức này cho phép truyền dữ liệu giữa bộ xử lý trung tâm và nhiều IC trên cùng một board mạch chỉ với hai dây tín hiệu I2C hoạt động theo nguyên tắc đồng bộ, trong đó các bit dữ liệu được truyền lần lượt theo các khoảng thời gian đều đặn của xung clock.
Hình 2.20 Giao tiếp I2C Địa chỉ thiết bị
Dữ liệu Kiểm tra lỗi Địa chỉ thiết bị
Dữ liệu Kiểm tra lỗi
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26
Giao tiếp I2C sử dụng hai dây chính: Serial Data (SDA) và Serial Clock (SCL) Trong đó, SDA là đường truyền dữ liệu hai chiều, còn SCL là đường truyền xung đồng bộ chỉ theo một chiều Khi thiết bị ngoại vi kết nối vào bus I2C, chân SDA của thiết bị sẽ được nối với dây SDA của bus, và chân SCL sẽ được kết nối với chân SCL của bus.
Giao thức tín hiệu đơn giản này được ưa chuộng trong việc giao tiếp giữa vi điều khiển và các thiết bị như màn hình hiển thị, cảm biến, cũng như các thiết bị IoT.
Start và Stop là hai điều kiện thiết yếu khi một thiết bị Master thiết lập giao tiếp với thiết bị khác Start đánh dấu sự khởi đầu của quá trình giao tiếp, trong khi Stop báo hiệu sự kết thúc của quá trình đó.
Khi chưa bắt đầu giao tiếp, cả hai đường SDA và SCL đều ở mức cao, lúc này bus I2C được coi là "bus free" và sẵn sàng cho việc giao tiếp Hai điều kiện Start và Stop là yếu tố quan trọng không thể thiếu trong quá trình giao tiếp giữa các thiết bị I2C.
Điều kiện Start: Một sự chuyển đổi trạng thái từ cao xuống thấp trên đường SDA trong khi đường SCL đang ở mức cao báo hiệu một điều kiện Start
Điều kiện Stop: Một sự chuyển đổi trạng thái từ mức thấp lên mức cao trên đường SDA trong khi đường SCL đang ở mức cao
Cả tín hiệu Start và Stop đều do Master tạo ra, với tín hiệu Start đánh dấu bus I2C bắt đầu hoạt động Sau khi nhận tín hiệu Stop từ Master, bus I2C sẽ trở về trạng thái rảnh rỗi, sẵn sàng cho giao tiếp mới.
Khi tín hiệu Start được lặp lại trong giao tiếp I2C thay vì tín hiệu Stop, bus I2C vẫn duy trì trạng thái bận Cả tín hiệu Start và ReStart đều có vai trò quan trọng trong việc khởi tạo một giao tiếp mới.
Dữ liệu trên bus I2C được truyền theo từng bit tại mỗi cạnh lên của xung Clock (SCL), với sự thay đổi bit dữ liệu trên SDA diễn ra khi SCL ở mức thấp Số lượng byte có thể truyền trong một lần là tối đa 128 byte.
Bit MSB sẽ được truyền đi trước, và sau 8 xung clock, 8 bit dữ liệu sẽ được gửi Thiết bị nhận sẽ kéo SDA xuống mức thấp tương ứng với từng bit, và tín hiệu ACK sẽ được phát tại mỗi xung clock.
Bộ môn Điện tử Công nghiệp - Y sinh 27 tháng 9 đã xác nhận nhận đủ 8 bit Khi thiết bị truyền nhận được tín hiệu ACK, nó sẽ tiếp tục quá trình truyền hoặc kết thúc.
2.9.3 Định dạng địa chỉ thiết bị
Mỗi thiết bị ngoại vi trên bus I2C được xác định bằng một địa chỉ duy nhất dài 7 bit, cho phép phân biệt tối đa 128 thiết bị Byte đầu tiên mà Master gửi sẽ chứa 7 bit địa chỉ cùng với 1 bit thứ 8 gọi là bit R/W.
Bit R/W = 0: Ghi dữ liệu từ Master vào Slave
Bit R/W = 1: Đọc dữ liệu từ Slave
2.9.4 Phương thức truyền dữ liệu tới Slave
Các bước của quá trình truyền dữ liệu
Master gửi 7 bit địa chỉ của Slave + bit R/W = 0 (8 xung clock)
Tại thời điểm clock thứ 9, Master đọc tín hiệu ACK từ Slave; tín hiệu ACK bằng 0 khi Slave đã nhận diện địa chỉ tương ứng Sau đó, Master bắt đầu gửi dữ liệu đến Slave từng bit một.
Kết thúc quá trình truyền, Master sau khi truyền byte cuối cùng sẽ tạo xung Stop báo hiệu kết thúc quá trình truyền dữ liệu
Hình 2.21 Phương thức truyền dữ liệu I2C Điều kiện bắt đầu (Start Condition)
Khi thiết bị Master gửi bit Start, tất cả các thiết bị Slave sẽ hoạt động ngay cả khi chúng đang ở chế độ ngủ và chờ nhận bit địa chỉ.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28
Giao thức I2C sử dụng 7 bit để xác định địa chỉ của thiết bị Slave mà thiết bị Master cần giao tiếp Các thiết bị Slave trên bus I2C sẽ so sánh địa chỉ này với địa chỉ của chính chúng để xác định xem có nhận dữ liệu hay không.
Bit này xác định hướng truyền dữ liệu giữa thiết bị Master và thiết bị Slave Khi thiết bị Master cần gửi dữ liệu, bit này sẽ được thiết lập là ‘0’ Ngược lại, nếu Master cần nhận dữ liệu từ thiết bị Slave, bit này sẽ được thiết lập là ‘1’.
GIAO THỨC TRUYỀN TẢI DỮ LIỆU
Có 5 giao thức truyền tải dữ liệu phổ biến có thể sử dụng trong các mô hình là MQTT (Message Queue Telemetry Transport), CosAP (Constrained Applicantions Protocol), AMQP (Advanced Message Queue Protocol), DDS (Data Distribution Service), XMPP (Extensible Messaging và Presence Protocol)
MQTT (Message Queue Telemetry Transport) is an open-source protocol designed for transmitting messages between multiple clients (publishers and subscribers) through an intermediary broker Its architecture is simple and easy to implement, making it an efficient choice for communication in various applications.
Bộ môn Điện tử Công nghiệp - Y sinh 29 sử dụng kết nối TCP lâu dài từ các Client đến Broker Mỗi Client sẽ đăng ký một hoặc nhiều kênh (topic) như “/client1/channel1” hoặc “/client2/channel2” thông qua quá trình gọi là “subscribe” Khi một Client đăng ký kênh, nó sẽ nhận dữ liệu từ bất kỳ trạm nào khác gửi thông tin đến kênh đã đăng ký Khi một Client gửi dữ liệu tới kênh đó, quá trình này được thực hiện để đảm bảo thông tin được truyền tải hiệu quả.
MQTT là giao thức nhẹ, lý tưởng cho truyền thông hai chiều qua mạng có độ trễ cao và độ tin cậy thấp Nó cũng phù hợp với các thiết bị tiêu thụ điện năng thấp.
Hình 2.22 Giao thức truyền tải dữ liệu MQTT
MQTT mất rất ít byte cho việc kết nối với server và quá trình kết nối có thể giữ trạng thái xuyên suốt
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30
TÍNH TOÁN VÀ THIẾT KẾ
GIỚI THIỆU
Đề tài “Nghiên cứu - Thi công hệ thống ứng dụng IoT giám sát điện năng tiêu thụ của thiết bị điện” tập trung vào việc giám sát và quản lý điện năng tiêu thụ Hệ thống sử dụng ứng dụng Blynk và Web Cayenne để quản lý và giám sát hiệu quả Ngôn ngữ lập trình C/C++ được áp dụng trên phần mềm IDE (Arduino), với bộ xử lý trung tâm là Module NodeMCU ESP8266 V3 Hệ thống này thu thập dữ liệu từ cảm biến dòng, hiển thị thông tin trên LCD 20x4, và gửi dữ liệu lên Web và App để người dùng dễ dàng theo dõi.
Chương này sẽ trình bày về sơ đồ khối của hệ thống sử dụng module, bao gồm chức năng của từng khối và nguyên lý hoạt động của toàn bộ hệ thống Ngoài ra, sẽ có sơ đồ nguyên lý hệ thống và lý do lựa chọn các linh kiện, module sao cho phù hợp với yêu cầu của hệ thống.
TÍNH TOÁN VÀ THIẾT KẾ
3.2.1 Thiết kế sơ đồ khối hệ thống
Với những yêu cầu của đề tài thì nhóm đã hình thành sơ đồ khối như sau:
Hình 3.1 Sơ đồ khối hệ thống
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31
Khối xử lý trung tâm là thành phần quan trọng trong hệ thống, có nhiệm vụ tiếp nhận yêu cầu từ lập trình viên để xử lý các tín hiệu từ khối đo điện năng Sau khi xử lý, nó cho phép hiển thị thông tin trên module hiển thị và truyền tải dữ liệu lên Web và ứng dụng qua Internet.
- Khối đo điện năng: Có nhiệm vụ xử lý tín hiệu từ cảm biến Bao gồm 2 khối đo điện năng:
Đo điện năng AC là quá trình xử lý dữ liệu từ cảm biến, bao gồm dòng điện, điện áp, công suất, tần số, hệ số công suất và điện năng Cảm biến có nhiệm vụ đo dòng điện xoay chiều từ các thiết bị điện và gửi thông tin này đến khối đo điện năng.
Đo điện năng DC: Đo điện áp nguồn DC từ pin năng lượng mặt trời
Khối hiển thị có chức năng quan trọng trong việc trình bày các tín hiệu và thông số đã được xử lý từ khối xử lý trung tâm Nó giúp người dùng và lập trình viên dễ dàng quan sát thông tin trên màn hình.
- Khối giao tiếp RS485: Có nhiệm vụ chuyển đổi giao thức truyền nối tiếp
(Serial) từ vi điều khiển sang đường truyền RS485
- Khối tải: Tải từ các thiết bị điện được đưa vào với mục đích giám sát điện năng
Khối liên kết Blynk cho phép kết nối thiết bị với server thông qua mã Token, giúp giao tiếp hiệu quả trên nền tảng Blynk Ứng dụng Blynk cũng hỗ trợ điều khiển và reset mức năng lượng tiêu thụ điện năng bằng cách sử dụng mũi tên hai chiều.
- Khối liên kết Web: Kết nối thiết bị với server thông qua MQTT để giao tiếp trên nền tảng Cayenne
- Khối nguồn: Cấp nguồn cho toàn hệ thống
3.2.2 Thiết kế từng khối a Khối xử lý trung tâm
Khối này sử dụng NodeMCU ESP8266 làm vi điều khiển trung tâm, với nhiều phiên bản như ESP-01, ESP-02, ESP-03, ESP-12E, và ESP-12F Nhóm đã chọn ESP-12E do tính năng và giá thành phù hợp với đề tài nghiên cứu.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32
Module NodeMCU có hai phiên bản chính là V1.0 và V3.0, với số chân và chức năng tương đồng nhưng khác nhau về kích thước; phiên bản V3.0 lớn hơn và có độ ổn định trong xử lý thông tin kém hơn Do đó, nhóm đã quyết định chọn phiên bản NodeMCU V3.0 làm bộ xử lý trung tâm cho hệ thống.
Để đo điện năng AC, chúng tôi sử dụng Pzem – 016, trong khi Pzem – 017 được chọn để đo điện năng DC Mặc dù Pzem – 004t cũng có thể đo điện năng AC, nhưng do phương pháp truyền thông Modbus là chính trong nghiên cứu này, Pzem – 004t không phù hợp vì nó chủ yếu sử dụng chuẩn truyền UART Do đó, Pzem – 016 được sử dụng để đo các thông số nguồn xoay chiều AC Đối với module đo điện năng DC, Pzem – 017 là lựa chọn ưu tiên vì nó chuyên dụng để đo nguồn DC, với dải đo phụ thuộc vào điện trở bên ngoài, cho phép đo dòng điện rất lớn.
Màn hình LCD 20x4 đáp ứng tốt nhu cầu hiển thị thông số của đề tài, dễ dàng lập trình và có giá thành rẻ hơn so với các loại màn hình hiển thị khác.
Bảng 3.1 Kết nối chân giữa vi điều khiển và LCD
SCL Chân GPIO 12 d Khối chuyển đổi UART sang RS485
Để vi điều khiển có thể đọc dữ liệu từ module đo điện năng sử dụng giao tiếp RS485, cần thiết phải có một module chuyển đổi tín hiệu nối tiếp thành tín hiệu RS485 Nhóm đã sử dụng module giao tiếp TTL sang RS485 dựa trên IC max485.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33 e Khối nguồn
Nguồn điện xoay chiều 220VAC cung cấp cho PZEM-016, trong khi nguồn DC từ pin năng lượng mặt trời phục vụ PZEM-017 Nguồn 5V được chuyển đổi từ nguồn AC 220V thông qua mạch nguồn để cung cấp cho mạch điều khiển.
Về dòng điện thì được tóm tắt ở bảng sau:
Bảng 3.2 Thông số dòng điện hoạt động của các linh kiện
Linh kiện Dòng điện hoạt động cực đại
Tổng dòng điện cực đại của mạch điều khiển là 304.2mA Nên ta sẽ sử dụng nguồn Adapter 5V 1A hoặc dòng lớn hơn
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34
3.2.3 Sơ đồ nguyên lý toàn hệ thống
Hình 3.2 Sơ đồ nguyên lý toàn hệ thống
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35
Nguyên lý hoạt động của hệ thống
Khi được cấp nguồn, khối xử lý trung tâm gửi tín hiệu đến khối đo điện năng qua giao tiếp RS485 Khối đo điện năng nhận tín hiệu và thực hiện đo các thông số đã lập trình, sau đó gửi kết quả về khối xử lý trung tâm Khối xử lý trung tâm phân tích, xử lý và hiển thị thông tin trên màn hình LCD để người dùng giám sát Đồng thời, dữ liệu cũng được gửi đến ứng dụng Blynk và Web Cayenne, cho phép người dùng giám sát trực tuyến và có biện pháp phòng ngừa khi có sự cố xảy ra.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 36
THI CÔNG MÔ HÌNH HỆ THỐNG
GIỚI THIỆU
Trong chương này, nhóm sẽ trình bày các bước thi công hệ thống, bao gồm thi công mạch PCB với việc bố trí và sắp xếp linh kiện hợp lý để dễ dàng nối dây với các module, thuận tiện cho việc lắp đặt và bảo trì Tiếp theo, nhóm sẽ tạo giao diện trên ứng dụng App Blynk và Cayenne Mydevice.
Bài viết này sẽ hướng dẫn cách lập trình hệ thống đo điện năng sử dụng module NodeMCU, đồng thời trình bày cách tạo giao diện hiển thị trên các nền tảng Blynk và Cayenne.
THI CÔNG HỆ THỐNG
The circuit is designed using Proteus 8 software and features a NodeMCU ESP8266 module, a DC power jack, two headers for connecting a UART to RS485 converter, one header for an LCD connection, and two additional headers for interfacing with Pzem-016 and Pzem-017 devices.
Hình 4.1 Sơ đồ mạch in
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 37
Sau khi vẽ PCB xong, tiến hành lập danh sách linh kiện cần sử dụng như bảng dưới:
Bảng 4.1 Danh sách linh kiện sử dụng
Thứ tự Tên linh kiện Số lượng
7 Ổ cắm 2 chấu và 1 công tắc 1
11 Dây điện, ốc vít, dây rút
4.2.2 Sắp xếp linh kiện cho tủ điện
Sử dụng tủ điện vỏ nhựa với kích thước 20x20x11cm
Bên ngoài vỏ tủ bao gồm:
LCD 20x4 được bố trí ở mặt trước vỏ tủ, theo chiều ngang bên trên cách đỉnh tủ 3cm để dễ quan sát và có tính thẩm mỹ
Bên hông phải vỏ tủ là nguồn chính cung cấp cho hệ thống : Bên trên là nguồn AC, bên dưới là nguồn DC
Bên hông trái tủ có một ổ cắm 2 chấu và một công tắc Ổ cắm phía trên được thiết kế cho tải AC, trong khi ổ cắm phía dưới dành cho tải DC Công tắc này dùng để bật/tắt hệ thống.
Bên trong tủ bao gồm:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 38
Mặt trên: Bao gồm mạch điều khiển trung tâm, module chuyển đổi UART sang RS485, mạch nguồn
Mặt dưới: Gồm 2 module đo điện năng Pzem – 017 và Pzem – 016
4.2.3 Lắp ráp và kiểm tra
Sau khi xác định vị trí các linh kiện cần lắp, hãy cố định các module để tránh dịch chuyển trong quá trình lắp đặt và vận chuyển Tiến hành đi dây từ lớp dưới để đảm bảo tính thẩm mỹ và an toàn cho hệ thống.
2 module đo điện năng sau đó đặt lớp trên lên và cố định lại, sau đó đi dây từ domino tới các module
Hình 4.2 Sắp xếp và cố định linh kiện lớp dưới
Hình 4.3 Sắp xếp và cố định linh kiện lớp trên
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 39
ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH
4.3.1 Đóng gói bộ điều khiển
Mô hình thiết kế 2 tầng giúp tối ưu hóa không gian với tầng trên chứa mạch điều khiển và nguồn cung cấp, được lắp đặt trên tấm mica trong kích thước 15x15cm và cố định bằng ốc trụ tròn Tầng dưới bao gồm Module đo điện năng AC và Module đo điện năng DC, được đặt trên tấm sắt để đảm bảo sự ổn định cho tầng trên và vỏ tủ.
Sau khi cố định linh kiện ta tiến hành nối dây như sau:
Hai ngõ ra của domino AC sẽ kết nối với hai ngõ vào của Pzem-016 để cung cấp nguồn cho module hoạt động Đồng thời, hai ngõ ra này cũng được kết nối với tải của hệ thống Cảm biến dòng sẽ được nối vào một trong hai dây của ngõ ra tải; do là nguồn AC, nên có thể chọn bất kỳ dây nào.
Còn ngõ ra domino nguồn DC ta nối cho Pzem – 017, nguồn dương
DC sẽ nối vào nguồn dương của Pzem – 017 và nối ra tải DC, nguồn âm sẽ nối vào nguồn âm của Pzem – 017 và nối đến 1 đầu của trở shunt,
2 đầu Pzem còn lại ta nối đến 2 đầu của điện trở shunt, đầu còn lại của điện trở shunt ta nối đến tải DC
Hình 4.4 Nối dây hệ thống nhìn từ trên xuống
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 40
Hình 4.5 Nối dây hệ thống nhìn từ bên hông
1 Vi xử lý trung tâm module ESP8266
Sau khi hoàn tất việc cố định các linh kiện và kết nối dây cho hệ thống, tiến hành gắn màn hình LCD vào mặt trước của tủ điện để dễ dàng quan sát Tiếp theo, thực hiện đấu nối dây cho khối hiển thị này.
Hình 4.6 Mặt trước LCD gắn với tủ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 41
Hình 4.7 Mặt sau LCD gắn với tủ Để thuận lợi cho việc cấp nguồn AC và DC, nhóm tiến hành đặt hai jack cắm ở bên hông của tủ điện
Hình 4.8 Nguồn cấp cho hệ thống và công tắc bật tắt nguồn, ổ cắm tải
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 42
LẬP TRÌNH HỆ THỐNG
Khai báo thư viện ESP8266 Khai báo thư viên LCD I2C Khai báo thư viện Blynk Khai báo thư viện Modbus RTU Khai báo thư viện Cayenne
Khởi tạo các Port vào ra Khởi tạo LCD, Pzem Khởi tạo Blynk, Cayenne
Xử lý đo điện năng Đ Hiển thị lên LCD
Gửi dữ liệu lên App và Web
Hình 4.9 Lưu đồ thuật toán hệ thống
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 43
Giải thích lưu đồ hệ thống
Khi hệ thống được cấp nguồn, vi điều khiển ESP8266 sẽ khởi động và đọc các thư viện đã được khai báo như ESP8266 WIFI, Cayenne, Blynk, và Modbus Hệ thống sẽ tiến hành khởi tạo các chân vào ra, Pzem, Blynk, Cayenne và module đo điện năng Khi kết nối Wifi được thiết lập, dữ liệu đo sẽ được hiển thị trên LCD và gửi đến Cayenne và Blynk, bao gồm các thông số như điện áp, dòng điện, công suất, tần số, hệ số công suất và năng lượng tiêu thụ.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 44 Đo giá trị điện áp (U) Đo giá trị dòng điện (I) Đo giá trị công suất (P) Đo giá trị điện năng (E)
Xử lý đo điện năng
Kiểm tra địa chỉ của Slave
Và có kết nối Modbus
S Đ Đọc giá trị địa chỉ của Slave Đo giá trị tần số (Hz) Đo giá trị hệ số công suất (Pf)
Hình 4.10 Lưu đồ giải thuật xử lý đo điện năng
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 45
Khi bắt đầu giao tiếp Modbus, địa chỉ của các giá trị đo được gửi đến thiết bị Slave Nếu địa chỉ gửi đi chính xác, Slave sẽ phản hồi và gửi các giá trị đo như điện áp, dòng điện, công suất, hệ số công suất và năng lượng điện về vi điều khiển để xử lý và hiển thị.
4.4.2 Phần mềm lập trình Để lập trình cho ESP8266 ta sẽ sử dụng phần mềm Arrduino IDE (Arduino Intergrated Development Environment) [6] Ngôn ngữ lập trình C/C++ Arduino IDE hoạt động trên 3 nền tảng: Windows, MAC OS và Linux Trước khi cài Arduino IDE thì chúng ta cần cài đặt JRE (Java Runtime Environment) trước vì IDE được viết trên Java
JRE bao gồm các thư viện, JVM và các thành phần cần thiết để chạy ứng dụng Java Đối với người dùng thông thường, việc cài đặt JRE là đủ để sử dụng các ứng dụng Java Desktop.
Link tải: https://stfly.io/JavaSE
Hai phiên bản JRE phổ biến nhất là bản dành cho Windows 32bit (x86) và windows 64bit (x64) được đánh dấu như hình nhớ chọn “Accept License greement”
Sau khi cài đặt xong JRE, bạn hãy truy cập trang chủ Arduino để tải và cài đặt phần mềm từ đường link http://arduino.cc/en/Main/Software/.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 46
Bước 1: Bấm chọn Windows ZIP file for non admin install như hình
Sẽ chuyển đến một trang mời quyền góp tiền để phát triển phần mềm cho Arduino, tiếp tục bấm JUST DOWNLOAD
Tiến hành Download phần mềm
Bước 2: Sau khi Download xong, bấm chọn phải vào file vừa Download và chọn
“Extract here” để giải nén
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 47
Hình 4.14 Giải nén tệp Download
Bước 3: Copy mục vừa giải nén đến nơi lưu trữ
Bước 4: Chạy file trong thư mục giải nén
Hình 4.15 Khởi động phần mềm
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 48
Giao diện lập trình như hình dưới:
Hình 4.16 Giao diện phần mềm
Sau khi việc cài đặt đã hoàn tất thì chúng ta cần cài Driver và thư viện cho phần mềm
Cài Driver cho phần mềm IDE:
Vào file arduino-1.6.4\drivers\dpinst-x86.exe (Windows x86) hoặc arduino-1.6.4\drivers\dpinst-amd64.exe (Windows x64)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 49
Cửa sổ “Device Driver Installation Wizard” hiện ra, chúng ta chọn Next để tiếp tục Khi có yêu cầu xác nhận cài đặt driver, chọn Install để cài đặt
Hình 4.18 Tiến hành cài đặt Driver Đợi khoảng 10 giây trong lúc quá trình cài đặt diễn ra
Bước 1: Khởi động Arduino IDE
Bước 2: Chọn “File ->Preferences” Copy đường link Gán vào ô được tô màu bên dưới :
Link:http://arduino.esp8266.com/stable/package_esp8266com_index.json
Hình 4.19 Cài đặt thư viện ESP8266
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 50
Bước 3: Vào Tools > Board > Boards Manager
Cửa sổ mở lên ta nhập ESP8266 để tải danh mục của các Board về Nhấn Install để tiến hành cài đặt
Hình 4.20 Cài đặt Board ESP8266 cho Arrduino
Cài đặt thư viện Blynk
Click vào Sketch trên thanh công cụ chọn Include Library > Add ZIP library
Hình 4.21 Thêm thư viện Blynk
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 51
Tải thư viện Blynk theo đường link https://github.com/blynkkk/blynk- library
Sau đó, truy cập vào thư mục mà bạn đã lưu thư viện có đuôi ZIP vừa tải xuống và Upload
Nếu Upload thành công thì giao diện sẽ như sau:
Hình 4.22 Thêm vào thành công
Tiến hành kiểm tra thư viện đã cài đặt: Vào File > Examples
Hình 4.23 Kiểm tra thư viện Blynk đã thêm
Và tương tự cho các thư viện mà chúng ta sử dụng cho việc lập trình
Cài đặt Driver CH340 cho ESP8266
Vì ESP8266 sử dụng cho nghiên cứu này là ESP8266 V3 CH340 Nên Driver sẽ cài đặt là CH340 Link tải Driver https://sparks.gogo.co.nz/ch340.html
Bước 1: Sau khi tải về chúng ta tiến hành giải nén và cài đặt
Bước 2: Gắn dây cáp nạp cho ESP8266
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 52
Bước 3: Vào Start và tìm kiếm từ khóa “Device Manager”, cập nhật driver cho ESP8266
4.4.3 Thiết kế Giao diện trên Cayenne Mydevice
Cayenne là một ứng dụng mạnh mẽ dành cho máy tính và điện thoại, được thiết kế đặc biệt cho các ứng dụng IoT Nó cho phép người dùng kiểm soát phần cứng từ xa, hiển thị dữ liệu cảm biến, lưu trữ và phân tích dữ liệu một cách hiệu quả Một số thành phần chính của nền tảng này bao gồm các công cụ hỗ trợ quản lý và giám sát thiết bị IoT.
Cayenne App: Chạy trên các hệ điều hành iOS, Android dùng thiết lập và kiểm soát dự án IoT bằng các kéo thả các Widget từ một ứng dụng
Bảng điều khiển Cayenne Online cho phép người dùng thiết lập và quản lý dự án IoT dễ dàng thông qua trình duyệt Người dùng có thể điều khiển thiết bị trực tiếp từ trang web của Cayenne bằng tài khoản đã đăng ký trước.
Cayenne Cloud: Xử lý và lưu trữ dữ liệu thiết bị, thực hiện lệnh theo điều kiện và cảnh báo
Cayenne Agent cho phép giao tiếp hiệu quả với máy chủ, thực hiện các lệnh đầu vào và xuất kết quả Nó hỗ trợ các lệnh điều khiển, thực hiện lệnh theo điều kiện cụ thể và cung cấp hệ thống cảnh báo.
- Kết nối bằng WiFi và 3G/4G
- Trang tổng quan có thể tùy chỉnh với các tiện ích kéo thả cho các thiết bị kết nối
- Tạo trình kích hoạt và cảnh báo ngưỡng cho thiết bị
Để dễ dàng giám sát một hoặc nhiều thiết bị, bạn cần lập lịch sử sự kiện Bước đầu tiên để tạo giao diện trên Cayenne là tạo tài khoản và đăng nhập vào trang web của Cayenne.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 53
Hình 4.24 Đăng nhập vào trang Web Cayenne Mydevice
Tiếp theo tạo một dự án mới và chọn board ESP8266 và thiết lập:
Hình 4.25 Thiết lập ứng dụng cho Cayenne
Sau khi sao chép các đoạn mã MQTT USERNAME, MQTT PASSWORD và CLIENT ID vào mã chương trình Arduino IDE, hãy kết nối phần cứng để chuyển sang MyDevices Cayenne Tiếp theo, chọn “Add new…” để cấu hình cho ESP8266 Chọn Device/Widget và sau đó lựa chọn các Widget phù hợp để thiết lập cho chương trình giám sát.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 54
Hình 4.26 Cấu hình các dữ liệu cho Cayenne
Hình 4.27 Thiết lập các giá trị cho Cayenne
Hình 4.28 Giao diện hoàn chỉnh của Cayenne
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 55
4.4.4 Thiết kế Giao diện trên App Blynk
Blynk là phần mềm mã nguồn mở chuyên dụng cho ứng dụng IoT, cho phép người dùng điều khiển phần cứng từ xa, hiển thị dữ liệu cảm biến, lưu trữ và biến đổi dữ liệu Để cài đặt ứng dụng Blynk trên nền tảng Android, người dùng cần thực hiện một số bước đơn giản.
Bước 1: Tải ứng dụng Blynk từ CH Play
Hình 4.29 Tạo tài khoản App Blynk
Để bắt đầu làm việc với Blynk, bạn cần đăng ký thông tin tài khoản và nhấn nút Sign Up Sau khi hoàn tất, bạn đã tạo thành công tài khoản của mình.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 56
Hình 4.30 Tạo Project trên App Blynk
Sau khi hoàn thành việc đặt tên và lựa chọn phần cứng giao tiếp, chúng ta nhấn nút "Create" để bắt đầu tạo Project Tiếp theo, Blynk sẽ gửi mã xác nhận truy cập đến tài khoản mà chúng ta đã tạo.
Hình 4.31 Mã xác nhận Token
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 57