跳到主要內容

AI 驅動文件

您想了解什麼?

透過 Node-RED 使用 HTTP 切換程式

本教程將向您展示如何使用簡單的 HTTP 請求遠端切換 OV10i 攝像頭上的程式。您將構建一個系統,使網路上的任何裝置都能即時切換不同的檢查設定 - 非常適合具有多種產品的生產線。

您將構建的內容: 一個遠端程式切換系統,響應來自平板電腦、計算機、PLC 或任何可傳送 Web 請求的裝置的 HTTP 命令。

預計時間: 15-20 分鐘

技能水平: 初級

真實案例: 想象一下,操作員在平板電腦上掃描條形碼,攝像頭會自動切換到該產品對應的程式 - 這正是我們要構建的!

為什麼 HTTP 程式切換讓工作更輕鬆

OV10i 讓遠端程式切換變得簡單:

  • 任何裝置都能觸發 - 平板電腦、PLC、計算機,甚至智慧手機
  • 即時切換 - 程式在一秒內完成切換
  • 無需複雜配置 - 在 Node-RED 中只需幾個節點
  • 相容現有系統 - 可與您已有的系統整合

非常適合: 多產品生產線、操作員控制面板、自動化系統,或任何需要快速切換程式的場景。

先決條件

在開始之前,請確保您具備:

  • OV10i 攝像頭已連線並正常工作
  • 至少建立了 2 個可用的程式
  • Node-RED 訪問許可權(透過 IO模組)
備註

您將需要程式 ID 編號 - 這些編號可在編輯程式時瀏覽器的位址列中找到。

第一步:查詢您的程式編號

1.1 獲取程式 ID

  1. 在程式編輯器中開啟任意程式
  2. 檢視瀏覽器位址列
  3. 找到 /recipe/ 後面的數字(例如:/recipe/15 表示程式 ID 為 15)
  4. 記下您想要切換的所有程式的 ID

為什麼需要這些編號? 每個程式都有一個永不改變的唯一 ID - 這是攝像頭內部使用的標識。

第二步:開啟 Node-RED

2.1 訪問流程構建器

  1. 在任意程式編輯器中,點選 "IO Block"
  2. 點選 "Configure IO"

您現在已進入 Node-RED,我們將在此構建您的程式切換系統!

2.2 規劃您的設定

以下是我們要構建的內容:

Button Click → Format Request → Send to Camera → See Result

很簡單! 攝像頭有一個內建的 Web 伺服器,用於監聽程式切換請求。

第三步:構建您的程式切換器

3.1 新增基本節點

將以下 4 個節點拖到畫布上:

  1. Inject(來自 Input 部分)- 您的"切換程式"按鈕
  2. Function(來自 Function 部分)- 正確格式化請求
  3. HTTP Request(來自 Network 部分)- 向攝像頭髮送命令
  4. Debug(來自 Output 部分)- 顯示是否成功

3.2 將它們連線起來

像這樣將它們連線在一起:

Inject → Function → HTTP Request → Debug

簡單! 現在讓我們配置每個節點。

第四步:配置您的節點

4.1 設定您的程式按鈕

  1. 雙擊 Inject 節點
  2. 將名稱更改為 "Switch to Recipe 15"(使用您實際的程式 ID)
  3. 將 Payload 設定為 "15"(您的程式 ID 編號)
  4. 點選 "Done"

4.2 設定請求格式化器

  1. 雙擊 Function 節點
  2. 將其命名為 "Format Request"
  3. 複製以下簡單程式碼:
// Get recipe number from button
let recipeID = msg.payload;

// Set up the web request
msg.headers = {'Content-Type': 'application/json'};
msg.payload = JSON.stringify({ id: recipeID });

return msg;

  1. 點選 "Done"

此操作的作用: 獲取您的程式編號並按照相機所需的方式進行封裝。

4.3 設定 HTTP 請求

  1. 雙擊 HTTP Request 節點
  2. 將 Method 設定為 "POST"
  3. 將 URL 設定為 localhost:5001/pipeline/activate
  4. 將其命名為 "Change Recipe"
  5. 點選 "Done"
備註

18.92 之前的版本:使用 http://[CAMERA_IP]/edge/pipeline/activate 18.92 及更高版本:使用 http://localhost:5001/pipeline/activate

4.4 設定響應監視器

  1. 雙擊 Debug 節點
  2. 將其命名為 "Recipe Change Result"
  3. 點選 "Done"

完美! 您的程式切換器已準備好進行測試。

第 5 步:測試您的程式切換器

5.1 部署並嘗試

  1. 點選紅色的 "Deploy" 按鈕
  2. 點選您的 inject 按鈕(Switch to Recipe 15)
  3. 檢視除錯面板中的響應

