Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 18

Chương 1.

TỔNG QUAN
1.1 Đặt vấn đề
Đề tài luận án "Giám sát điện năng qua internet" tập trung vào việc sử dụng công nghệ
Internet of Things (IoT) và các thiết bị cảm biến không dây để giám sát và quản lý
điện năng từ xa. Trong bối cảnh tăng giá điện và nhu cầu tiết kiệm năng lượng, việc
này trở nên ngày càng quan trọng. Đề tài đã khảo sát các phương pháp truyền thống
như sử dụng module SIM hoặc phần mềm Acuview, nhưng gặp khó khăn về tin nhắn,
kết nối mạng và chi phí cao. Thay vào đó, đề tài đề xuất sử dụng IoT và kết nối qua
Wi-Fi để giám sát và ghi dữ liệu điện năng từ xa một cách hiệu quả hơn, không bị hạn
chế bởi khoảng cách truyền dữ liệu.
1.2 Mục tiêu
Kết quả cuối cùng của đề tài là xây dựng một hệ thống giám sát điện năng từ xa đo
các thông số về điện năng của nguồn xoay chiều của mạch điện như dòng điện, điện
áp, tần số, công suất và năng lượng tiêu thụ của hai hay nhiều thiết bị điện, bằng cách
truy cập vào trang web, người dùng có thể giám sát từ xa ở mọi nơi mọi lúc.
1.3 Nội dung nghiên cứu
Quá trình thực hiện đồ án thông qua 8 nội dung nghiên cứu sau:
- Nội dung 1: Tìm hiểu và tham khảo các tài liệu, giáo trình, nghiên cứu các chủ đề,
các nội dung liên quan đến đề tài.
- Nôi dung 2: Lập trình giao tiếp với module PZEM004T để đo các thông số điện
năng.
- Nội dung 3: Viết chương trình cho ESP8266 gửi dữ liệu lên Web.
- Nội dung 4: Kết nối mạch phần cứng giữa PZEM004T, ESP8266.
- Nôi dung 5: Thiết kế và thi công mô hình thiết bị hoàn thiện.
- Nôi dung 6: Xây dựng giao diện web giám sát thiết bị.
- Nội dung 7: Chạy thử nghiệm và cân chỉnh hệ thống.
- Nội dung 8: Kết luận và phát triển.
Chương 2. CƠ SỞ LÝ THUYẾT

2.1 Công nghệ IOT


Theo Liên minh Viễn thông Quốc tế, Internet of Things là một cơ sở hạ tầng
toàn cầu đối với xã hội thông tin, cung cấp các dịch vụ tiên tiến bằng cách kết nối các
đối tượng (vật lý hay ảo) thông qua các thông tin và truyền thông công nghệ tương
thích hiện có hoặc phát triển (International Telecommunication Union - ITU, 2012).
2.1.1 Giao thức kết nối
Wifi là giao thức chính được ứng dụng trong nội dung đề tài này
Wifi (là viết tắt từ Wireless Fidelity hay mạng 802.11) là hệ thống mạng không
dây sử dụng sóng vô tuyến, cũng giống như điện thoại di động, truyền hình và radio.
Kết nối Wifi thường là sự lựa chọn hàng đầu của rất nhiều kỹ sư bởi tính thông dụng
và kinh tế của hệ thống wifi và mạng LAN với mô hình kết nối trong một phạm vi địa
lý có giới hạn.
Các sóng vô tuyến sử dụng cho WiFi gần giống với các sóng vô tuyến sử dụng
cho thiết bị cầm tay, điện thoại di động và các thiết bị khác. Nó có thể chuyển và nhận
sóng vô tuyến, chuyển đổi các mã nhị phân 1 và 0 sang sóng vô tuyến và ngược lại.
Tuy nhiên, sóng WiFi có một số khác biệt so với các sóng vô tuyến khác ở chỗ: chúng
truyền và phát tín hiệu ở tần số 2.4 GHz hoặc 5 GHz. Tần số này cao hơn so với các
tần số sử dụng cho điện thoại di động, các thiết bị cầm tay và truyền hình. Tần số cao
hơn cho phép tín hiệu mang theo nhiều dữ liệu hơn.
• Chuẩn: 802.11n
• Dây tần số hoạt động: 2.4GHz and 5GHz bands.
• Khoảng cách: 50m.
• Tốc độ xử lý tối đa: 600 Mbps
Ngoài ra còn có các giao thức khác như Bluetooth, Zigbee, NFC, Sigfox, Neul,
Thread, 6LoWPAN, Z-Wave, Cellular, được sử dụng trong một số ứng dụng của IOT.
2.1.2 Giao thức truyển tải dữ liệu
UART (Universal Asynchronous Receive/Transmit) là bộ thu/phát không đồng
bộ phổ quát là một trong những giao thức nối tiếp sớm nhất và đơn giản nhất để trao
đổi dữ liệu nối tiếp giữa hai thiết bị. Giao thức truyền thông không đồng bộ chỉ sử
dụng hai dây, đó là đường truyền (TX) và đường nhận (RX), để truyền và nhận dữ
liệu.
Các thiết bị được kết nối qua UART giao tiếp bằng cách gửi các bit ở tốc độ
truyền được xác định trước, thường bao gồm các bit bắt đầu, dừng và các bit chẵn lẻ
tùy chọn. Các thiết bị UART không sử dụng tín hiệu đồng hồ dùng chung. Thay vào
đó, họ phải thống nhất về tốc độ truyền và định dạng dữ liệu.
Nhiều nhà phát triển sử dụng UART để kết nối không dây và xử lý máy tính vì
tính dễ cài đặt, giao diện thân thiện với người dùng và giá cả phải chăng.
So sánh giữa các giao thức:

