跳到主要内容

AI 驱动文档

您想了解什么?

通过 MQTT 触发

本教程向您展示如何使用简单的 MQTT 消息远程触发您的 OV10i 摄像头。只需几个步骤,您就可以拥有一个能够从网络任何位置捕获和处理图像的系统 - 无需复杂的编程!

您将构建: 一个简单的远程触发器,让您通过在网络上发送基本消息来启动相机检查。

预计时间: 20-30 分钟

技能等级: 初级

实际示例: 想象一下操作员平板电脑上的一个按钮,按下它即可立即触发相机检查零件 - 这正是我们要构建的功能,只不过使用的是 MQTT 消息而不是按钮。

先决条件​

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

  • OV10i 摄像头已连接并正常工作
  • 已设置并准备好使用的程序
  • MQTT 通信已配置(如有需要,请参阅 MQTT 通信设置 指南)
备注

您的相机触发器必须在图像设置中设置为 Manual - 这会告诉相机等待您的远程命令,而不是自动捕获。

为什么 MQTT 触发很简单​

OV10i 使远程触发变得简单:

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

适用于: 远程检查控制、自动化生产线,或任何需要从其他位置触发相机的场景。

第一步:快速相机检查​

1.1 将相机设置为手动触发​

  1. 进入您的程序编辑器
  2. 点击"图像设置"
  3. 找到触发模式并将其设置为 "Manual"
  4. 点击保存

为什么选择 Manual? 这会告诉相机"等待我的命令",而不是自动拍照。

1.2 查找您的程序编号​

  1. 在程序编辑器中查看浏览器地址栏
  2. 找到 /recipe/ 后面的数字(示例:如果 URL 显示 /recipe/10,则您的程序编号为 10)
  3. 记下该编号 - 几分钟后您会用到它

image.png

第二步:打开流程构建器​

2.1 进入 Node-RED​

  1. 在您的程序编辑器中,点击 "Configure IO" 或在面包屑菜单中选择 "IO模块"

2.2 重新开始​

如果您在画布上看到其他节点,那没关系 - 我们只需在它们旁边添加新的触发流程即可。

让我们开始吧!

第三步: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.1 设置触发按钮​

  1. 双击 Inject 节点
  2. 将名称更改为 "Remote Trigger"
  3. 点击 "Done"

4.2 设置消息 1(准备命令)​

  1. 双击第一个 Change 节点
  2. 将名称更改为 "Get Ready"
  3. 点击 "Add" 并选择 "SET"
  4. 将 msg.topic 设置为 stream_mode/set
  5. 再次点击 "Add" 并选择 "SET"
  6. 将 msg.payload 设置为 HMI_MODE
  7. 点击 "Done"

作用: 告诉相机"准备接收远程命令"。

image.png

4.3 添加短暂延迟​

  1. 双击 Delay 节点
  2. 将延迟设置为 10 毫秒
  3. 点击 "Done"

为什么? 给相机一点时间来做好准备。

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

  1. 双击第二个 Change 节点
  2. 将名称更改为 "Take Picture"
  3. 点击 "Add" 并选择 "SET"
  4. 将 msg.topic 设置为 hmi/[YOUR_RECIPE_NUMBER]/capture_mode
  5. 将 [YOUR_RECIPE_NUMBER] 替换为你的实际程序编号(例如 hmi/10/capture_mode)
  6. 再次点击 "Add" 并选择 "SET"
  7. 将 msg.payload 设置为 single
  8. 点击 "Done"

作用: 告诉相机"立即拍一张照片!"

image.png

4.5 设置消息发送器​

  1. 双击 MQTT Out 节点
  2. 选择你的 MQTT broker(应已配置好)
  3. 将名称更改为 "Send to Camera"
  4. 点击 "Done"

第五步:连接所有节点​

这是有趣的部分! 现在我们连接各个节点以创建流程。

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.1 激活你的流程​

  1. 点击右上角的红色 "Deploy" 按钮
  2. 你应该会看到 "Successfully deployed" 消息

6.2 试用​

  1. 将零件放置在相机前(用于测试)
  2. 点击 "Remote Trigger" 节点上的按钮
  3. 观察相机拍照!

成功标志:

  • 相机 LED 短暂闪烁
  • 你会听到检查处理的声音
  • 新图像出现在库中

6.3 查看结果​

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

如果成功: 恭喜!你已成功远程触发了相机。

如果失败: 请查看下方的故障排除部分。

第七步:从其他设备使用(可选)​

想从手机、平板或其他电脑触发? 方法如下:

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"

就这样! 您的相机将从网络上的任何位置拍摄图像。

第 8 步:验证与测试​

8.1 端到端测试​

完整工作流验证:

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

8.2 性能验证​

监控以下指标:

  • 触发响应时间: 从 MQTT 消息到图像捕获
  • 处理时长: 完成检查所需时间
  • 结果交付: Debug 输出时序
  • 系统可靠性: 多次测试中的稳定触发

8.3 生产就绪​

部署到生产环境之前:

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

第 9 步:快速故障排除​

无法工作?以下是最常见的修复方法:

9.1 相机不拍照​

问题快速修复
点击触发时没有任何反应检查 "Take Picture" 节点中的程序编号是否正确
相机拍照但不进行检查确保您的程序处于活动状态并有已训练的模型
触发有时有效验证在图像设置中已将触发器设置为 Manual

9.2 MQTT 问题​

问题快速修复
MQTT 节点上有红点检查设置中的 MQTT broker 连接
Deploy 按钮显示为灰色先在画布的任意位置点击,然后再尝试 Deploy
节点无法连接确保您是从右侧的小方块开始拖动
备注

仍无法解决? 请再次确认 MQTT 通信已正确设置(参见 MQTT 通信设置 指南)。

您做到了!🎉​

恭喜! 现在您已经可以远程控制 OV10i 相机。只需几次点击,您就构建了一个能够实现以下功能的系统:

  • 从网络上的任何位置触发检查
  • 与手机、平板、电脑配合使用 - 任何能够发送 MQTT 消息的设备
  • 与其他系统集成,如 PLC、传感器或自定义应用程序
  • 通过使用不同的程序编号扩展到多个相机

下一步​

现在基础功能已经可以工作了,您可以:

简单的后续步骤​

  • 使用 MQTT 应用从不同设备进行测试
  • 为不同的程序创建多个触发器
  • 将其添加到您的生产工作流中

高级想法​

  • 连接到 PLC 用于自动化生产线
  • 构建自定义应用程序,触发多个相机
  • 添加结果转发,将检查数据发送到其他位置
  • 创建带有触发按钮的操作员仪表板

实际应用示例​

以下是其他用户使用 MQTT 触发的方式:

  • 质量控制站: 操作员扫描条形码,系统触发相机检查
  • 传送带生产线: 传感器检测到部件,自动触发检查
  • 人工检查: 使用带有简单"检查"按钮的平板电脑供操作员使用
  • 生产监控: 中央系统协调多个相机

可能性无穷无尽 - 一切都始于您刚刚构建的这个简单系统!

🔗 另请参阅​