通过 MQTT 触发
本教程展示如何使用简单的 MQTT 消息远程触发你的 OV80i 摄像头。只需几个步骤,你就可以在网络中的任意位置捕获和处理图像——无需复杂编程!
您将构建的内容: 一个简单的远程触发器,允许通过在网络上传送基本消息来启动摄像头检测。
预计用时: 20-30 分钟
难度等级: 初学者
实际示例: 想象一个操作员平板上的按钮能够立即触发摄像头去检测一个零件——这正是我们要构建的,但使用 MQTT 消息而不是按钮。
前提条件
在开始之前,请确保你具备:
- OV80i 摄像头已连接并正常工作
- 一个配方已设置并可使用
- MQTT 通信已配置(如需要,请参阅 "MQTT Communication Setup" 指南)
您的摄像头触发在 Imaging Setup 中必须设置为 Manual - 这会让摄像头等待您的远程命令,而不是自动拍摄。
为什么 MQTT 触发很简单
OV80i 让远程触发变得简单:
- 无需编码——只需拖放并连接少量节点
- 立即工作——发送消息,立即获得结果
- 可靠的消息传递——MQTT 确保命令到达摄像头
- 任何设备都能触发——平板、计算机、PLC 或传感器
适用于: 远程检测控制、自动化生产线,或任何需要从另一地点触发摄像头的情景。
步骤 1:快速检查摄像头
1.1 将摄像头设为 Manual Trigger
- 进入你的 Recipe Editor
- 点击 "Imaging Setup"
- 找到 Trigger Mode 并设为 "Manual"
- 点击 Save
为什么要选择 Manual? 这会让摄像头“等待我的命令”,而不是自动拍摄。
1.2 找到你的配方编号
- 在 Recipe Editor 中查看浏览器地址栏
- 找到
/recipe/
之后的数字(例如:如果 URL 显示/recipe/10
,你的配方编号就是 10) - 记下这个数字——几分钟后你会用到它
步骤 2:打开 Flow Builder
2.1 进入 Node-RED
- 在你的 Recipe Editor 中,点击 "IO Block"
- 点击 "Configure IO"
2.2 全新开始
如果画布上看到其他节点也没关系——我们将把新的触发流与它们并排放置。
让我们开始吧!
步骤 3:MQTT 触发的简单秘密
你需要知道的全是:摄像头需要 2 条快速消息才能远程拍照。
- 第一条消息: "Hey camera, get ready for a remote command"
- 第二条消息: "Now take a picture!"
3.1 将这 5 个节点拖到你的画布上
从左侧面板,将这些拖到主区域:
- Inject(来自 Input 部分) - 这将是你的 “触发按钮”
- Change(来自 Function 部分) - 用于消息 1
- Delay(来自 Function 部分) - 消息之间的微小暂停
- Change(来自 Function 部分) - 用于消息 2
- MQTT Out(来自 Network 部分) - 将消息发送给摄像头
Step 4: Configure Your Nodes
4.1 设置触发按钮
- 双击 Inject 节点
- 将名称更改为 "Remote Trigger"
- 点击 "Done"
4.2 设置消息 1(Get Ready Command)
- 双击第一个 Change 节点
- 将名称更改为 "Get Ready"
- 点击 "Add" 并选择 "SET"
- 将
msg.topic
设置为stream_mode/set
- 再次点击 "Add" 并选择 "SET"
- 将
msg.payload
设置为HMI_MODE
- 点击 "Done"
**作用:**通知相机为远程命令做好准备。
4.3 添加一个小延迟
- 双击 Delay 节点
- 将延迟设置为 10 毫秒
- 点击 "Done"
**原因:**只是给相机一个短暂的时间来做好准备。
4.4 设置消息 2(Take Picture Command)
- 双击第二个 Change 节点
- 将名称更改为 "Take Picture"
- 点击 "Add" 并选择 "SET"
- 将
msg.topic
设置为hmi/[YOUR_RECIPE_NUMBER]/capture_mode
- 将
[YOUR_RECIPE_NUMBER]
替换为实际数字(例如hmi/10/capture_mode
) - 再次点击 "Add" 并选择 "SET"
- 将
msg.payload
设置为single
- 点击 "Done"
**作用:**通知相机现在拍摄一张图片!
4.5 设置消息发送方
- 双击 MQTT Out 节点
- 选择您的 MQTT broker(应已配置)
- 将名称更改为 "Send to Camera"
- 点击 "Done"
Step 5: Connect Everything Together
This is the fun part! 现在将您的节点连接起来以创建流程。
5.1 建立连接
按如下方式在节点之间绘制连线:
- Remote Trigger → Get Ready → Send to Camera
- Remote Trigger → Delay → Take Picture → Send to Camera
视觉参考:
Remote Trigger ──→ Get Ready ──→ Send to Camera
│
└──→ Delay ──→ Take Picture ──→ Send to Camera
5.2 如何连接节点
- 从节点右侧的小方块处单击并拖动
- 将连线放到下一个节点的左侧
- 你将看到一条灰色线将它们连接起来
Step 6: Test Your Remote Trigger
6.1 启动您的流程
- 点击右上角的红色 "Deploy" 按钮
- 您应该看到 "Successfully deployed" 消息
6.2 试用
- 将部件放在相机前面进行测试
- 点击 "Remote Trigger" 节点上的按钮
- 观察相机拍照!
成功迹象:
- 相机 LED 短暂闪烁
- 您听到检查处理的声音
- 库中出现新图像
6.3 查看结果
前往 Library 页面 - 您应该看到带有最近时间戳的新图像。点击它查看检查结果!
如果成功: 恭喜!您已经远程触发了相机。
如果未成功: 请查看下面的故障排除部分。
Step 7: Use It from Other Devices (Optional)
想要从手机、平板或另一台计算机触发?以下是方法:
7.1 来自任意 MQTT App
下载任意 MQTT 应用并连接到相机的 IP 地址,端口 1883,然后:
- 发送第一条消息:
- Topic:
stream_mode/set
- Message:
HMI_MODE
- Topic:
- 稍等片刻,然后发送第二条消息:
- Topic:
hmi/[YOUR_RECIPE_NUMBER]/capture_mode
- Message:
single
- Topic:
7.2 来自命令行
在 Windows/Mac/Linux 上:
# First message
mosquitto_pub -h [CAMERA_IP] -t "stream_mode/set" -m "HMI_MODE"
# Second message (replace 10 with your recipe number)
mosquitto_pub -h [CAMERA_IP] -t "hmi/10/capture_mode" -m "single"
就这样! 您的摄像头将从网络上的任意位置拍照。
第 8 步:验证与测试
8.1 端到端测试
完整工作流验证:
测试 | 操作 | 预期结果 | 状态 |
---|---|---|---|
手动触发 | 点击注入按钮 | 图像被捕获并处理 | ☐ |
HMI 模式激活 | 检查摄像头状态 | 摄像头切换至 HMI 模式 | ☐ |
检测执行 | 验证处理 | 调试显示检测结果 | ☐ |
外部触发 | 发送 MQTT 命令 | 远程触发工作正常 | ☐ |
8.2 性能验证
监控以下指标:
- 触发响应时间: 从 MQTT 消息到图像捕获的时间
- 处理时长: 完成检测所需时间
- 结果交付: 调试输出的时序
- 系统可靠性: 在多次测试中的稳定触发
8.3 生产就绪
在部署到生产环境之前:
- 使用实际工件和检测条件进行测试
- 验证与外部系统的集成
- 确认 MQTT 通信的网络可靠性
- 记录触发主题和消息格式
步骤 9:快速故障排除
不起作用?以下是最常见的解决方法:
9.1 摄像头无法拍照
问题 | 快速修复 |
---|---|
单击触发时无反应 | 请检查在“Take Picture”节点中的配方号是否正确 |
拍照但未进行检测 | 确保配方处于活动状态且具备训练模型 |
触发有时有效 | 请确保在成像设置中将触发设置为 手动 |
9.2 MQTT 问题
问题 | 快速修复 |
---|---|
MQTT 节点上的红点 | 检查设置中的 MQTT 经纪服务器连接 |
部署按钮为灰色不可用 | 先在画布上任意点击,然后再尝试部署 |
节点无法连接 | 确保从右侧的小方块开始拖拽 |
仍然卡住? 请再次确认 MQTT 通信设置正确(请参阅 MQTT 通信设置 指南)。
您完成了! 🎉
恭喜! 现在您可以远程控制 OV80i 摄像头。只需几次点击,您就构建了一个系统,可以:
- 从网络上的任意位置触发检测
- 与手机、平板、电脑等设备协作——任何能够发送 MQTT 消息的设备
- 与 PLC、传感器或自定义应用等其他系统集成
- 通过使用不同的配方号将扩展到多台摄像头
接下来做什么?
现在基础功能已经可用,您可以:
简单的后续步骤
- 使用 MQTT 应用从不同设备进行测试
- 为不同配方创建多个触发条件
- 将此加入您的生产工作流程
高级思路
- 与 PLCs 连接,用于自动化生产线
- 构建自定义应用程序,能够触发多台相机
- 添加结果转发,将检测数据发送到其他位置
- 创建操作员仪表板,带有触发按钮
现实世界示例
以下是其他人如何使用 MQTT 触发:
- Quality Control Stations(质控工位):操作员扫描条码,系统触发相机检测
- Conveyor Lines:传感器检测到零件,自动触发检测
- Manual Inspection: 操作员使用带有简单“Inspect”按钮的平板设备
- Production Monitoring: 中央系统协调多台相机
可能性无穷大——这一切都源自您刚刚构建的这套简单系统!