跳到主要内容

AI 驱动文档

您想了解什么?

通过 MQTT 触发

本教程演示如何通过简单的 MQTT 消息远程触发您的 OV10i 摄像头。只需若干步骤,您就可以实现一个系统,在网络的任意位置捕获并处理图像——无需复杂编程!

你将构建的内容: 一个简单的远程触发器,允许通过在网络上发送一个基础消息来启动摄像头检查。

预计时长: 20-30 分钟

难度: 初级

实际示例: 想象在操作员平板上的一个按钮,能够立即触发摄像头对某个零件进行检查——这正是我们要实现的,不过是使用 MQTT 消息而不是按钮。

先决条件

在开始之前,请确保具备:

  • OV10i 摄像头已连接并正常工作
  • 已设置好并可使用的一份配方
  • 已配置 MQTT 通信(如需要,请参阅 MQTT Communication Setup 指南)
备注

请在 Imaging Setup 将触发模式设置为 手动——这将让相机等待远程命令,而不是自动拍摄。

为什么 MQTT 触发很简单

OV10i 让远程触发变得简单:

  • 无需编码 - 只需拖拽并连接几个节点
  • 瞬时生效 - 发送消息,立即获取结果
  • 可靠的消息传递 - MQTT 确保命令能到达相机
  • 任何设备都可触发 - 平板、计算机、PLC 或传感器

非常适合: 远程检查控制、自动化生产线,或任何需要从另一个位置触发摄像头的场景。

第1步:快速检查摄像头

1.1 将摄像头设置为手动触发

  1. 进入您的 Recipe Editor
  2. 点击“Imaging Setup”
  3. **找到 Trigger Mode(触发模式)并将其设置为 “手动”
  4. 点击保存

为什么选择手动? 这会让相机“等待我的命令”,而不是自动拍摄。

1.2 找到您的配方编号

  1. 在 Recipe Editor 模式下查看浏览器地址栏
  2. 查找 /recipe/ 之后的数字(例如:如果 URL 显示 /recipe/10,那么您的配方编号是 10)
  3. 记下这个数字——几分钟后会用到

image.png

第2步:打开 Flow Builder

2.1 进入 Node-RED

  1. 在您的 Recipe Editor 中,点击 “Configure IO” 或在面包屑菜单中选择 “IO Block”

2.2 重新开始

如果画布上看到其他节点,也没关系——我们将把新的触发流与它们并列添加。

让我们开始吧!

第3步:MQTT 触发的简单秘密

以下是你需要了解的一切:摄像头需要 2 条简短的消息来实现远程拍照。

  1. 第一条消息:“嘿,相机,准备好接收远程命令”
  2. 第二条消息:“现在拍照!”

3.1 将这 5 个节点拖拽到画布上

从左侧面板,将以下节点拖到主区域:

  1. Inject(来自 Input 部分)- 这将是你的“触发按钮”
  2. Change(来自 Function 部分)- 用于消息 1
  3. Delay(来自 Function 部分)- 消息之间的微小暂停
  4. Change(来自 Function 部分)- 用于消息 2
  5. MQTT Out(来自 Network 部分)- 将消息发送给相机

image.png

步骤 4:配置节点

4.1 设置触发按钮

  1. 双击 Inject 节点
  2. 将名称改为“远程触发”
  3. 点击“完成”

4.2 设置消息 1(就绪命令)

  1. 双击 第一个 Change 节点
  2. 将名称改为“就绪”
  3. 点击“添加”并选择“SET”
  4. msg.topic 设置为 stream_mode/set
  5. 再次点击“添加”并选择“SET”
  6. msg.payload 设置为 HMI_MODE
  7. 点击“完成”

作用说明: 让摄像头“就绪以接收远程命令”。

image.png

4.3 添加一个小延迟

  1. 双击 Delay 节点
  2. 将延迟设置为 10 毫秒
  3. 点击“完成”

原因:仅给摄像头一个短暂的就绪时间。

