Skip to main content

AI-POWERED DOCS

What do you want to know?

Thiết Lập Giao Tiếp MQTT

Hướng dẫn này chỉ cho bạn cách cấu hình giao tiếp MQTT giữa camera OV20i và các thiết bị bên ngoài bằng Node-RED. MQTT cho phép truyền tin nhắn nhẹ, đáng tin cậy cho các ứng dụng IoT và giao tiếp thiết bị từ xa.

Khi Nào Sử Dụng Giao Tiếp MQTT: Tích hợp thiết bị IoT, hệ thống giám sát từ xa, mô hình tin nhắn publish/subscribe, môi trường băng thông thấp, mạng cảm biến phân tán, hoặc khi bạn cần truyền tin nhắn đáng tin cậy với khả năng tự động kết nối lại.

Điều Kiện Tiên Quyết

  • Hệ thống camera OV20i đã được thiết lập và kết nối
  • Kết nối mạng giữa camera và MQTT broker
  • MQTT broker khả dụng (cục bộ hoặc dựa trên đám mây)
  • Hiểu biết cơ bản về các khái niệm MQTT (topics, publish/subscribe)
  • Recipe đang hoạt động đã được cấu hình trên camera

Tổng Quan Về Giao Tiếp MQTT

Các Khái Niệm Chính Của MQTT:

  • Broker: Máy chủ trung tâm định tuyến tin nhắn giữa các client
  • Topics: Danh mục tin nhắn (ví dụ: "camera/status", "commands/trigger")
  • Publish: Gửi tin nhắn đến một topic
  • Subscribe: Nhận tin nhắn từ một topic
  • QoS: Các mức Quality of Service (0, 1, 2)

Bước 1: Xác Minh Cấu Hình Mạng

1.1 Kiểm Tra Cài Đặt Mạng Của Camera

  1. Điều hướng đến System Settings
  2. Ghi chú địa chỉ IP của camera (ví dụ: 192.168.0.100)
  3. Xác minh kết nối mạng đến MQTT broker

1.2 Yêu Cầu Đối Với MQTT Broker

Đảm bảo khả năng truy cập MQTT broker:

  • Cùng mạng: Camera phải có thể tiếp cận địa chỉ IP của broker
  • Truy cập cổng: Cổng MQTT mặc định 1883 (hoặc 8883 cho TLS)
  • Xác thực: Tên người dùng/mật khẩu nếu broker yêu cầu
  • Tường lửa: Cho phép lưu lượng MQTT trên các cổng cần thiết

1.3 Yêu Cầu Mạng

Thành PhầnĐịa Chỉ IPCổngGhi Chú
Camera192.168.0.100N/APhải tiếp cận được broker
MQTT Broker192.168.0.2001883Cổng MQTT chuẩn
Thiết Bị Client192.168.0.xxxThay đổiBất kỳ thiết bị nào subscribe

Bước 2: Truy Cập Trình Chỉnh Sửa Node-RED

2.1 Điều Hướng Đến IO Block

  1. Mở recipe đang hoạt động trong Recipe Editor
  2. Nhấp vào Configure IO hoặc chọn IO Block trong menu breadcrumb để vào trình chỉnh sửa Node-RED

2.2 Xác Minh Các Node MQTT Khả Dụng

Kiểm tra bảng palette Node-RED cho các node MQTT:

  • mqtt in - Subscribe vào các topic MQTT
  • mqtt out - Publish đến các topic MQTT

Điểm Kiểm Tra: Bạn sẽ thấy các node MQTT trong phần Network của bảng điều khiển bên trái.

Bước 3: Cấu Hình Kết Nối MQTT Broker

3.1 Thêm Cấu Hình MQTT Broker

  1. Kéo node "mqtt in" vào canvas (cho thiết lập ban đầu)
  2. Nhấp đúp vào node để mở cấu hình
  3. Nhấp vào biểu tượng bút chì bên cạnh trường Server
  4. Nhấp vào "Add new mqtt-broker"

3.2 Cấu Hình Cài Đặt Broker

Cấu Hình Broker Cơ Bản:

Cài ĐặtGiá TrịMô Tả
NameCamera MQTT BrokerMã định danh mô tả
Server192.168.0.200Địa chỉ IP của MQTT broker
Port1883Cổng MQTT chuẩn
ProtocolMQTT V3.1.1Phiên bản được khuyến nghị
Client ID(tự động tạo)Để trống để tự động

3.3 Cài Đặt Xác Thực (Nếu Cần)

Nếu broker yêu cầu xác thực:

Cài ĐặtMô Tả
UsernameTên người dùng MQTT broker
PasswordMật khẩu MQTT broker
Use TLSBật để kết nối bảo mật (port 8883)

3.4 Cài Đặt Nâng Cao

Tùy Chọn Kết Nối:

Cài ĐặtGiá Trị Khuyến NghịMô Tả
Keep Alive60 giâyKhoảng thời gian heartbeat
Clean SessionTrueBắt đầu mới mỗi lần kết nối
Auto ConnectTrueTự động kết nối lại

3.5 Lưu Cấu Hình Broker

  1. Nhấp "Add" để lưu cài đặt broker
  2. Nhấp "Done" để đóng cấu hình node
  3. Cấu hình broker hiện đã sẵn sàng cho tất cả các node MQTT

Bước 4: Cấu Hình MQTT Input (Subscribe)

4.1 Thiết Lập Node MQTT In

  1. Chọn node "mqtt in" bạn đã thêm
  2. Nhấp đúp để cấu hình
  3. Cấu hình cài đặt đăng ký:

4.2 Cấu Hình MQTT In

Cài Đặt Subscription:

Cài ĐặtGiá Trị Ví DụMô Tả
ServerCamera MQTT BrokerChọn broker đã cấu hình
Topiccamera/commandsTopic để đăng ký
QoS0Chất lượng phân phối tin nhắn
Outputauto-detectĐịnh dạng tin nhắn
NameCommand ListenerĐịnh danh node

4.3 Quy Ước Đặt Tên Topic

Cấu trúc topic khuyến nghị:

Mục ĐíchVí Dụ TopicCách Sử Dụng
Commandscamera/commandsNhận lệnh điều khiển
Status requestscamera/status/requestYêu cầu thông tin trạng thái
Configurationcamera/configThay đổi cấu hình

4.4 Cấu Hình Xử Lý Tin Nhắn

  1. Thêm node "debug" để giám sát các tin nhắn đến
  2. Kết nối: MQTT In → Debug
  3. Cấu hình node debug để hiển thị tin nhắn hoàn chỉnh

Bước 5: Cấu Hình MQTT Output (Publish)

5.1 Thêm Node MQTT Out

  1. Kéo node "mqtt out" vào canvas
  2. Nhấp đúp để cấu hình
  3. Chọn cùng cấu hình broker

5.2 Cấu Hình MQTT Out

Cài Đặt Publishing:

Cài ĐặtGiá Trị Ví DụMô Tả
ServerCamera MQTT BrokerCùng broker với input
Topiccamera/responsesTopic cho phản hồi của camera
QoS0Chất lượng phân phối tin nhắn
RetainFalseKhông lưu tin nhắn cuối
NameResponse PublisherĐịnh danh node

5.3 Cấu Trúc Topic Phản Hồi

Các topic phản hồi khuyến nghị:

Loại Phản HồiVí Dụ TopicCách Sử Dụng
Status updatescamera/statusThông tin trạng thái camera
Resultscamera/resultsKết quả kiểm tra
Acknowledgmentscamera/ackXác nhận lệnh

Bước 6: Tạo Luồng Giao Tiếp Cơ Bản

6.1 Xây Dựng Luồng Tin Nhắn Đi

