如何使用SmartEdge Agile和Brainium平臺來實現(xiàn)人工智能驅(qū)動的智能緊急開關(guān)設(shè)備
智能緊急開關(guān)是一種概念驗證設(shè)備,它可以作為緊急開關(guān),但也可以學習設(shè)備的正常操作方式,并能夠自動檢測故障。
當檢測到故障時,設(shè)備會自動關(guān)閉,這樣可以避免事故或傷害。
為了概念的證明,我使用了用于PCB鉆孔的電機,但這個概念也應該適用于更大的設(shè)備。
開始
?為了能夠使用我們的SmartEdge Agile設(shè)備,首先我們需要在Brainium平臺上創(chuàng)建一個帳戶。這可以使用web瀏覽器,并使用注冊按鈕來完成。
?在成功注冊后,有一個關(guān)于Brainium平臺的快速介紹。
?接下來,我們可以下載Brainium Gateway應用到我們的手機上,并使用我們新創(chuàng)建的賬戶登錄。這款手機將作為一個網(wǎng)關(guān),連接大腦傳送門和我們通過藍牙連接的人工智能設(shè)備。
?網(wǎng)關(guān)也應該顯示在web界面中。
?現(xiàn)在,我們應該能夠添加我們的SmartEdge Agile。這可以在Devices選項卡中完成。
?設(shè)備將在Brainium應用程序中顯示為已連接。
現(xiàn)在我們可以開始創(chuàng)建項目了。
硬件設(shè)置
對于第一個實驗,我們將使用SmartEdge Agile設(shè)備,安裝在使用PCB鉆孔的電機上:
然后我們還需要一個樹莓派3B+,上面有一個PiFace數(shù)字2帽:
預見性維護
為了試驗預測性維護,我們可以從左側(cè)菜單欄訪問相應的頁面:
當我們第一次打開監(jiān)視器識別或預測性維護頁面時,門戶向我們展示了一個快速教程:
第一步是創(chuàng)建一個工作區(qū):
選擇要使用的設(shè)備后,進入“初始學習”階段。
初始學習階段
在這個階段,平臺試圖了解我們的設(shè)備如何正常運行。它嘗試識別靜態(tài)(狀態(tài))和動態(tài)(狀態(tài)之間的轉(zhuǎn)換)模式,基于SmartEdge Agile的傳感器數(shù)據(jù)。
在下面的例子中,我多次打開和關(guān)閉電機。然后,我相應地標記檢測到的模式。
在我的案例中,檢測到以下模式:
?電動機(固定)
?電動機啟動(動態(tài))
?馬達開(靜止)
?電機停止(動態(tài))
注意:有時相同的邏輯狀態(tài)(exMotor ON)在不同的時間實例中被檢測為不同的模式。因為有調(diào)整學習的選項,所以我決定只在末尾用數(shù)字標記不同的模式(例如。電機ON 2)。
持續(xù)學習階段
一旦我們有了足夠的數(shù)據(jù),我們就可以生成預測性維護的模型:
然后我們可以將模型應用到設(shè)備上:
在此之后,設(shè)備進入持續(xù)學習階段:
在這個階段,平臺仍然學習新的模式并檢測現(xiàn)有的模式。此外,該平臺還會嘗試檢測異常情況,如峰值或擴展動態(tài)狀態(tài)。
在event選項卡中,我們可以看到生成的事件:
我還嘗試堵塞馬達,看看系統(tǒng)如何反應。
阻塞有時被檢測為峰值/擴展動態(tài)狀態(tài),但有時被檢測為動態(tài)/平穩(wěn)模式。盡管將阻塞檢測為正常模式并不是最優(yōu)的,但我們?nèi)匀豢梢允褂盟鼈?。我用Clog 1/2/3標記了檢測到的模式,所以以后我們?nèi)匀豢梢詫⑦@些狀態(tài)識別為“有問題”。
儀表板和AI規(guī)則
Brainium平臺還支持創(chuàng)建儀表板和定義規(guī)則。要使用這些,我們需要創(chuàng)建一個項目
指示板
儀表板是不同類型的小部件的集合。我們可以創(chuàng)建簡單的小部件來跟蹤SmartEdge Agile的一個傳感器
或者由我們的預測性維護AI模型支持的AI小部件:
我最終得到了下面這個儀表盤:
人工智能規(guī)則
要創(chuàng)建AI規(guī)則,我們需要轉(zhuǎn)到Device選項卡,然后點擊AI Rules列中的數(shù)字:
當警報被破壞時,我們會在警報頁面中看到它:
上述頁面中的大多數(shù)數(shù)據(jù)和警報也可以通過Brainium api以編程方式訪問。稍后我們將使用這些來實現(xiàn)智能人工智能供電緊急開關(guān)。
一個簡單的應急開關(guān)
為了創(chuàng)建緊急開關(guān),我們將使用帶有PiFace Digital 2帽的樹莓派3B+。
電機和電源應按如下方式連接到PiFace數(shù)字2的繼電器0上:
緊急開關(guān)應該很難打開,但很容易關(guān)閉。這樣我們可以避免意外打開,但在緊急情況下,開關(guān)可以迅速關(guān)閉。
為了實現(xiàn)這樣的行為,我們可以使用PiFace的4個按鈕:
要打開開關(guān),所有4個按鈕都需要按一次(以任何順序)
要關(guān)閉開關(guān),只需按一下4個按鈕中的任何一個即可
4個指示燈(7-4)表示4個按鈕的狀態(tài),另一個指示燈(0)表示緊急開關(guān)的狀態(tài)。
緊急開關(guān)的代碼是用Python編寫的,使用的是pifacedigitalio庫。
代碼非常簡單。我們有一個smartEmergencySwitch.py文件,里面有兩個函數(shù):
switch_pressed()函數(shù)處理單個按鈕的事件:
MQTT API——可用于獲取實時遙測數(shù)據(jù)
由于需要實時數(shù)據(jù),我們將使用MQTT API。
要訪問API,我們需要:
用戶ID和MQTT密碼—這些可以在Profile頁面下找到
設(shè)備ID -這是一個形式TOXXX-0XXXXXXXXXXXXXXX的唯一ID -可以在多個頁面中找到,為。提醒頁面前
MQTT API提供了多個主題來訂閱不同類型的數(shù)據(jù)和事件。我嘗試了多個主題,但我發(fā)現(xiàn)預測性維護事件主題是最合適的。
預測性維護事件提供有關(guān)設(shè)備當前狀態(tài)和檢測到的異常情況的事件。這些事件的MQTT主題是/v1/users/{user_id}/in/devices/{device_id}/datasources/PDM_EVENT
我們可以使用這些數(shù)據(jù)來實現(xiàn)智能停止功能。使用我實現(xiàn)的邏輯,在以下情況下會發(fā)出問題信號:
檢測到類型為SPIKE或EXTENDED_DYNAMIC的異常
當前狀態(tài)是任何已知的Clog狀態(tài)
當檢測到問題時,緊急開關(guān)進入一個稱為ERROR的新狀態(tài)。在這個ERRORstate中,與OFF狀態(tài)一樣,開關(guān)被關(guān)閉,但是錯誤也由兩個led發(fā)出信號。緊急開關(guān)可以復位到關(guān)閉狀態(tài),通過按下任何按鈕。
與Brainium平臺的交互在brainiumClient.py文件中實現(xiàn)。代碼基于API文檔中的MQTT示例,并使用了Paho MQTT庫。
首先,我們連接到MQTT服務器并訂閱PDM_EVENT主題。接收到的事件在on_message()函數(shù)中處理
結(jié)論和未來的改進
我們可以看到,這個概念總體上是有效的,并且肯定會提高工作設(shè)備的安全性。
故障檢測有點慢,但如果模式檢測在樹莓派上本地運行,就可以解決。
本文編譯自hackster.io