Bảng 2.1 So sánh giữa các giao thức


Chuẩn giao tiếp truyền thông nối tiếp UART trên Arduino (hay còn được biết
đến với tên gọi Serial) là chuẩn giao tiếp được sử dụng rất nhiều trong các ứng dụng
hệ thống nhúng.
Serial là chuẩn giao tiếp truyền thông nối tiếp không đồng bộ, sử dụng UART
(Universal Asynchronous Receiver-Transmitter, một bộ phận phần cứng được tích hợp
bên trong chip ATmega328 của board Arduino Uno) kết hợp với mức logic TTL (mức
điện áp cao tương ứng với 5V hoặc 3.3V và mức điện áp thấp tương ứng với 0V).
UART là tên gọi để chỉ một bộ phận phần cứng dùng để chuyển đổi thông tin
từ thanh ghi chứa nội dung cần trao đổi ra bên ngoài (thông thường có 8 bits) thành 2
dây tín hiệu Serial, phục vụ cho chuẩn giao tiếp Serial chứ không phải là tên gọi của
một chuẩn giao tiếp.
• Baudrate:
Việc truyền 1 bit data sau mỗi 1 micro giây, ta nhận thấy rằng để việc giao tiếp diễn ra
thành công, giữa 2 thiết bị cần có những thống nhất rõ ràng về khoảng thời gian truyền
cho mỗi bit dữ liệu, hay nói cách khác tốc độ truyền cần phải được thống nhất với
nhau. Tốc độ này được gọi là tốc độ baud (baudrate), được định nghĩa là số bit truyền
trong mỗi giây. Ví dụ, nếu tốc độ baud được sử dụng là 9600, có nghĩa thời gian
truyền cho 1 bit là 1/9600 = 104.167 micro giây.
• Khung truyền (frame):
Bên cạnh tốc độ baud, khung truyền đối với chuẩn giao tiếp Serial cũng hết sức quan
trọng để đảm bảo việc truyền nhận được diễn ra chính xác. Khung truyền quy định về
số lượng bit truyền trong mỗi lần truyền, bao gồm start bit, các bit data stop bits, ngoài
ra còn có thể có parity bit (kiểm tra lỗi dữ liệu trong quá trình truyền nhận).