5.2 檢查是否成功

成功標誌:

  • 除錯顯示 "success": true
  • 相機介面顯示新的程式名稱
  • 除錯面板中沒有錯誤訊息

如果成功: 恭喜!您剛剛遠端切換了程式。

如果失敗: 請檢視下方的故障排除部分。

5.3 新增更多程式按鈕

想要多個程式? 只需新增更多 inject 節點:

  • Recipe 10 按鈕: Payload = "10",Name = "Switch to Recipe 10"
  • Recipe 23 按鈕: Payload = "23",Name = "Switch to Recipe 23"
  • 全部連線到同一個 Function 節點

第 6 步:從其他裝置使用

現在有趣的部分來了! 任何裝置都可以透過向您的相機傳送 Web 請求來更改程式。

6.1 從任何 Web 瀏覽器

在網路上的任何瀏覽器中輸入以下內容:

http://192.168.0.100:5001/pipeline/activate

備註

請替換為您相機的 IP 地址。

6.2 從命令列

Windows/Mac/Linux - 切換到程式 15:

curl -X POST http://192.168.0.100:5001/pipeline/activate \
-H "Content-Type: application/json" \
-d '{"id": "15"}'

6.3 從 PLC 和其他系統

大多數現代系統都可以傳送 HTTP 請求:

  • Siemens PLC: 使用 HTTP 客戶端塊
  • Allen-Bradley: 使用 HTTP 指令塊
  • Python/C#/Java: 使用標準 HTTP 庫
  • 自定義應用: 任何程式語言均可

請求格式始終相同:

  • Method: POST
  • URL: http://[CAMERA_IP]:5001/pipeline/activate
  • Body: {"id": "RECIPE_NUMBER"}

第 7 步:讓它變得更好

7.1 新增程式驗證

想要防止切換到不存在的程式? 修改您的函式:

let recipeID = msg.payload;
let validRecipes = ["10", "15", "20"]; // Your actual recipe IDs

if (!validRecipes.includes(recipeID)) {
msg.payload = "Invalid recipe: " + recipeID;
return null; // Don't send request
}

// Normal formatting continues...

7.2 產品程式碼對映

想用產品名稱代替數字? 試試這個:

let productCodes = {
"BOLT_A": "10",
"BOLT_B": "15",
"SCREW_C": "20"
};

let recipeID = productCodes[msg.payload];
// Continue with formatting...

現在您可以使用產品名稱而非數字來觸發!

7.3 響應處理

想要更好的成功/錯誤訊息? 在 HTTP Request 之後新增另一個函式:

let response = JSON.parse(msg.payload);

if (response.success) {
msg.payload = "✓ Recipe changed successfully!";
} else {
msg.payload = "✗ Recipe change failed: " + response.error;
}

return msg;

第 8 步:快速故障排除

不工作?以下是最常見的解決方法:

問題快速修復
"Recipe not found"(程式未找到)錯誤仔細檢查 URL 中的程式 ID 編號
完全無響應驗證相機 IP 地址和網路連線
"Parse error"(解析錯誤)訊息檢查 Function 節點程式碼是否正確複製
程式實際沒有切換確保程式存在且未損壞

仍然卡住? 檢查您的相機是否線上並可從 Node-RED 訪問。

您做到了!

恭喜! 您現在已擁有 OV10i 相機的遠端程式控制。只需點選幾下,您就構建了一個能夠:

  • 從網路上的任何裝置即時切換程式
  • 與現有系統(如 PLC、平板電腦或計算機)整合
  • 透過簡單的按鈕點選支援多個程式
  • 驗證請求以防止錯誤
  • 使用標準 Web 技術與自定義應用程式配合使用

接下來做什麼?

現在基礎功能已經執行,您可以:

簡單的後續步驟

  • 為您的所有產品新增更多程式按鈕
  • 從不同裝置(如平板電腦或手機)進行測試
  • 建立自定義產品對映以便於操作

高階想法

  • 構建操作員儀表板,帶有程式選擇按鈕
  • 連線條碼掃描器以自動選擇程式
  • 與 MES 系統整合,實現生產線協調
  • 新增日誌記錄以跟蹤何時使用了哪些程式

實際應用示例

以下是其他人如何使用 HTTP 程式切換:

  • 食品包裝: 條碼掃描器觸發不同包裝尺寸的程式切換
  • 汽車: PLC 根據生產線上的零件型別切換程式
  • 電子產品: 操作員平板電腦上帶有不同電路板的程式按鈕
  • 質量控制: 根據生產計劃自動切換程式

可能性是無限的 - 一切都從您剛剛構建的簡單系統開始!

🔗 另請參閱