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 根据生产线上的零件类型切换程序
- 电子行业: 操作员平板电脑上带有不同电路板的程序按钮
- 质量控制: 根据生产计划自动切换程序
可能性无穷无尽 - 一切都始于您刚刚构建的这个简单系统!