Hình 2.0.1 Ví dụ về khung truyền, bao gồm 1 bit start, 8 bits data
và cuối cùng là 1 bit stop.
• Start bit
Đây là bit đầu tiên được truyền vào khung truyền, có chức năng thông báo cho thiết bị
nhận biết đang có một chuỗi dữ liệu sắp truyền đến. Đối với các dòng AVR nói chung
và UnoX nói riêng, ở trạng thái chưa có dữ liệu (Idle) đường truyền luôn kéo lên mức
cao. Khi có dữ liệu mới, đường truyền được kéo xuống mức thấp, do đó start bit sẽ
được quy định là mức 0.
• Dữ liệu (data)
Dữ liệu cần truyền thông thường gồm 8 bits, tuy nhiên chúng ta hoàn toàn có thể tùy
chỉnh số lượng bit data cho một gói tin, có thể là 5, 6, 7, 9… Trong quá trình truyền,
bit có trọng số thấp nhất (LSB) sẽ được truyền trước, và cuối cùng sẽ là bit có trọng số
cao nhất (MSB).
• Stop bits
Stop bits là một hoặc nhiều bit có chức năng thông báo cho thiết bị nhận biết rằng một
gói dữ liệu đã được gởi xong. Đây là bit quan trọng, cần phải có trong một khung
truyền. Giá trị của các stop bit luôn bằng mức Idle (mức nghỉ) và ngược với giá trị của
start bit. Đối với các dòng vi điều khiển AVR các bit kết thúc này luôn là mức cao.
• Sử dụng chuẩn giao tiếp Serial với boad Arduino Uno
Giao tiếp Serial giữa 2 thiết bị với nhau thông thường sẽ có 2 dây tín hiệu, đó là TX
(Transmitter) có chức năng truyền tải dữ liệu và RX (Receiver) có chức năng thu nhận
dữ liệu. 2 dây tín hiệu này được kết nối chéo nhau giữa 2 thiết bị. Cụ thể, TX của thiết
bị 1 kết nối với RX của thiết bị 2 và RX của thiết bị 1 kết nối với TX của thiết bị 2.
Điều đặc biệt của Serial đó là quá trình truyền và quá trình nhận dữ liệu được diễn ra
hoàn toàn độc lập với nhau.

Hình 2.0.2 Kết nối UART giữa hai vi điều khiển


Board Arduino đều được hỗ trợ sẵn 1 hoặc nhiều cổng giao tiếp Serial. Đối với board
Arduino Uno, cổng Serial được ra chân tại vị trí chân số 1 và chân số 0 trên board),
đây được gọi là Hardware Serial, tức là giao tiếp Serial dựa trên phần cứng (có sử
dụng UART). Ngoài ra, đối với các vi điều khiển không hỗ trợ UART hoặc trong
trường hợp muốn mở rộng nhiều cổng Serial để giao tiếp với nhiều thiết bị có hỗ trợ
giao tiếp Serial, ta hoàn toàn có thể giả lập giao tiếp Serial bằng thư viện cho Arduino
có tên là SoftwareSerial

2.2 Giới thiệu phần cứng


2.2.1 Kit phát triển Wifi ESP8266 NodeMCU Lua V3 CH340
Kit phát triển Wifi ESP8266 NodeMCU Lua V3 CH340 Development Board là
phiên bản NodeMCU sử dụng IC nạp CH340 từ Lolin với bộ xử lý trung tâm là
module Wifi SoC ESP8266, kit có thiết kế dễ sử dụng và đặc biệt là có thể sử dụng
trực tiếp trình biên dịch của Arduino để lập trình và nạp code, điều này khiến việc sử
dụng và lập trình các ứng dụng trên ESP8266 trở nên rất đơn giản.
Kit phát triển Wifi ESP8266 NodeMCU Lua V3 CH340 Development Board
được dùng cho các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng
Wifi, đặc biệt là các ứng dụng liên quan đến IoT.

Hình 2.3 Arduino NodeMcu Lua WIFI V3 CH340

Thông số kỹ thuật:
 IC chính: ESP8266 Wifi SoC.
 Phiên bản firmware: NodeMCU Lua.
 Chip nạp và giao tiếp UART: CH340
 GPIO tương thích hoàn toàn với firmware Node MCU.
 Cấp nguồn: 5VDC MicroUSB hoặc Vin.
 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 hoàn toàn với trình biên dịch Arduino.
 Kích thước: 59 x 32mm.
 Wifi chuẩn: Wireless 802.11 b / g / n.
 03 chế độ: STA / AP / STA + AP.
 Hỗ trợ: ADC, PWM, Cập nhật FW từ xa (OTA), Smart Networking.
 Dòng điện tiêu thụ: ≈70mA (200mA MAX), Standby: <200uA.
 Hỗ trợ UART: 110 – 460800bps.
 Nhiệt độ hoạt động: - 40 ℃ ~ + 125 ℃.
Hình 2.4 Sơ đồ chân Arduino NodeMcu Lua WIFI V3 CH340

 Tất cả các GPIO đều có trở kéo lên nguồn bên trong (ngoại trừ GPIO16 có trở
kéo xuống GND). Người dùng có thể cấu hình kích hoạt hoặc không kích hoạt
trở kéo này.
 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 2 chân GPIO
này.
 GPIO0, GPIO2, GPIO15: đây là các chân có nhiệm vụ cấu hình mode cho
ESP8266 điều khiển quá trình nạp code nên bên trong NodeMCU (có tên gọi là
strapping pins) có các trở kéo để định sẵn mức logic cho chúng như sau:
GPIO0: HIGH, GPIO2: HIGH, GPIO15: LOW. Vì vậy khi muốn sử dụng các
chân này ở vai trò GPIO cần phải thiết kế một nguyên lý riêng để tránh xung
đột đến quá trình nạp code. Các bạn có thể tham khảo nguyên lý thiết kế mạch
 GPIO9, GPIO10: hai chân này được dùng để giao tiếp với External Flash của
ESP8266 vì vậy cũng không thể dùng được (đã test thực nghiệm).
 Như vậy, các GPIO còn lại: GPIO 4, 5, 12, 13, 14, 16 có thể sử dụng bình
thường.
Sơ đồ nguyên lý

Hình 2.5 Sơ đồ nguyên lý Module WIFI ESP8266 CH340

2.2.2 Modune PZEM004T

Hình 2.6 Modune PZEM004T


a. Chức năng
 Chức năng đo các thông số điện (điện áp, dòng điện, công suất hoạt động, năng
lượng).
 Chức năng báo động quá tải (trên ngưỡng báo động điện, đèn flash nguồn và còi
kêu bịp báo động).
 Chức năng cài đặt ngưỡng báo động nguồn (có thể đặt ngưỡng cảnh báo nguồn).
 Chức năng cài đặt lại của phím năng lượng.
 Lưu trữ dữ liệu khi tắt nguồn (lưu trữ năng lượng tích lũy trước khi tắt nguồn).
 Chức năng hiển thị số màu đỏ (hiển thị điện áp, dòng điện, công suất hoạt động,
năng lượng).
 Chức năng giao tiếp nối tiếp (với giao tiếp TTL, nó có thể giao tiếp với một loạt
các thiết bị đầu cuối thông qua các chân, đọc và thiết lập thông số).

b. Màn hình và phím bấm


 Giao diện hiển thị
Giao diện hiển thị được chia thành bốn phần bởi số màu đỏ, được sử dụng để hiển thị
thông số điện áp, dòng điện, công suất, năng lượng.
 Định dạng hiển thị
 Công suất: Phạm vi kiểm tra: 0~22kW
Trong khoảng 0 ~ 10kW, định dạng hiển thị là 0,000 ~ 9,999;
Trong khoảng 10~22kW, định dạng hiển thị là 10-22,00.
 Điện năng: Khoảng đo: 0~9999kWh
Trong khoảng 0 ~ 10kWh, định dạng hiển thị là 0,000~9,999;
Trong khoảng 10~100kWh, định dạng hiển thị là 10.00~99,99; Trong phạm vi 100 ~
1000kWh, định dạng hiển thị là 100.0~999.9;
1000~9999kWh trở lên, định dạng hiển thị là 1000 ~ 9999.
 Điện áp: phạm vi kiểm tra: 80 ~ 260VAC
Định dạng hiển thị là 110.0 ~ 220.0.
 Dòng điện: Phạm vi kiểm tra: 0~100A
Định dạng hiển thị là 00,00 ~ 99,99.
 Phím
