如何使用SmartEdge Agile和Brainium平台来实现人工智能驱动的智能紧急开关设备
扫描二维码
随时随地手机看文章
智能紧急开关是一种概念验证设备,它可以作为紧急开关,但也可以学习设备的正常操作方式,并能够自动检测故障。
当检测到故障时,设备会自动关闭,这样可以避免事故或伤害。
为了概念的证明,我使用了用于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()函数中处理
结论和未来的改进
我们可以看到,这个概念总体上是有效的,并且肯定会提高工作设备的安全性。
故障检测有点慢,但如果模式检测在树莓派上本地运行,就可以解决。
本文编译自hackster.io