Cytron Technologies

Giờ làm việc: 8:00 - 17:00

Thứ 2 - Thứ 6 (trừ ngày lễ)

Hotline 0362917357 

Hướng dẫn Giám sát Điện năng Tiêu thụ Thời gian thực với IRIV IOC MQTT Gateway và Đồng hồ điện Acrel ADL200

Trong các hệ thống quản lý năng lượng (EMS) hoặc nhà thông minh, việc giám sát các thông số điện năng như Công suất (W), Dòng điện (A)Điện áp (V) là vô cùng quan trọng. Đồng hồ điện Acrel ADL200 là thiết bị đo đạc công nghiệp chuẩn xác, sử dụng giao thức Modbus RTU qua cổng RS485.

Bài viết này hướng dẫn quy trình chuyển đổi dữ liệu từ đồng hồ Acrel ADL200 qua cổng giao tiếp RS485 (Modbus RTU), đóng gói thành tin nhắn MQTT JSON bằng IRIV IOC MQTT Gateway, đẩy về Mosquitto MQTT Broker (chạy trên Docker) và kiểm tra hiển thị thời gian thực trên giao diện web lẫn thiết bị di động.

1. TỔNG QUAN KIẾN TRÚC VÀ LUỒNG DỮ LIỆU

Mọi kết nối vận hành hoàn toàn trong mạng nội bộ (Local Network) để đảm bảo tốc độ phản hồi cao và tính bảo mật:

Acrel ADL200 <-RS485-> IRIV IOC MQTT Gateway -> MQTT Broker -> MQTTX Viewer/Mobile App

2. PHẦN 1: CẤU HÌNH IRIV IOC GATEWAY (MODBUS RTU TO MQTT)

Bước 1: Cấu hình thông số đường truyền RS485

Vào giao diện quản trị Web Admin của IRIV IOC MQTT Gateway tại địa chỉ 10.0.0.1 (nếu bạn đang kết nối USB trực tiếp tới thiết bị), hoặc truy cập theo địa chỉ IP của thiết bị (sau khi đã cấu hình và bật Config over Ethernet), sau đó vào Modbus RTU — Link Layer và cấu hình như sau:

  • Baud rate: 9600
  • Parity: None
  • Stop bits: 1
  • Response timeout: 500

Các thông số còn lại để mặc định.

Bước 2: Khai báo MQTT Broker

Vào mục MQTT Settings trên IRIV IOC để kết nối về Mosquitto Broker đang chạy trên Container Docker. Nếu chưa cài đặt Mosquitto, bạn có thể tham khảo hướng dẫn chính thức tại trang chủ hoặc tham khảo các công cụ hỗ trợ như Gemini/ChatGPT.

Thông số (Field)Giá trị cài đặt (Value)Ghi chú (Note)
Enable MQTTEnabledKích hoạt luồng đẩy dữ liệu
Broker Host172.16.10.40Địa chỉ IP của Server Docker
Port1883Cổng MQTT TCP mặc định
Client IDiriv_ioc_gateway_01Định danh duy nhất cho Gateway
Base Topiciriv/F663Tiền tố tự động gán vào trước các Job
Clean SessionEnabledXóa phiên tồn đọng khi tái kết nối

Bước 3: Lập bảng Modbus Poll Jobs

Vào mục Poll Jobs chọn + Add Job để tạo 3 lệnh đọc thanh ghi số thực 32-bit (Float 32-bit) từ đồng hồ Acrel ADL200:

Job IndexNameSlave IDFunction CodeAddressCountData TypeByte OrderScale (Multiplier)UnitTarget Topic
0Voltage1FC3 Holding212482f32ABCD1 (hoặc 0.1 nếu dạng int)Viriv/F663/voltage
1Current1FC3 Holding212502f32ABCD1 (hoặc 0.01 nếu dạng int)Airiv/F663/current
2Power1FC3 Holding212522f32ABCD1 (hoặc 0.001 nếu dạng int)Wiriv/F663/power

Ở đây Cytron đã làm mẫu cho Job lấy thông tin Điện áp (Voltage). Bạn hãy thực hiện cho các trường dữ liệu còn lại.

Định dạng gói tin JSON đẩy về Broker:

JSON