Có một phím trên bảng điều khiển, nó có thể được sử dụng để thiết lập lại năng
lượng.
Phương pháp thiết lập lại năng lượng: Nhấn và giữ phím trong 5 giây cho đến
khi màn hình nhấp nháy thì nhả phím. Nhấn nhanh phím một lần nữa, sau đó dữ liệu
năng lượng được xóa và thoát khỏi trạng thái nhấp nháy, bây giờ hoạt động Reset
được hoàn thành; nếu nhấn lâu trong 5 giây nữa cho đến khi không còn nhấp nháy
nữa, có nghĩa là thoát trạng thái đặt lại.
c. Sơ đồ khối

Hình 2.7 Sơ đồ khối của Modune PZEM-004T-100A

Hình 2.8 Sơ đồ khối của Modune PZEM-004T-10A

Hệ thống được chia thành hai phần: dòng điện và điện áp cho phép đặt vào thiết
bị đầu vào và các dây giao tiếp nối tiếp, theo nhu cầu thực tế của khách hàng, với chân
TTL khác nhau hoàn toàn giao tiếp các thiết bị khác nhau.
d. Giao diện màn hình hiển thị
Màn hình chia làm 4 vị trí hiển thị, đó là điện áp, dòng điện, năng lượng và công
suất. Sau đây là mô tả ngắn gọn về từng thông số hiển thị:
 Màn hình hiển thị điện áp
Đo và hiển thị điện áp lưới điện tần số công nghiệp tại thời điểm hiện tại.
 Màn hình hiển thị dòng điện
Đo và hiển thị dòng điện tải, sử dụng cho dòng điện từ 10mA trở lên.
 Màn hình hiển thị điện năng
Đo và hiển thị điện năng tiêu thụ hiện tại. Có hướng dẫn bổ sung rằng đơn vị đo năng
lượng tối thiểu là 0,001kWh, độ phân giải khá cao, đối với thử nghiệm tải điện năng
thấp (trong 100W), có thể quan sát quá trình tích lũy trực tiếp.
 Màn hình hiển thị công suất
Đo và hiển thị công suất tải hiện tại, dùng cho công suất cao từ 1 W trở lên.
e. Giao tiếp
Module này được trang bị giao diện truyền dữ liệu nối tiếp TTL, đọc và thiết lập các
thông số liên quan thông qua cổng giao tiếp.
No Function Head Data1 - Data5 Sum
1a Voltage Req B0 C0 A8 01 01 00 (Computer sends a 1A
request to read the voltage value)
1b Voltage Resp A0 00 E6 02 00 00 (Meter reply the voltage 88
value is 230.2V)
2a Voltage Resp B1 C0 A8 01 01 00 (Computer sends a 1B
request to read the current value)
2b Current Resp A1 00 11 20 00 00 (Meter reply the current D2
value is 17.32A)
3a Active power Req B2 C0 A8 01 01 00 (Computer sends a 1C
request to read the active power value)
3b Active power Resp A2 08 98 00 00 00 (Meter reply the active 42
power value is 2200w)

4a Read energy Req B3 C0 A8 01 01 00 (Computer sends a 1D


request to read the energy value)
4b Read energy Resp A3 01 86 9f 00 00 (Meter reply the energy C9
value is 99999wh)
5a Set the module B4 C0 A8 01 01 00 (Computer sends a 1E
address Req request to set the address, the address is
192.168.1.1)
5b Set the module A4 00 00 00 00 00 (Meter reply the address A4
address resp was successfully set)
6a Set the power alarm B5 C0 A8 01 01 14 (computer sends a 33
threshold Req request to set a power alarm threshold)
6b Set the power alarm A5 00 00 00 00 00 (Meter reply the power A5
threshold Resp alarm threshold was successfully set)
Bảng 2.2 Sơ đồ khối của Modune PZEM-004T-10A
f. Thông số kỹ thuật
 Điện áp đo và hoạt động: 80 ~ 260VAC / 50 – 60Hz, sai số 0.01
 Dòng điện đo và hoạt động: 0 ~ 100A, sai số 0.01
 Công suất đo và hoạt động: 0 ~ 26000W
 Năng lượng đo và hoạt động: 0~9999kWh.
 Giao tiếp UART mức logic TTL 5VDC baudrate mặc định 9600, 8, 1.
 Có opto cách ly an toàn giữa mạch đo và mạch nhận tín hiệu UART.
 Lưu giữ thông số năng lượng tiêu thụ trong bộ nhớ.
 Có nút Reset, nhấn giữ 5 giây để xóa các thông số về 0.
 Kích thước: 30 x 75 mm