Tạo luồng để publish tin nhắn từ camera:

  1. Thêm node "inject" để kích hoạt tin nhắn
  2. Thêm node "function" để định dạng tin nhắn
  3. Thêm node "mqtt out" để publish
  4. Kết nối: Inject → Function → MQTT Out

6.2 Xây Dựng Luồng Tin Nhắn Đến

Tạo một luồng riêng để nhận tin nhắn:

  1. Thêm node "mqtt in" để subscribe
  2. Thêm node "debug" để giám sát
  3. Kết nối: MQTT In → Debug

6.3 Cấu Hình Inject Node

  1. Nhấn đúp vào inject node
  2. Cấu hình các thiết lập:
    • Name: "Send Test Message"
    • Payload: Timestamp
    • Topic: (để trống)
  3. Nhấn "Done"

6.4 Cấu Hình Function Node

Định dạng message đơn giản:

// Format outgoing message
msg.topic = "camera/status";
msg.payload = "Camera online - " + new Date().toISOString();
return msg;

  1. Nhấn đúp vào function node
  2. Sao chép đoạn mã trên vào tab "On Message"
  3. Name: "Format Message"
  4. Nhấn "Done"

6.5 Cấu Hình MQTT Out Node

  1. Nhấn đúp vào mqtt out node
  2. Chọn broker: Camera MQTT Broker (đã cấu hình trước đó)
  3. Topic: (để trống - được thiết lập bởi function node)
  4. Name: "Publish Status"
  5. Nhấn "Done"

6.6 Cấu Hình MQTT In Node

  1. Nhấn đúp vào mqtt in node
  2. Chọn broker: Camera MQTT Broker
  3. Topic: camera/commands
  4. Name: "Command Listener"
  5. Nhấn "Done"

6.7 Cấu Hình Debug Node

  1. Nhấn đúp vào debug node
  2. Output: Complete msg object
  3. Name: "Incoming Messages"
  4. Nhấn "Done"

6.8 Cấu Trúc Flow Hoàn Chỉnh

Flow hoàn chỉnh của bạn sẽ là:

Gửi đi: Inject → Function → MQTT Out Nhận vào: MQTT In → Debug

Bước 7: Triển Khai và Kiểm Tra Cấu Hình

7.1 Triển Khai Flow

  1. Nhấn nút "Deploy" (góc trên bên phải)
  2. Xác minh thông báo triển khai thành công
  3. Kiểm tra chỉ báo trạng thái node:
    • Chấm xanh lá: Đã kết nối với broker
    • Chấm đỏ: Kết nối thất bại
    • Chấm vàng: Đang kết nối

7.2 Kiểm Tra Truyền Thông Nội Bộ

Kiểm tra việc publish MQTT của camera:

  1. Nhấn nút inject để gửi test message
  2. Xác minh MQTT Out node hiển thị hoạt động
  3. Kiểm tra bảng debug nếu bạn có message từ bên ngoài

7.3 Kiểm Tra Bên Ngoài (Tùy Chọn)

Kiểm tra với MQTT client bên ngoài để gửi lệnh đến camera:

Sử dụng công cụ dòng lệnh:

# Send a test command to the camera
mosquitto_pub -h 192.168.0.100 -t "camera/commands" -m "test_command"

Kết quả mong đợi: Debug node sẽ hiển thị message đến trong bảng debug của Node-RED.

7.4 Xác Minh Truyền Thông

Kiểm tra các khía cạnh sau:

Kiểm TraKết Quả Mong ĐợiTrạng Thái
Kết nối brokerTrạng thái xanh trên các MQTT node
Publish messageInject kích hoạt MQTT Out thành công
Nhận messageDebug hiển thị message từ bên ngoài
Kết nối lạiTự động kết nối lại sau khi mạng bị gián đoạn

Bước 8: Xử Lý Sự Cố MQTT

8.1 Vấn Đề Kết Nối