{"name":"Voltage","value":224.5,"unit":"V","status":"success"}

3. PHẦN 2: KIỂM TRA CẬP NHẬT REAL-TIME TRÊN MQTTX WEB (DOCKER)

MQTTX Web giúp bạn theo dõi chi tiết luồng tin nhắn MQTT mà không cần cài đặt phần mềm nặng trên máy tính.

  • Truy cập vào giao diện web của MQTTX Web đang chạy trên docker qua cổng 8080 (cổng mặc định).
  • Nhấp chọn New Connection:
    • Name: Docker Local Monitor
    • Host: ws://172.16.10.40 (hoặc http:// tùy cấu hình container MQTTX Web)
    • Port: 9001 (Cổng WebSocket của Mosquitto Broker, đôi khi có thể là 8083)
    • Bấm Connect.

Sau khi kết nối thành công bạn sẽ thấy màn hình như thế này:

  • Bấm + New Subscription để nhận dữ liệu:
    • Topic: iriv/F663/# (Ký tự # giúp đăng ký nhận toàn bộ các topic con như voltage, current, power).
    • QoS: 0
  • Kết quả: Màn hình console sẽ xuất hiện liên tục các gói tin JSON chứa giá trị Điện áp (V), Dòng điện (A) và Công suất (W) cập nhật thời gian thực theo đúng chu kỳ đọc của Gateway.

4. PHẦN 3 (BONUS): GIÁM SÁT NHANH BẰNG ỨNG DỤNG IOT MQTT PANEL TRÊN ĐIỆN THOẠI

Ứng dụng IoT MQTT Panel (trên Android / iOS) cho phép dựng một Dashboard di động đơn giản để theo dõi nhanh chỉ sau vài bước thiết lập:

Step 1: Kết nối App với Broker

  1. Tải và mở ứng dụng IoT MQTT Panel.
  2. Bấm dấu + để thêm Broker mới:
    • Connection Name: Home Energy
    • Broker Address / IP: 172.16.10.40 (Đảm bảo điện thoại bắt cùng mạng Wi-Fi nội bộ)
    • Port: 9001
  3. Nhấn Save và bấm vào kết nối vừa tạo.

Step 2: Tạo các thẻ hiển thị (Widgets)

  • Tạo thẻ hiển thị Điện áp (Text / Gauge Widget):
    • Widget Type: Chọn Text Log hoặc Gauge.
    • Panel Name: Voltage
    • Topic: iriv/F663/voltage
    • JSON Path: $.value (Ứng dụng sẽ tự trích xuất số liệu trong chuỗi JSON)
    • Unit: V
  • Tạo thẻ hiển thị Dòng điện (Text Widget):
    • Panel Name: Current
    • Topic: iriv/F663/current
    • JSON Path: $.value
    • Unit: A
  • Tạo thẻ hiển thị Công suất (Gauge Widget):
    • Panel Name: Active Power
    • Topic: iriv/F663/power
    • JSON Path: $.value
    • Min / Max Value: 05000
    • Unit: W

Sau khi lưu cấu hình, mở giao diện Dashboard trên điện thoại, bạn sẽ thấy các thông số công suất và điện áp từ đồng hồ Acrel ADL200 tự động nhảy số theo thời gian thực.

TỔNG KẾT VÀ BƯỚC TIẾP THEO

Đến bước này, hệ thống của bạn đã hoàn thành trọn vẹn tầng hạ tầng dữ liệu:

  • Dữ liệu từ thiết bị đo đạc được chuẩn hóa thành dạng JSON thông qua IRIV IOC Gateway.
  • Mosquitto Broker lưu trữ và phân phối luồng dữ liệu mượt mà.
  • Dữ liệu được xác minh tính chính xác thông qua MQTTX Web và ứng dụng di động.

Xen kẽ ở các bài viết tiếp theo:

  • Phần 2: Tích hợp dữ liệu MQTT vào Grafana (thông qua Telegraf/InfluxDB hoặc TimescaleDB) để vẽ biểu đồ phân tích chuyên sâu và truy xuất lịch sử phụ tải.
  • Phần 3: Đưa toàn bộ các entity này vào Home Assistant để thực hiện tự động hóa (Automation) và quản lý năng lượng tập trung.

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận