跳到主要内容

AI 驱动文档

您想了解什么?

通过 MQTT 触发

本教程演示如何使用简单的 MQTT 消息远程触发 OV10i 摄像机。只需几个步骤,您就能拥有一个能够在网络中任意位置捕获并处理图像的系统——无需复杂编程!

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

预计时长: 20-30 分钟

难度等级: 初学者

实际示例: 想象在操作员平板上的按钮能够立即触发摄像机对零件进行检查——这正是我们正在构建的系统,只不过是使用 MQTT 消息,而非按钮。

先决条件

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

  • OV10i 摄像机已连接并正常工作
  • 已设置并就绪的配方(recipe)
  • MQTT 通信已配置(如需要,请参阅 MQTT Communication Setup 指南)
备注

在 Imaging Setup 中将相机触发设置为 Manual——这会告诉相机等待您的远程命令,而不是自动拍摄。

为什么通过 MQTT 触发很简单

OV10i 让远程触发变得简单:

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

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

第1步:快速摄像机检查

1.1 将相机设置为 Manual 触发

  1. 进入你的配方编辑器
  2. 点击“Imaging Setup”
  3. 找到 Trigger Mode 并将其设为 “Manual”
  4. 点击“保存”

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

1.2 找到你的配方编号

  1. 在配方编辑器中查看浏览器的地址栏
  2. /recipe/ 之后找到数字(举例:如果 URL 显示 /recipe/10,你的配方编号是 10)
  3. 把这个数字写下来 —— 几分钟后你会需要它

image.png

第2步:打开 Flow Builder

2.1 进入 Node-RED

  1. 在你的配方编辑器中,点击 “Configure IO” 或在面包屑菜单中选择 “IO Block”

2.2 全新开始

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

让我们开始!

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

以下是你需要了解的一切:相机需要两条简短消息即可远程拍照。

  1. 第一条消息:“Hey camera, get ready for a remote command”
  2. 第二条消息:“Now take a picture!”

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. 将名称改为 "Remote Trigger"
  3. 点击 "Done"

4.2 设置消息 1 (Get Ready Command)

  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 (Take Picture Command)

  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步:将所有内容连接在一起

这是有趣的部分! 现在将你的节点连接起来,创建工作流。

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. 在右上角点击红色的 "Deploy" 按钮
  2. 你应该看到 "Successfully deployed" 消息

6.2 试用

  1. 在摄像头前放置一个工件(用于测试)
  2. 点击你在 "Remote Trigger" 节点上的按钮
  3. 观看摄像头拍照!

成功迹象:

  • 摄像头 LED 短暂闪烁
  • 听到检测处理的声音
  • 库中出现新图像

6.3 查看结果

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

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

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

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

想要从手机、平板或另一台计算机触发? 操作如下:

7.1 通过任意 MQTT App

下载任意 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”节点中检查配方编号是否正确
相机拍照但未执行检测确保配方处于激活状态并且有训练好的模型
触发有时有效请在成像设置中将触发设置为 Manual

9.2 MQTT 问题

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

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

成功完成!🎉

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

  • 从网络中的任意位置触发检测
  • 支持手机、平板、计算机等设备——任何能够发送 MQTT 消息的设备
  • 与其他系统集成,如 PLC、传感器,或自定义应用程序
  • 通过使用不同的配方编号实现对多台相机的扩展

下一步?

现在基础功能已就绪,您可以:

简单的后续步骤

  • 使用 MQTT 应用在不同设备上测试
  • 为不同配方创建多个触发器
  • 将此添加到您的生产工作流程

高级想法

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

实际应用示例

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

  • Quality Control Stations: 操作员扫描条码,系统触发相机巡检
  • Conveyor Lines: 传感器检测到部件后,自动触发检测
  • Manual Inspection: 操作员使用带有简单 "Inspect" 按钮的平板
  • Production Monitoring: 中央系统协调多台相机

The possibilities are endless - 这一切都始于你刚刚搭建的简单系统!

🔗 相关链接