2.3 Giới thiệu phần mềm


2.3.1 Ứng dụng Blynk
Blynk là một nền tảng với các ứng dụng điện thoại thông minh cho phép tương tác
dễ dàng với bộ vi điều khiển như: Arduino, Esp8266, Esp32 hoặc Raspberry qua
Internet.
Blynk App là một bảng điều khiển kỹ thuật số cho phép xây dựng giao diện đồ họa
cho dự án bằng cách kéo và thả các widget khác nhau mà nhà cung cấp thiết kế sẵn.
Blynk không bị ràng buộc với một số bo hoặc shield cụ thể. Thay vào đó, nó hỗ trợ
phần cứng đã lựa chọn. Cho dù Arduino hoặc Raspberry Pi được liên kết với Internet
qua Wi-Fi, Ethernet hoặc chip ESP8266, Blynk sẽ giúp kết nối và sẵn sàng cho các dự
án IoT.
Blynk Server – chịu trách nhiệm về tất cả các giao tiếp giữa điện thoại thông minh
và phần cứng. Có thể sử dụng Blynk Cloud hoặc chạy cục bộ máy chủ Blynk riêng
của mình. Nó là mã nguồn mở, có thể dễ dàng xử lý hàng nghìn thiết bị và thậm chí có
thể được khởi chạy trên Raspberry Pi.
Thư viện Blynk – dành cho tất cả các nền tảng phần cứng phổ biến – cho phép
giao tiếp với máy chủ và xử lý tất cả các lệnh đến và lệnh đi.
Mỗi khi nhấn một nút trong ứng dụng Blynk, thông điệp sẽ truyền đến không gian
của đám mây Blynk, và tìm đường đến phần cứng.
Mọi thứ cần để xây dựng và quản lý phần cứng được kết nối: cung cấp thiết bị,
hiển thị dữ liệu cảm biến, điều khiển từ xa với các ứng dụng web và di động, cập nhật
chương trình cơ sở qua mạng, bảo mật, phân tích dữ liệu, quản lý người dùng và truy
cập, cảnh báo, tự động hóa và nhiều thứ khác hơn…
Đặc tính
 API và giao diện người dùng tương tự cho tất cả phần cứng và thiết bị được hỗ
trợ
 Kết nối với đám mây bằng cách sử dụng:
o Wifi
o Bluetooth và BLE
o Ethernet
o USB (Nối tiếp)
o GSM
o …
 Bộ Widget dễ sử dụng
 Thao tác ghim trực tiếp mà không cần viết mã
 Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng ghim ảo
 Theo dõi dữ liệu lịch sử qua tiện ích SuperChart
 Giao tiếp giữa thiết bị với thiết bị sử dụng Bridge Widget
 Gửi email, tweet, push notification…
Các tính năng mới liên tục được bổ sung!

Nền tảng Blynk có ba phần chính:


 Blynk App: ứng dụng Blynk cho phép khởi tạo giao diện cho các dự án.
 Blynk Server: chịu trách nhiệm giao tiếp qua lại hai chiều giữa điện thoại và
phần cứng.
 Blynk Library: chứa các thư viện phổ biến, giúp việc giao tiếp phần cứng với
Server dễ dàng hơn.

Bảng 2.9 Ứng dụng Blynk


