跳到主要內容

AI 驅動文件

您想了解什麼?

MQTT 通訊設定

本指南將向您展示如何使用 Node-RED 配置 OV20i 相機與外部裝置之間的 MQTT 通訊。MQTT 為物聯網應用和遠端裝置通訊提供輕量級、可靠的訊息傳遞。

何時使用 MQTT 通訊: 物聯網裝置整合、遠端監控系統、釋出/訂閱訊息模式、低頻寬環境、分散式感測器網路,或當您需要可靠的訊息傳遞和自動重連時。

先決條件

  • OV20i 相機系統已設定並連線
  • 相機與 MQTT 代理之間的網路連線
  • 可用的 MQTT 代理(本地或基於雲)
  • 對 MQTT 概念(主題、釋出/訂閱)的基本理解
  • 相機上已配置的活動配方

MQTT 通訊概述

MQTT 關鍵概念:

  • 代理(Broker): 路由客戶端之間訊息的中央伺服器
  • 主題(Topics): 訊息類別(例如,“camera/status”,“commands/trigger”)
  • 釋出(Publish): 向主題傳送訊息
  • 訂閱(Subscribe): 從主題接收訊息
  • QoS(服務質量): 服務質量級別(0、1、2)

第一步:驗證網路配置

1.1 檢查相機網路設定

  1. 導航到系統設定
  2. 記錄相機 IP 地址(例如,192.168.0.100
  3. 驗證與 MQTT 代理的網路連線

1.2 MQTT 代理要求

確保 MQTT 代理可訪問:

  • 同一網路: 相機必須能夠訪問代理 IP 地址
  • 埠訪問: 預設 MQTT 埠 1883(或 8883 用於 TLS)
  • 身份驗證: 如果代理需要,提供使用者名稱/密碼
  • 防火牆: 允許所需埠上的 MQTT 流量

1.3 網路要求

元件IP 地址備註
相機192.168.0.100N/A必須能夠訪問代理
MQTT 代理192.168.0.2001883標準 MQTT 埠
客戶端裝置192.168.0.xxx可變任何訂閱的裝置

第二步:訪問 Node-RED 編輯器

2.1 導航到 IO 塊

  1. 在配方編輯器中開啟您的活動配方
  2. 點選 配置 IO 或在麵包屑選單中選擇 IO 塊 以進入 Node-RED 編輯器

2.2 驗證 MQTT 節點可用性

檢查 Node-RED 調色盤中的 MQTT 節點:

  • mqtt in - 訂閱 MQTT 主題
  • mqtt out - 釋出到 MQTT 主題

檢查點: 您應該在左側面板的網路部分看到 MQTT 節點。

第三步:配置 MQTT 代理連線

3.1 新增 MQTT 代理配置

  1. 將 "mqtt in" 節點拖到畫布上(用於初始設定)
  2. 雙擊節點 以開啟配置
  3. 點選伺服器欄位旁邊的鉛筆圖示
  4. 點選 "新增新 mqtt-代理"

3.2 配置代理設定

基本代理配置:

設定描述
名稱Camera MQTT Broker描述性識別符號
伺服器192.168.0.200MQTT 代理 IP 地址
1883標準 MQTT 埠
協議MQTT V3.1.1推薦版本
客戶端 ID(自動生成)留空以自動生成

3.3 身份驗證設定(如有需要)

如果代理需要身份驗證:

設定描述
使用者名稱MQTT 代理使用者名稱
密碼MQTT 代理密碼
使用 TLS啟用以實現安全連線(埠 8883)

3.4 高階設定

連線選項:

設定推薦值描述
保持活動60 秒心跳間隔
清除會話每次連線時重新開始
自動連線自動重新連線

3.5 儲存代理配置

  1. 點選 "新增" 以儲存代理設定
  2. 點選 "完成" 以關閉節點配置
  3. 代理配置 現在可用於所有 MQTT 節點

第 4 步:配置 MQTT 輸入(訂閱)

4.1 設定 MQTT 輸入節點

  1. 選擇您新增的 "mqtt in" 節點
  2. 雙擊以配置
  3. 配置訂閱設定:

4.2 MQTT 輸入配置

訂閱設定:

設定示例值描述
伺服器相機 MQTT 代理選擇已配置的代理
主題camera/commands訂閱的主題
QoS0訊息傳遞質量
輸出自動檢測訊息格式
名稱命令監聽器節點識別符號

4.3 主題命名約定

推薦的主題結構:

目的主題示例用法
命令camera/commands接收控制命令
狀態請求camera/status/request狀態資訊請求
配置camera/config配置更改

4.4 配置訊息處理

  1. 新增 "debug" 節點 以監控傳入訊息
  2. 連線: MQTT 輸入 → 除錯
  3. 配置除錯節點 以顯示完整訊息

第 5 步:配置 MQTT 輸出(釋出)

5.1 新增 MQTT 輸出節點

  1. 將 "mqtt out" 節點 拖到畫布上
  2. 雙擊以配置
  3. 選擇相同的代理 配置

5.2 MQTT 輸出配置

釋出設定:

設定示例值描述
伺服器相機 MQTT 代理與輸入相同的代理
主題camera/responses相機響應的主題
QoS0訊息傳遞質量
保留不儲存最後一條訊息
名稱響應釋出者節點識別符號

5.3 響應主題結構

推薦的響應主題:

響應型別主題示例用法
狀態更新camera/status相機狀態資訊
結果camera/results檢查結果
確認camera/ack命令確認

第 6 步:建立基本通訊流程

6.1 構建輸出訊息流程

建立一個從相機發布訊息的流程:

  1. 新增 "inject" 節點 以觸發訊息
  2. 新增 "function" 節點 以格式化訊息
  3. 新增 "mqtt out" 節點 以釋出
  4. 連線: Inject → Function → MQTT 輸出

6.2 構建輸入訊息流程

建立一個單獨的流程以接收訊息:

  1. 新增 "mqtt in" 節點 以訂閱
  2. 新增 "debug" 節點 以監控
  3. 連線: MQTT 輸入 → 除錯

6.3 配置 Inject 節點

  1. 雙擊 inject 節點
  2. 配置設定:
    • 名稱: "傳送測試訊息"
    • 有效負載: 時間戳
    • 主題: (留空)
  3. 點選 "完成"

6.4 配置 Function 節點

簡單訊息格式化:

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

  1. 雙擊 function 節點
  2. 將上述程式碼 複製到 "On Message" 標籤
  3. 名稱: "格式化訊息"
  4. 點選 "完成"

6.5 配置 MQTT Out 節點

  1. 雙擊 mqtt out 節點
  2. 選擇代理: Camera MQTT Broker(之前配置)
  3. 主題: (留空 - 由 function 節點設定)
  4. 名稱: "釋出狀態"
  5. 點選 "完成"

6.6 配置 MQTT In 節點

  1. 雙擊 mqtt in 節點
  2. 選擇代理: Camera MQTT Broker
  3. 主題: camera/commands
  4. 名稱: "命令監聽器"
  5. 點選 "完成"

6.7 配置 Debug 節點

  1. 雙擊 debug 節點
  2. 輸出: 完整的 msg 物件
  3. 名稱: "接收訊息"
  4. 點選 "完成"

6.8 最終流程結構

您的完整流程應為:

輸出: Inject → Function → MQTT Out
輸入: MQTT In → Debug

第 7 步:部署並測試配置

7.1 部署流程

  1. 點選 "部署" 按鈕(右上角)
  2. 驗證部署成功 訊息
  3. 檢查節點狀態指示器:
    • 綠色點: 已連線到代理
    • 紅色點: 連線失敗
    • 黃色點: 正在連線

7.2 測試內部通訊

測試相機的 MQTT 釋出:

  1. 點選 inject 按鈕 傳送測試訊息
  2. 驗證 MQTT Out 節點 顯示活動
  3. 檢查 debug 面板 是否有外部訊息

7.3 外部測試(可選)

使用外部 MQTT 客戶端測試向相機傳送命令:

使用命令列工具:

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

預期結果: Debug 節點應在 Node-RED debug 面板中顯示接收到的訊息。

7.4 驗證通訊

檢查以下方面:

測試預期結果狀態
代理連線MQTT 節點上顯示綠色狀態
訊息釋出Inject 成功觸發 MQTT Out
訊息接收Debug 顯示外部訊息
重新連線網路中斷後自動重新連線

第 8 步:故障排除 MQTT 問題

8.1 連線問題

問題症狀解決方案
無法連線到代理紅色狀態指示器檢查代理 IP 和埠
身份驗證失敗連線被拒絕驗證使用者名稱/密碼
網路超時黃色連線狀態檢查網路連線
防火牆阻塞無連線嘗試開啟 MQTT 埠

8.2 訊息問題

問題症狀解決方案
未接收到訊息Debug 顯示無內容檢查主題訂閱
訊息未釋出外部客戶端未看到任何內容驗證釋出主題
訊息格式錯誤解析失敗使用簡單文字訊息
丟失訊息間歇性投遞檢查代理連線

8.3 效能問題

問題症狀解決方案
高延遲訊息傳遞延遲檢查代理效能
連線中斷經常重新連線調整保持活動設定
訊息氾濫代理過載實施訊息限流

8.4 除錯技術

系統化故障排除:

  1. 檢查 Node-RED 中的代理連線狀態
  2. 監控 Node-RED 除錯面板 的訊息流
  3. 在複雜資料之前使用簡單文字訊息
  4. 使用 ping 驗證網路連線性
  5. 在高階流程之前測試基本主題

成功!您的 MQTT 通訊已準備就緒

您的 MQTT 通訊系統現在可以:

  • 連線到具有適當身份驗證的 MQTT 代理
  • 訂閱主題 以接收命令和資料
  • 釋出訊息 以進行狀態更新和響應
  • 處理 JSON 訊息格式 以實現結構化通訊
  • 在網路中斷後自動重新連線
  • 支援不同訊息優先順序的多個 QoS 級別

持續維護

定期系統檢查

  • 監控 Node-RED 中的代理連線狀態
  • 使用測試訊息驗證訊息傳遞
  • 檢查代理日誌 以查詢任何錯誤模式
  • 根據需要更新身份驗證 憑據

效能監控

  • 跟蹤訊息延遲 和傳遞時間
  • 監控代理資源使用情況 以實現可擴充套件性
  • 分析主題使用模式 以進行最佳化
  • 根據實際需求審查 QoS 設定

下一步

在設定基本 MQTT 通訊後:

  1. 為您的應用程式實施特定的訊息工作流程
  2. 建立主題層次結構 以實現有序通訊
  3. 新增安全措施 如 TLS 加密
  4. 使用已建立的 MQTT 協議與外部系統整合
  5. 建立監控儀表板 以監測系統健康
自動生成 MQTT 流

整合構建器 可以根據普通英語描述生成完整的 MQTT 通訊流。描述您的訊息模式(例如,“將檢查結果釋出到具有透過/失敗狀態和置信度分數的 MQTT 主題”),並在幾秒鐘內獲得可投入生產的 Node-RED 流。

🔗 另見