AI 驅動文件
您想了解什麼?
透過 Node-RED 使用 HTTP 切換程式
本教程將向您展示如何使用簡單的 HTTP 請求遠端切換 OV20i 攝像頭上的程式。您將構建一個系統,使網路上的任何裝置都能即時在不同的檢測設定之間切換 - 非常適合多產品的生產線。
您將構建什麼: 一個遠端程式切換系統,可響應來自平板電腦、計算機、PLC 或任何可傳送 Web 請求的裝置的 HTTP 命令。
預計用時: 15-20 分鐘
技能等級: 初級
實際示例: 想象一下,操作員在平板電腦上掃描條形碼,攝像頭就會自動切換到該產品對應的程式 - 這正是我們要構建的!
為什麼 HTTP 程式切換讓工作更輕鬆
OV20i 使遠端程式切換變得簡單:
- 任何裝置都能觸發 - 平板電腦、PLC、計算機,甚至智慧手機
- 即時切換 - 程式切換時間不到一秒
- 無需複雜設定 - 只需在 Node-RED 中新增幾個節點
- 相容現有系統 - 與您已有的系統整合
非常適合: 多產品生產線、操作員控制面板、自動化系統,或任何需要快速切換程式的場景。
先決條件
開始之前,請確保您已具備:
- OV20i 攝像頭已連線並正常工作
- 至少已建立 2 個程式並可供使用
- Node-RED 訪問許可權(透過 IO模組)
您需要 程式 ID 編號 - 可以在編輯程式時在瀏覽器位址列中找到。
第一步:查詢您的程式編號
1.1 獲取程式 ID
- 在程式編輯器中開啟任意程式
- 檢視瀏覽器位址列
- 找到
/recipe/之後的數字(例如:/recipe/15表示程式 ID 為 15) - 記下 您想要切換的所有程式的 ID
為什麼是這些數字? 每個程式都有一個永不更改的唯一 ID - 這是攝像頭內部使用的識別符號。
第二步:開啟 Node-RED
2.1 進入流程構建器
- 在任意程式編輯器中,點選 "IO模組"
- 點選 "Configure IO"
您現在進入了 Node-RED,我們將在這裡構建您的程式切換系統!
2.2 規劃您的設定
我們要構建的內容如下:
Button Click → Format Request → Send to Camera → See Result
很簡單! 攝像頭內建了一個 Web 伺服器,用於監聽程式切換請求。
第三步:構建您的程式切換器
3.1 新增基本節點
將以下 4 個節點拖到畫布上:
- Inject(在 Input 部分)- 您的"切換程式"按鈕
- Function(在 Function 部分)- 正確格式化請求
- HTTP Request(在 Network 部分)- 向攝像頭髮送命令
- Debug(在 Output 部分)- 顯示是否成功
3.2 連線節點
像這樣將它們連線起來:
Inject → Function → HTTP Request → Debug
很簡單! 現在讓我們配置每個節點。
第四步:配置節點
4.1 設定您的程式按鈕
- 雙擊 Inject 節點
- 將名稱更改為 "Switch to Recipe 15"(使用您實際的程式 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.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 節點
第六步:從其他裝置使用
現在是有趣的部分! 任何裝置都可以透過向您的相機傳送 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.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 之後新增另一個 function:
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 訪問。
您做到了!
恭喜! 您現在已經實現了對 OV20i 相機的遠端程式控制。只需點選幾下,您就構建了一個可以執行以下操作的系統:
- 即時切換程式,從網路上的任何裝置操作
- 與現有系統整合,如 PLC、平板電腦或計算機
- 支援多個程式,透過簡單的按鈕點選
- 驗證請求,防止錯誤
- 使用標準 Web 技術與自定義應用程式協同工作
接下來是什麼?
現在您已經掌握了基礎知識,您可以:
簡單的後續步驟
- 為所有產品新增更多程式按鈕
- 從不同裝置測試,如平板電腦或手機
- 建立自定義產品對映,以便更輕鬆地操作
進階創意
- 構建操作員儀表板,帶有程式選擇按鈕
- 連線到條碼掃描器,實現自動程式選擇
- 與 MES 系統整合,用於生產線協調
- 新增日誌記錄,追蹤哪些程式在何時被使用
實際應用示例
以下是其他人如何使用 HTTP 程式切換:
- 食品包裝: 條碼掃描器觸發程式更改,適應不同的包裝尺寸
- 汽車行業: PLC 根據生產線上的零件型別切換程式
- 電子行業: 操作員平板電腦上帶有不同電路板的程式按鈕
- 質量控制: 根據生產計劃自動切換程式
可能性無窮無盡 - 一切都始於您剛剛構建的這個簡單系統!