4.4 设置消息 2(拍照命令)

  1. 双击 第二个 Change 节点
  2. 将名称改为“拍照”
  3. 点击“添加”并选择“SET”
  4. msg.topic 设置为 hmi/[YOUR_RECIPE_NUMBER]/capture_mode
  5. 用实际数字替换 [YOUR_RECIPE_NUMBER](例如 hmi/10/capture_mode
  6. 再次点击“添加”并选择“SET”
  7. msg.payload 设置为 single
  8. 点击“完成”

作用:让摄像头“现在拍一张照片!”

image.png

4.5 设置消息发送节点

  1. 双击 MQTT Out 节点
  2. 选择你的 MQTT broker(应该已配置)
  3. 将名称改为“发送到相机”
  4. 点击“完成”

第 5 步:将所有内容连接起来

这部分很有趣! 现在把你的节点连接起来以创建流程。

5.1 连接方式

按如下方式在节点之间连线:

  1. Remote Trigger → Get Ready → Send to Camera
  2. Remote Trigger → Delay → Take Picture → Send to Camera

可视化指南:

Remote Trigger ──→ Get Ready ──→ Send to Camera

└──→ Delay ──→ Take Picture ──→ Send to Camera

5.2 如何连接节点

  1. 从节点右侧的小正方形处单击并拖动
  2. 将连线放到下一个节点的左侧
  3. 你会看到一条灰色线将它们连接起来

第 6 步:测试你的远程触发

6.1 激活你的流程

  1. 在右上角点击红色的“部署”按钮
  2. 你应该看到“Successfully deployed”消息

6.2 试用

  1. 将一个工件放在摄像头前进行测试
  2. 点击你“Remote Trigger”节点上的按钮
  3. 观察摄像头拍照!

成功迹象:

  • 摄像头 LED 短暂闪烁
  • 听到检验处理正在进行
  • 库中出现新图像

6.3 查看结果

前往库页面 - 你应该看到带有最近时间戳的新图像。点击它以查看检验结果!

如果成功: 恭喜!你刚刚完成了对摄像头的远程触发。

如果未成功: 请查看下方的故障排除部分。

第 7 步:可选在其他设备上使用

想从手机、平板或另一台计算机触发? 请按以下步骤:

7.1 来自任意 MQTT 应用

下载任意 MQTT 应用并连接到相机的 IP 地址,端口为 1883,然后:

  1. 发送第一条消息:
    • 主题(Topic):stream_mode/set
    • 消息(Message):HMI_MODE
  2. 稍作等待后发送第二条消息:
    • 主题(Topic):hmi/[YOUR_RECIPE_NUMBER]/capture_mode
    • 消息(Message):single

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"

就这样! 您的相机会从网络中的任意位置拍摄图像。

Step 8: 验证与测试

8.1 端到端测试

完整工作流验证:

测试项操作预期结果状态
手动触发点击注入按钮图像已捕获并处理
HMI 模式激活检查相机状态相机切换到 HMI 模式
检测执行验证处理调试输出显示检测结果
外部触发发送 MQTT 命令远程触发工作正常

8.2 性能验证

监控以下指标:

  • 触发响应时间: 从 MQTT 消息到图像捕获
  • 处理时长: 完成检测所需时间
  • 结果传送: 调试输出时序
  • 系统可靠性: 多次测试中的触发一致性

8.3 生产就绪

在部署到生产环境之前:

  1. 在实际部件与检测条件下进行测试
  2. 验证与外部系统的集成
  3. 确认 MQTT 通信的网络可靠性
  4. 记录触发主题 与消息格式

Step 9: 快速故障排除

不工作?以下是最常见的故障解决方法:

9.1 相机不拍摄图片

问题快速解决方法
单击触发时无响应检查在 "Take Picture" 节点中的配方编号是否正确
相机拍摄了图片但未进行检测确保你的配方处于 Active 状态并具有经过训练的模型
触发有时有效验证 Imaging Setup 中将触发设置为 Manual

9.2 MQTT 问题

问题快速解决方法
MQTT 节点上的红点检查你设置中的 MQTT broker 连接
部署按钮呈灰色先在画布上任意单击,然后再尝试部署
节点无法连接确保你是从右侧的小方块拖动连接的
备注

仍然卡住? 请再次确认 MQTT 通信已正确设置(请参阅 MQTT 通信设置 指南)。

You Did It! 🎉

恭喜! 现在您已能远程控制您的 OV10i 摄像头。仅需几次点击,您就构建了一个可以:

  • 在网络上的任意位置触发检测
  • 在手机、平板、电脑等设备上工作——任何能够发送 MQTT 消息的设备
  • 与其他系统集成,如 PLCs、传感器或自定义应用
  • 通过使用不同的配方编号扩展到多台摄像头

What's Next?

现在您已有基础功能,可以这样继续:

Easy Next Steps

  • 使用 MQTT 应用从不同设备进行测试
  • 为不同的配方创建多个触发器
  • 将此功能加入您的生产工作流程

Advanced Ideas

  • 连接到 PLCs 以实现自动化生产线
  • 构建可触发多台摄像头的自定义应用
  • 添加结果转发 将检测数据发送到其他位置
  • 创建带触发按钮的操作员仪表板

现实世界案例

以下是其他人如何使用 MQTT 触发:

  • 质量控制站(Quality Control Stations): 操作员扫描条码,系统触发相机检测
  • 传送线(Conveyor Lines): 传感器检测到部件,自动触发检验
  • 手动检验(Manual Inspection): 带有简单“Inspect”按钮的平板供操作员使用
  • 生产监控(Production Monitoring): 中央系统协调多台摄像头

可能性是无穷的 - 一切都始于你刚刚构建的简单系统!

🔗 相关链接