跳到主要內容

AI 驅動文件

您想了解什麼?

MQTT 通訊設定

本指南向您展示如何使用 Node-RED 在 OV10i 攝像頭與外部裝置之間配置 MQTT 通訊。MQTT 為物聯網應用和遠端裝置通訊提供輕量、可靠的訊息傳輸。

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

跳過手動設定

用簡單的英文描述您的 MQTT 整合,Auto-Integration Builder 將在幾秒內為您生成完整的 Node-RED 流程。

先決條件

  • OV10i 攝像頭系統已設定並連線
  • 攝像頭與 MQTT broker 之間的網路連通性
  • 可用的 MQTT broker(本地或基於雲)
  • 對 MQTT 概念的基本理解(topics、publish/subscribe)
  • 攝像頭上已配置活動程式

MQTT 通訊概覽

MQTT 關鍵概念:

  • Broker: 在客戶端之間路由訊息的中央伺服器
  • Topics: 訊息類別(例如 "camera/status"、"commands/trigger")
  • Publish: 向 topic 傳送訊息
  • Subscribe: 從 topic 接收訊息
  • QoS: 服務質量級別(0、1、2)

第一步:驗證網路配置

1.1 檢查攝像頭網路設定

  1. 導航至系統設定
  2. 記錄攝像頭 IP 地址(例如 192.168.0.100
  3. 驗證與 MQTT broker 的網路連通性

1.2 MQTT Broker 要求

確保 MQTT broker 可訪問:

  • 同一網路: 攝像頭必須能夠到達 broker IP 地址
  • 埠訪問: 預設 MQTT 埠 1883(TLS 時為 8883)
  • 身份驗證: 如果 broker 要求,提供使用者名稱/密碼
  • 防火牆: 允許所需埠上的 MQTT 流量

1.3 網路要求

元件IP 地址備註
攝像頭192.168.0.100不適用必須能到達 broker
MQTT Broker192.168.0.2001883標準 MQTT 埠
客戶端裝置192.168.0.xxx可變任何訂閱的裝置

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

2.1 導航至 IO模組

  1. 在程式編輯器中開啟您的活動程式
  2. 點選 Configure IO 或在麵包屑選單中選擇 IO Block,進入 Node-RED 編輯器

2.2 驗證 MQTT 節點可用

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

  • mqtt in - 訂閱 MQTT topics
  • mqtt out - 釋出到 MQTT topics

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

第三步:配置 MQTT Broker 連線

3.1 新增 MQTT Broker 配置

  1. 將 "mqtt in" 節點拖動到畫布上(用於初始設定)
  2. 雙擊節點開啟配置
  3. 點選 Server 欄位旁的鉛筆圖示
  4. 點選 "Add new mqtt-broker"

3.2 配置 Broker 設定

基本 Broker 配置:

設定說明
NameCamera MQTT Broker描述性識別符號
Server192.168.0.200MQTT broker IP 地址
Port1883標準 MQTT 埠
ProtocolMQTT V3.1.1推薦版本
Client ID(自動生成)留空以自動生成

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

如果代理需要身份驗證:

設定描述
UsernameMQTT 代理使用者名稱
PasswordMQTT 代理密碼
Use TLS啟用安全連線(埠 8883)

3.4 高階設定

連線選項:

設定推薦值描述
Keep Alive60 秒心跳間隔
Clean SessionTrue每次連線重新開始
Auto ConnectTrue自動重新連線

3.5 儲存代理配置

  1. 點選"Add" 儲存代理設定
  2. 點選"Done" 關閉節點配置
  3. 代理配置現在可用於所有 MQTT 節點

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

4.1 設定 MQTT In 節點

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

4.2 MQTT In 配置

訂閱設定:

設定示例值描述
ServerCamera MQTT Broker選擇已配置的代理
Topiccamera/commands要訂閱的主題
QoS0訊息傳遞質量
Outputauto-detect訊息格式
NameCommand Listener節點識別符號

4.3 主題命名約定

推薦的主題結構:

用途主題示例使用場景
命令camera/commands接收控制命令
狀態請求camera/status/request狀態資訊請求
配置camera/config配置變更

4.4 配置訊息處理

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

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

5.1 新增 MQTT Out 節點

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

5.2 MQTT Out 配置

釋出設定:

設定示例值描述
ServerCamera MQTT Broker與輸入相同的代理
Topiccamera/responses相機響應的主題
QoS0訊息傳遞質量
RetainFalse不儲存最後一條訊息
NameResponse Publisher節點識別符號

5.3 響應主題結構

推薦的響應主題:

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

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

6.1 構建傳出訊息流程

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

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

6.2 構建傳入訊息流程

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

  1. 新增"mqtt in"節點用於訂閱
  2. 新增"debug"節點用於監控
  3. 連線: MQTT In → Debug

6.3 配置 Inject 節點

  1. 雙擊 inject 節點
  2. 配置設定:
    • Name: "Send Test Message"
    • Payload: Timestamp
    • Topic: (留空)
  3. 點選 "Done"

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. Name: "Format Message"
  4. 點選 "Done"

6.5 配置 MQTT Out 節點

  1. 雙擊 mqtt out 節點
  2. 選擇 broker: Camera MQTT Broker(先前已配置)
  3. Topic: (留空 - 由 function 節點設定)
  4. Name: "Publish Status"
  5. 點選 "Done"

6.6 配置 MQTT In 節點

  1. 雙擊 mqtt in 節點
  2. 選擇 broker: Camera MQTT Broker
  3. Topic: camera/commands
  4. Name: "Command Listener"
  5. 點選 "Done"

6.7 配置 Debug 節點

  1. 雙擊 debug 節點
  2. Output: Complete msg object
  3. Name: "Incoming Messages"
  4. 點選 "Done"

6.8 最終流程結構

完整的流程應為:

傳送方向: Inject → Function → MQTT Out 接收方向: MQTT In → Debug

第 7 步:部署並測試配置

7.1 部署流程

  1. 點選 "Deploy" 按鈕(右上角)
  2. 確認部署成功訊息
  3. 檢查節點狀態指示燈:
    • 綠點: 已連線到 broker
    • 紅點: 連線失敗
    • 黃點: 正在連線

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 除錯面板中顯示接收到的訊息。

7.4 驗證通訊

檢查以下方面:

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

第 8 步:MQTT 問題故障排除

8.1 連線問題

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

8.2 訊息問題

問題症狀解決方案
未收到訊息Debug 無顯示檢查主題訂閱
訊息未釋出外部客戶端未收到驗證釋出主題
訊息格式錯誤解析失敗使用簡單文字訊息
訊息丟失傳輸不穩定檢查 broker 連線

8.3 效能問題

問題症狀解決方案
高延遲訊息傳遞延遲檢查 broker 效能
連線中斷頻繁重連調整 keep-alive 設定
訊息氾濫broker 過載實施訊息節流

8.4 除錯技巧

系統化故障排除:

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

成功!您的 MQTT 通訊已就緒

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

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

日常維護

定期系統檢查

  • 在 Node-RED 中監控 broker 連線狀態
  • 使用測試訊息驗證訊息傳遞
  • 檢查 broker 日誌以發現錯誤模式
  • 根據需要更新身份驗證憑據

效能監控

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

後續步驟

完成基本 MQTT 通訊設定後:

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

Integration Builder 可以根據純英文描述生成完整的 MQTT 通訊流程。描述您的訊息模式(例如,"將檢測結果釋出到 MQTT 主題,包含 pass/fail 狀態和置信度分數"),即可在幾秒內獲得一個可用於生產的 Node-RED 流程。

🔗 另請參閱