跳到主要內容

AI 驅動文件

您想了解什麼?

MQTT 通訊設定

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

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

跳過手動設定

用簡單的英語描述您的 MQTT 整合,自動整合構建器 將在幾秒鐘內為您生成完整的 Node-RED 流程。

先決條件

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

MQTT 通訊概述

MQTT 關鍵概念:

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

第 1 步:驗證網路配置

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可變任何訂閱的裝置

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

2.1 導航到 IO 塊

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

2.2 驗證 MQTT 節點是否可用

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

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

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

第 3 步:配置 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 配置注入節點

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

6.4 配置函式節點

簡單訊息格式化:

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

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

6.5 配置 MQTT 輸出節點

  1. 雙擊 mqtt 輸出節點
  2. 選擇代理: 相機 MQTT 代理(之前配置)
  3. 主題: (保持為空 - 由函式節點設定)
  4. 名稱: "釋出狀態"
  5. 點選 "完成"

6.6 配置 MQTT 輸入節點

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

6.7 配置除錯節點

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

6.8 最終流程結構

您的完整流程應為:

輸出: 注入 → 函式 → MQTT 輸出
輸入: MQTT 輸入 → 除錯

第 7 步:部署和測試配置

7.1 部署流程

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

7.2 測試內部通訊

測試相機的 MQTT 釋出:

  1. 點選注入按鈕 傳送測試訊息
  2. 驗證 MQTT 輸出節點 顯示活動
  3. 檢查除錯面板 是否有外部訊息

7.3 外部測試(可選)

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

使用命令列工具:

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

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

7.4 驗證通訊

檢查以下方面:

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

第 8 步:故障排除 MQTT 問題

8.1 連線問題

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

8.2 訊息問題

問題症狀解決方案
未接收到訊息除錯顯示無內容檢查主題訂閱
訊息未釋出外部客戶端未看到內容驗證釋出主題
訊息格式錯誤解析失敗使用簡單文字訊息
丟失訊息不穩定的交付檢查代理連線

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 流。

🔗 另請參閱