Vấn ĐềTriệu ChứngGiải Pháp
Không thể kết nối đến brokerChỉ báo trạng thái đỏKiểm tra IP và port của broker
Xác thực thất bạiKết nối bị từ chốiXác minh username/password
Hết thời gian mạngTrạng thái đang kết nối màu vàngKiểm tra kết nối mạng
Firewall chặnKhông có nỗ lực kết nốiMở các cổng MQTT

8.2 Vấn Đề Message

Vấn ĐềTriệu ChứngGiải Pháp
Không nhận được messageDebug không hiển thị gìKiểm tra đăng ký topic
Message không được publishClient bên ngoài không thấy gìXác minh các topic publish
Lỗi định dạng messagePhân tích cú pháp thất bạiSử dụng message văn bản đơn giản
Mất messageGửi gián đoạnKiểm tra kết nối broker

8.3 Vấn Đề Hiệu Suất

Vấn ĐềTriệu ChứngGiải Pháp
Độ trễ caoTin nhắn được gửi chậm trễKiểm tra hiệu suất broker
Mất kết nốiKết nối lại thường xuyênĐiều chỉnh cài đặt keep-alive
Tràn tin nhắnBroker quá tảiTriển khai điều tiết tin nhắn

8.4 Kỹ Thuật Debug

Khắc phục sự cố có hệ thống:

  1. Kiểm tra trạng thái kết nối broker trong Node-RED
  2. Giám sát bảng debug của Node-RED để theo dõi luồng tin nhắn
  3. Sử dụng tin nhắn văn bản đơn giản trước khi dùng dữ liệu phức tạp
  4. Xác minh kết nối mạng bằng ping
  5. Kiểm tra với các topic cơ bản trước khi triển khai luồng nâng cao

Thành Công! Hệ Thống Giao Tiếp MQTT Của Bạn Đã Sẵn Sàng

Hệ thống giao tiếp MQTT của bạn hiện có thể:

  • Kết nối đến MQTT broker với xác thực phù hợp
  • Đăng ký (Subscribe) các topic để nhận lệnh và dữ liệu
  • Xuất bản (Publish) tin nhắn để cập nhật trạng thái và phản hồi
  • Xử lý định dạng tin nhắn JSON cho giao tiếp có cấu trúc
  • Tự động kết nối lại sau khi gián đoạn mạng
  • Hỗ trợ nhiều cấp QoS cho các mức độ ưu tiên tin nhắn khác nhau

Bảo Trì Liên Tục

Kiểm Tra Hệ Thống Định Kỳ

  • Giám sát trạng thái kết nối broker trong Node-RED
  • Xác minh việc gửi tin nhắn bằng tin nhắn kiểm tra
  • Kiểm tra log của broker để phát hiện các mẫu lỗi
  • Cập nhật thông tin xác thực khi cần thiết

Giám Sát Hiệu Suất

  • Theo dõi độ trễ tin nhắn và thời gian gửi
  • Giám sát mức sử dụng tài nguyên của broker để đảm bảo khả năng mở rộng
  • Phân tích các mẫu sử dụng topic để tối ưu hóa
  • Xem xét cài đặt QoS dựa trên yêu cầu thực tế

Các Bước Tiếp Theo

Sau khi thiết lập giao tiếp MQTT cơ bản:

  1. Triển khai luồng nhắn tin cụ thể cho ứng dụng của bạn
  2. Thiết lập hệ thống phân cấp topic để giao tiếp có tổ chức
  3. Bổ sung các biện pháp bảo mật như mã hóa TLS
  4. Tích hợp với các hệ thống bên ngoài bằng các giao thức MQTT đã được thiết lập
  5. Tạo dashboard giám sát cho tình trạng hệ thống
Tạo luồng MQTT tự động

Integration Builder có thể tạo các luồng giao tiếp MQTT hoàn chỉnh từ mô tả bằng tiếng Anh thông thường. Mô tả mẫu nhắn tin của bạn (ví dụ: "publish inspection results to an MQTT topic with pass/fail status and confidence scores") và nhận được luồng Node-RED sẵn sàng sản xuất chỉ trong vài giây.

🔗 Xem Thêm