跳到主要内容

通过 MQTT 触发

本教程展示如何使用简单的 MQTT 消息远程触发你的 OV80i 摄像头。只需几个步骤,你就可以在网络中的任意位置捕获和处理图像——无需复杂编程!

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

预计用时: 20-30 分钟

难度等级: 初学者

实际示例: 想象一个操作员平板上的按钮能够立即触发摄像头去检测一个零件——这正是我们要构建的,但使用 MQTT 消息而不是按钮。

前提条件

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

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

您的摄像头触发在 Imaging Setup 中必须设置为 Manual - 这会让摄像头等待您的远程命令,而不是自动拍摄。

为什么 MQTT 触发很简单

OV80i 让远程触发变得简单:

  • 无需编码——只需拖放并连接少量节点
  • 立即工作——发送消息,立即获得结果
  • 可靠的消息传递——MQTT 确保命令到达摄像头
  • 任何设备都能触发——平板、计算机、PLC 或传感器

适用于: 远程检测控制、自动化生产线,或任何需要从另一地点触发摄像头的情景。

步骤 1:快速检查摄像头

1.1 将摄像头设为 Manual Trigger

  1. 进入你的 Recipe Editor
  2. 点击 "Imaging Setup"
  3. 找到 Trigger Mode 并设为 "Manual"
  4. 点击 Save

为什么要选择 Manual? 这会让摄像头“等待我的命令”,而不是自动拍摄。

1.2 找到你的配方编号

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

image.png

步骤 2:打开 Flow Builder

2.1 进入 Node-RED

  1. 在你的 Recipe Editor 中,点击 "IO Block"
  2. 点击 "Configure IO"

2.2 全新开始

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

让我们开始吧!

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

你需要知道的全是:摄像头需要 2 条快速消息才能远程拍照。

  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

Step 4: Configure Your Nodes

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"

Step 5: Connect Everything Together

This is the fun part! 现在将您的节点连接起来以创建流程。

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. 你将看到一条灰色线将它们连接起来

Step 6: Test Your Remote Trigger

6.1 启动您的流程

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

6.2 试用

  1. 将部件放在相机前面进行测试
  2. 点击 "Remote Trigger" 节点上的按钮
  3. 观察相机拍照!

成功迹象:

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

6.3 查看结果

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

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

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

Step 7: Use It from Other Devices (Optional)

想要从手机、平板或另一台计算机触发?以下是方法:

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"

就这样! 您的摄像头将从网络上的任意位置拍照。

第 8 步:验证与测试

8.1 端到端测试

完整工作流验证:

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

8.2 性能验证

监控以下指标:

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

8.3 生产就绪

在部署到生产环境之前:

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

步骤 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: 中央系统协调多台相机

可能性无穷大——这一切都源自您刚刚构建的这套简单系统!

🔗 相关链接