跳到主要內容

AI 驅動文件

您想了解什麼?

透過 Node-RED 的 HTTP 進行配方切換

本教程向你展示如何使用簡單的 HTTP 請求遠端切換 OV10i 攝像機的配方。你將構建一個系統,使網路中的任意裝置能夠即時在不同的檢查設定之間切換——非常適合多品種生產線。

What You'll Build: 一個遠端配方切換系統,能夠響應來自平板、電腦、PLC,或任何能夠傳送網頁請求的裝置的 HTTP 命令。

Estimated Time: 15–20 分鐘

Skill Level: 初級

Real Example: 假設操作員在平板上掃描條碼,攝像機自動切換到該產品的正確配方——這正是我們要構建的系統!

為什麼 HTTP 配方切換為何方便

OV10i 使遠端配方切換變得簡單:

  • 任何裝置都能觸發——平板、PLC、計算機,甚至智慧手機
  • 即時切換——配方在不到一秒內切換
  • 無需複雜設定——在 Node-RED 中只需少量節點
  • 與現有系統相容——可與您現有的系統整合

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

前提條件

開始之前,請確保你擁有:

  • 已連線並正常工作的 OV10i 攝像機
  • 至少建立並可用的 2 個及以上配方
  • 透過 IO Block 訪問 Node-RED
備註

你將需要 recipe ID 編號——這些編號在編輯配方時會顯示在瀏覽器的位址列中。

第一步:查詢你的配方編號

1.1 獲取 Recipe IDs

  1. 在 Recipe Editor 中開啟任意配方
  2. 檢視瀏覽器位址列
  3. 找到 /recipe/ 之後的數字(例如:/recipe/15 表示 Recipe ID 為 15)
  4. 記錄你希望在不同配方之間切換的所有 IDs

為什麼要用這些數字? 每個配方都有唯一且不會改變的 ID——攝像機內部就使用這個。

第二步:開啟 Node-RED

2.1 進入 Flow Builder(流程構建器)

  1. 在任意 Recipe Editor 中,點選 “IO Block”
  2. 點選 “Configure IO”

你現在已經進入 Node-RED,我們將在這裡構建你的配方切換系統!

2.2 規劃你的設定

我們要構建的內容:

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

簡單! 攝像機內建有一個 Web 伺服器,用於監聽配方變更請求。

第三步:構建你的配方切換器

3.1 新增基礎節點

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

  1. Inject(來自 Input 區段) - 你的“Switch recipe”按鈕
  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"(使用你實際的 recipe 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 步:從其他裝置使用

現在進入有趣的部分! 任何裝置都可以透過向相機傳送網路請求來改變配方。

6.1 從任意網頁瀏覽器

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

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 從 PLCs 與其他系統

多數現代系統都能傳送 HTTP 請求:

  • Siemens PLCs: 使用 HTTP client blocks
  • Allen-Bradley: 使用 HTTP instruction blocks
  • 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 根據產線上的部件型別切換配方
  • 電子行業: 操作員平板帶有不同電路板的配方按鈕
  • 質量控制: 根據生產計劃的自動配方切換

可能性是無窮的——這一切都始於你剛剛搭建的簡單系統!

🔗 參見下文