跳到主要内容

通过 MQTT 触发

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

您将构建的内容: 一个简单的远程触发器,通过发送基础消息即可启动摄像头检测。

预计时间: 20-30 分钟

技能等级: 初学者

真实示例: 想象一下操作员平板上的一个按钮,能立即触发摄像头对零件进行检测——这正是我们要构建的,只不过用 MQTT 消息代替按钮。

先决条件

开始前,请确保您具备:

  • 已连接并正常工作的 OV80i 摄像头
  • 已设置并准备好的配方
  • 已配置 MQTT 通信(如需帮助,请参阅“MQTT Communication Setup”指南)
备注

您的摄像头触发模式必须在 Imaging Setup 中设置为 Manual ——这意味着摄像头将等待您的远程命令,而非自动拍摄。

为什么 MQTT 触发如此简单

OV80i 让远程触发变得轻松:

  • 无需编程 ——只需拖拽并连接几个节点
  • 即时响应 ——发送消息即可立即获得结果
  • 消息可靠 ——MQTT 确保命令传达至摄像头
  • 任何设备均可触发 ——平板、电脑、PLC 或传感器均可

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

步骤 1:快速检查摄像头

1.1 设置摄像头为手动触发

  1. 进入您的 Recipe Editor
  2. 点击“Imaging Setup”
  3. 找到 Trigger Mode 并设置为“Manual”
  4. 点击保存

为何选择 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 触发的简单秘诀

您只需知道:摄像头需要两条快速消息来远程拍照。

  1. 第一条消息:“摄像头,准备接收远程命令”
  2. 第二条消息:“现在拍照!”

3.1 拖拽以下 5 个节点到画布

从左侧面板拖拽到主区域:

  1. Inject(输入部分)——作为“触发按钮”
  2. Change(函数部分)——用于消息 1
  3. Delay(函数部分)——消息间的短暂延迟
  4. Change(函数部分)——用于消息 2
  5. MQTT Out(网络部分)——发送消息到摄像头

image.png

步骤 4:配置节点

4.1 设置触发按钮

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

4.2 配置消息 1(准备命令)

  1. 双击第一个 Change 节点
  2. 将名称改为“Get Ready”
  3. 点击“Add”,选择“SET”
  4. 设置 msg.topicstream_mode/set
  5. 再次点击“Add”,选择“SET”
  6. 设置 msg.payloadHMI_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.topichmi/[YOUR_RECIPE_NUMBER]/capture_mode
  5. 将 [YOUR_RECIPE_NUMBER] 替换为您的实际编号(如 hmi/10/capture_mode
  6. 再次点击“Add”,选择“SET”
  7. 设置 msg.payloadsingle
  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 应用

下载任意 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:

# 第一条消息
mosquitto_pub -h [CAMERA_IP] -t "stream_mode/set" -m "HMI_MODE"

# 第二条消息(将 10 替换为您的配方编号)
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”节点中的配方编号是否正确
摄像头拍照但无检测确认配方处于激活状态且有训练模型
触发偶尔有效确认 Imaging Setup 中触发模式为 Manual

9.2 MQTT 问题

问题快速解决方案
MQTT 节点显示红点检查 MQTT broker 连接配置
Deploy 按钮灰显先点击画布空白处,再尝试 Deploy
节点无法连接确保从节点右侧小方块拖动连线
备注

仍有问题? 请再次确认 MQTT 通信配置正确(参见 MQTT Communication Setup 指南)。

您完成了!🎉

恭喜! 您已成功实现 OV80i 摄像头的远程控制。只需几次点击,您就构建了一个能够:

  • 从网络任何位置触发检测
  • 支持手机、平板、电脑等所有能发送 MQTT 消息的设备
  • 与 PLC、传感器或自定义应用集成
  • 通过不同配方编号扩展至多台摄像头

下一步?

基础功能已完成,您可以:

简单后续步骤

  • 使用不同设备测试 MQTT 触发
  • 为不同配方创建多个触发器
  • 将此功能集成到生产流程中

高级应用

  • 连接 PLC,实现自动化生产线控制
  • 开发自定义应用,触发多台摄像头
  • 添加结果转发,发送检测数据至其他系统
  • 创建操作员仪表盘,集成触发按钮

真实案例

以下是其他用户如何使用 MQTT 触发的示例:

  • 质量控制站: 操作员扫描条码,系统自动触发摄像头检测
  • 输送线: 传感器检测到工件,自动触发检测
  • 人工检测: 操作员使用带“检测”按钮的平板
  • 生产监控: 中央系统协调多台摄像头工作

可能性无限 ——一切都从您刚刚构建的简单系统开始!

🔗 相关链接