如何使用SmartEdge Agile和Brainium平台来实现人工智能驱动的智能紧急开关设备

  发布人:amy2025 时间:2025-08-15

智能紧急开关是一种概念验证设备,它可以作为紧急开关,但也可以学习设备的正常操作方式,并能够自动检测故障。

当检测到故障时,设备会自动关闭,这样可以避免事故或伤害。

为了概念的证明,我使用了用于PCB钻孔的电机,但这个概念也应该适用于更大的设备。

开始

•为了能够使用我们的SmartEdge Agile设备,首先我们需要在Brainium平台上创建一个帐户。这可以使用web浏览器,并使用注册按钮来完成。

•在成功注册后,有一个关于Brainium平台的快速介绍。

•接下来,我们可以下载Brainium Gateway应用到我们的手机上,并使用我们新创建的账户登录。这款手机将作为一个网关,连接大脑传送门和我们通过蓝牙连接的人工智能设备。

•网关也应该显示在web界面中。

•现在,我们应该能够添加我们的SmartEdge Agile。这可以在Devices选项卡中完成。

•设备将在Brainium应用程序中显示为已连接。

现在我们可以开始创建项目了。

硬件设置

对于第一个实验,我们将使用SmartEdge Agile设备,安装在使用PCB钻孔的电机上:

然后我们还需要一个树莓派3B+,上面有一个PiFace数字2帽:

预见性维护

为了试验预测性维护,我们可以从左侧菜单栏访问相应的页面:

当我们第一次打开监视器识别或预测性维护页面时,门户向我们展示了一个快速教程:

第一步是创建一个工作区:

选择要使用的设备后,进入“初始学习”阶段。

初始学习阶段

在这个阶段,平台试图了解我们的设备如何正常运行。它尝试识别静态(状态)和动态(状态之间的转换)模式,基于SmartEdge Agile的传感器数据。

在下面的例子中,我多次打开和关闭电机。然后,我相应地标记检测到的模式。

在我的案例中,检测到以下模式:

•电动机(固定)

•电动机启动(动态)

•马达开(静止)

•电机停止(动态)

注意:有时相同的逻辑状态(exMotor ON)在不同的时间实例中被检测为不同的模式。因为有调整学习的选项,所以我决定只在末尾用数字标记不同的模式(例如。电机ON 2)。

持续学习阶段

一旦我们有了足够的数据,我们就可以生成预测性维护的模型:

然后我们可以将模型应用到设备上:

在此之后,设备进入持续学习阶段:

在这个阶段,平台仍然学习新的模式并检测现有的模式。此外,该平台还会尝试检测异常情况,如峰值或扩展动态状态。

在event选项卡中,我们可以看到生成的事件:

我还尝试堵塞马达,看看系统如何反应。

阻塞有时被检测为峰值/扩展动态状态,但有时被检测为动态/平稳模式。尽管将阻塞检测为正常模式并不是最优的,但我们仍然可以使用它们。我用Clog 1/2/3标记了检测到的模式,所以以后我们仍然可以将这些状态识别为“有问题”。

仪表板和AI规则

Brainium平台还支持创建仪表板和定义规则。要使用这些,我们需要创建一个项目

指示板

仪表板是不同类型的小部件的集合。我们可以创建简单的小部件来跟踪SmartEdge Agile的一个传感器

或者由我们的预测性维护AI模型支持的AI小部件:

我最终得到了下面这个仪表盘:

人工智能规则

要创建AI规则,我们需要转到Device选项卡,然后点击AI Rules列中的数字:

当警报被破坏时,我们会在警报页面中看到它:

上述页面中的大多数数据和警报也可以通过Brainium api以编程方式访问。稍后我们将使用这些来实现智能人工智能供电紧急开关。

一个简单的应急开关

为了创建紧急开关,我们将使用带有PiFace Digital 2帽的树莓派3B+。

电机和电源应按如下方式连接到PiFace数字2的继电器0上:

紧急开关应该很难打开,但很容易关闭。这样我们可以避免意外打开,但在紧急情况下,开关可以迅速关闭。

为了实现这样的行为,我们可以使用PiFace的4个按钮:

要打开开关,所有4个按钮都需要按一次(以任何顺序)

要关闭开关,只需按一下4个按钮中的任何一个即可

4个指示灯(7-4)表示4个按钮的状态,另一个指示灯(0)表示紧急开关的状态。

紧急开关的代码是用Python编写的,使用的是pifacedigitalio库。

代码非常简单。我们有一个smartEmergencySwitch.py文件,里面有两个函数:

switch_pressed()函数处理单个按钮的事件:

MQTT API——可用于获取实时遥测数据

由于需要实时数据,我们将使用MQTT API。

要访问API,我们需要:

用户ID和MQTT密码—这些可以在Profile页面下找到

设备ID -这是一个形式TOXXX-0XXXXXXXXXXXXXXX的唯一ID -可以在多个页面中找到,为。提醒页面前

MQTT API提供了多个主题来订阅不同类型的数据和事件。我尝试了多个主题,但我发现预测性维护事件主题是最合适的。

预测性维护事件提供有关设备当前状态和检测到的异常情况的事件。这些事件的MQTT主题是/v1/users/{user_id}/in/devices/{device_id}/datasources/PDM_EVENT

我们可以使用这些数据来实现智能停止功能。使用我实现的逻辑,在以下情况下会发出问题信号:

检测到类型为SPIKE或EXTENDED_DYNAMIC的异常

当前状态是任何已知的Clog状态

当检测到问题时,紧急开关进入一个称为ERROR的新状态。在这个ERRORstate中,与OFF状态一样,开关被关闭,但是错误也由两个led发出信号。紧急开关可以复位到关闭状态,通过按下任何按钮。

与Brainium平台的交互在brainiumClient.py文件中实现。代码基于API文档中的MQTT示例,并使用了Paho MQTT库。

首先,我们连接到MQTT服务器并订阅PDM_EVENT主题。接收到的事件在on_message()函数中处理

结论和未来的改进

我们可以看到,这个概念总体上是有效的,并且肯定会提高工作设备的安全性。

故障检测有点慢,但如果模式检测在树莓派上本地运行,就可以解决。

关键词: 人工智能 树莓派 智能紧急开关

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关电路