2.3.2 Arduino IDE (Integrated de Environment)
Arduino IDE là một phần mềm mã nguồn mở chủ yếu được sử dụng để viết và
biên dịch mã vào module Arduino.
Đây là một phần mềm Arduino chính thức, giúp cho việc biên dịch mã trở nên dễ
dàng mà ngay cả một người bình thường không có kiến thức kỹ thuật cũng có thể làm
được.
Nó có các phiên bản cho các hệ điều hành như MAC, Windows, Linux và chạy
trên nền tảng Java đi kèm với các chức năng và lệnh có sẵn đóng vai trò quan trọng để
gỡ lỗi, chỉnh sửa và biên dịch mã trong môi trường.
Có rất nhiều các module Arduino như Arduino Uno, Arduino Mega, Arduino
Leonardo, Arduino Micro và nhiều module khác.
Mỗi module chứa một bộ vi điều khiển trên bo mạch được lập trình và chấp nhận
thông tin dưới dạng mã.
Mã chính, còn được gọi là sketch, được tạo trên nền tảng IDE sẽ tạo ra một file
Hex, sau đó được chuyển và tải lên trong bộ điều khiển trên bo.
Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình biên dịch,
phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử dụng để biên dịch và
tải mã lên module Arduino.
Môi trường này hỗ trợ cả ngôn ngữ C và C ++.

Bảng 2.10 Ứng dụng Adruino IDE


Chương 3. THIẾT KẾ VÀ THỰC HIỆN HỆ THỐNG

3.1 Sơ đồ kết nối toàn mạch

Bảng 3.0.1 Sơ đồ kết nối toàn mạch

Trong Hình 3.1, các chân tín hiệu của các linh kiện được đánh cùng số thứ tự sẽ được
kết nối bằng một dây dẫn điện với nhau. Cụ thể:
(1) Chân RX của PZEM004T nối với chân D2 của ESP8266 NodeMCU.
(2) Chân TX của PZEM004T nối với chân D1 của ESP8266 Node MCU.
(3) Chân VCC của PZEM004T nối với 3V của ESP8266 Node MCU.
(4) Chân GND của PZEM004T và chân GND của ESP8266 nối với cực âm GND của
nguồn.
(5) Chân Vin của ESP8266 nối với cực dương 5 V nguồn.
3.2 Sơ đồ khối hệ thống và lưu đồ giải thuật
3.2.1 Sơ đồ khối hệ thống

Bảng 3.0.2 Sơ đồ khối hệ thống giám sát

Thiết bị PZEM004T sẽ đọc các giá trị điện áp và dòng điện đo được từ hệ
thống, chuyển đổi thành chuỗi dữ liệu UART thông qua giao thức TTL (transistor-
transistor logic) độ trể dữ liệu là 5 ms và truyền đến phần xử lý Esp8266 NodeMCU.
Từ đó, dữ liệu được gửi lên mạng internet truyền đến máy chủ Blynk. Qua đó, các
thiết bị điện thoại thông minh có thể truy cập vào ứng dụng Blynk để xem các thông
số và trạng thái mà thiết bị đo được.
3.2.2 Lưu đồ giải thuật
Chương trình điều khiển cho hệ thống giám sát điện năng từ xa được xây dựng
dựa trên lưu đồ giải thuật như Hình 3.3.
Trước tiên, các đầu đo điện áp và biến dòng được kết nối vào hệ thống cần đo
và mô hình giám sát điện năng sẽ hoạt động khi được cấp nguồn. Sau đó, ESP8266
NodeMCU kiểm tra kết nối wifi, nếu wifi không kết nối được thì quá trình kết thúc;
ngược lại nếu kết nối được thì PZEM004T bắt đầu đọc số liệu từ biến dòng và các
điểm nhận điện áp thông qua biến áp cách ly được đặt sẵn trong PZEM004T. Bộ ADC
sẽ chuyển những tín hiệu thu được thành tín hiệu nhị phân và đóng thành các gói dữ
liệu theo chuẩn giao tiếp UART, tiếp theo xuất dữ liệu sang ESP8266 NodeMCU theo
tín hiệu dữ liệu không đồng bộ nối tiếp. Khi đó, ESP8266 NodeMCU sẽ tính toán theo
code lập trình và gửi lên server Blynk.
Ứng dụng Blynk sẽ hiển thị thông qua các dạng hiển thị số liệu ứng dụng được
tích hợp.
Bảng 3.3 Sơ đồ chương trình kết nối PZEM004T và ESP8266
Chương 4. KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN

You might also like