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
- 在 Recipe Editor 中開啟任意配方
- 檢視瀏覽器位址列
- 找到
/recipe/之後的數字(例如:/recipe/15表示 Recipe ID 為 15) - 記錄你希望在不同配方之間切換的所有 IDs
為什麼要用這些數字? 每個配方都有唯一且不會改變的 ID——攝像機內部就使用這個。
第二步:開啟 Node-RED
2.1 進入 Flow Builder(流程構建器)
- 在任意 Recipe Editor 中,點選 “IO Block”
- 點選 “Configure IO”
你現在已經進入 Node-RED,我們將在這裡構建你的配方切換系統!
2.2 規劃你的設定
我們要構建的內容:
Button Click → Format Request → Send to Camera → See Result
簡單! 攝像機內建有一個 Web 伺服器,用於監聽配方變更請求。
第三步:構建你的配方切換器
3.1 新增基礎節點
將以下四個節點拖拽到畫布上:
- Inject(來自 Input 區段) - 你的“Switch recipe”按鈕
- Function(來自 Function 區段) - 正確格式化請求
- HTTP Request(來自 Network 區段) - 將命令傳送到攝像機
- Debug(來自 Output 區段) - 顯示是否執行成功
3.2 連線
按如下方式連線:
Inject → Function → HTTP Request → Debug
簡單! 現在讓我們配置每一個節點。
第四步:配置節點
4.1 設定你的配方按鈕
- 雙擊 Inject 節點
- 將名稱改為 "Switch to Recipe 15"(使用你實際的 recipe ID)
- 將 Payload 設定為 "15"(你的配方 ID 編號)
- 點選 "Done"
4.2 設定請求格式化器
- 雙擊 Function 節點
- 將其命名為 "Format Request"
- 複製以下簡短程式碼:
// 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;
- 點選 "Done"
作用: 將你的配方編號打包成相機所需的格式。
4.3 設定 HTTP 請求
- 雙擊 HTTP Request 節點
- 將 Method 設定為 "POST"
- 將 URL 設定為
localhost:5001/pipeline/activate - 將其命名為 "Change Recipe"
- 點選 "Done"
18.92 之前:使用 http://[CAMERA_IP]/edge/pipeline/activate
18.92 及以後版本:使用 http://localhost:5001/pipeline/activate
4.4 設定響應監控
- 雙擊 Debug 節點
- 將其命名為 "Recipe Change Result"
- 點選 "Done"
完美! 您的配方切換器現已就緒,可進行測試。
第 5 步:測試您的配方切換器
5.1 部署並試用
- 點選紅色的 "Deploy" 按鈕
- 點選你的 inject 按鈕(Switch to Recipe 15)
- 在除錯面板中觀察響應
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 根據產線上的部件型別切換配方
- 電子行業: 操作員平板帶有不同電路板的配方按鈕
- 質量控制: 根據生產計劃的自動配方切換
可能性是無窮的——這一切都始於你剛剛搭建的簡單系統!