Skip to content

阿里雲物聯網平臺與資料庫

概述

阿里雲提供RDS資料庫功能 (包含MySQL, MS SQL資料庫) ,HMI可以直接連入並存取資料。另外方面,使用阿里雲物聯網平臺,能將HMI所取得的資料,以MQTT方式接入雲上,透過規則引擎轉發至其他裝置,實現資料轉發的M2M雙向通訊功能。同時也可以直接轉發至阿里雲RDS資料庫,快速且直接將資料匯入後臺雲服務應用。

雲資料庫RDS版

阿里雲關係型資料庫(Relational Database Service,簡稱RDS)是一種穩定可靠、可彈性伸縮的線上資料庫服務,並且提供了容災、備份、恢復、監控、遷移等方面的全套解決方案,徹底解決資料庫運維的煩惱。威綸通人機支援的MySQL(最受歡迎的開源資料庫)、MS SQL Server(大量企業採用的資料庫) 都可以在阿里雲端上建立執行。

購買實例

資料庫為付費服務,需要於阿里雲內購買或申請RDS資料庫實例。購買方式與套餐費用請參考阿里雲的說明文件。購買實例後,便可以在雲資料庫RDS列表中看到目前可以運作的資料庫資源。

若要實現自物聯網平臺接入資料直接存取到資料庫(規則引擎),資料庫實例地域設定必須與物聯網平臺平臺相同,目前僅中國國內僅華東二 (上海)伺服器同時支援此兩個功能。

實例基礎設定

地址管理

進入資料庫實例管理頁面,於基本資訊處,可看到內網地址,表示由阿里雲服務連入資料庫所用的地址。另外如有從外網連入需求(阿里雲伺服器之外),例如從HMI寫入資料庫,就必須啟用外網地址;以此外網地址,才能允許由外部連入存取資料庫。

創造高許可權賬號

在賬號管理中,建立一個賬號,這個賬號將擁有此資料庫的最高許可權。利用此賬號,再進入資料庫管理其他一般連入用賬號。

白名單設定

為保障資料庫存取安全,需要在資料安全性設定頁中,事先輸入允許訪問的地址,包含其他阿里雲服務。設定說明請參考阿里雲文件說明。如果要從HMI/計算機訪問,則需要將該HMI/計算機的外網IP加入此白名單中。

登入資料庫

使用“登入資料庫” 按鈕,可開啟阿里雲提供的資料庫管理工具(DMS)。第一次先使用以上建立的高許可權賬號登入。以高許可權賬號登入後,可以在DMS中創造管理其他賬戶。爾後便可以使用其他客戶端軟體程式(Workbench, DBMS)連入資料庫,或是使用HMI連入。

HMI連入

如果有遠端直接存取的需求。(例如:直接用HMI,或是PC端DBMS系統連入阿里雲資料庫) 請務必啟用外網地址,並且將IP地址加入白名單。

管理資料庫

要管理資料庫內容資料,資料庫使用者帳戶,需要使用高許可權賬號登入資料庫後設定。點選上方登入資料庫,即開啟阿里雲RDS資料庫DMS系統登入頁面,輸入內網地址:埠和高許可權賬號登入系統。

登入後可見資料庫的內容、狀態以及運算元據庫的功能列表。

物聯網平臺

物聯網平臺可使用HMI的MQTT功能連入傳送訊息。本章節說明連入阿里雲物聯網平臺的操作步驟。目前區域僅支援 華東二 (上海)區域伺服器。

阿里雲設定

首先,需在[物聯網平臺]>>[產品管理]中建立產品,使用基礎版,節點型別=裝置,自定義產品名稱後,按下確定建立產品。

進入[裝置管理]中,由下拉選單中選擇上一步建立的產品,並進入新增裝置步驟。新增完成後會提示此裝置的ProductKey, DeviceName, DeviceSecret,記下這些資料以作為後續MQTT連入的使用引數。回到裝置列表中可以觀看裝置連入的狀態。

物聯網平臺上的裝置即表示一臺裝置資料的接入點,因此在此要為每一臺HMI在雲上新增一個對應裝置,直到所有要上傳資料的人機在物聯網平臺上都有對應裝置為止。

檢視裝置詳情的頁面,可以取得Topic 列表,表示這個裝置使用的Topic。Topic名稱會包含了ProduceKey, DeviceName。Update表示釋出的Topic,由HMI釋出到這個Topic,物聯網平臺就會接收到。

EBPro 設定

EBPro端,將利用MQTT功能連上阿里雲,傳送資料上阿里雲物聯網平臺。

  1. MQTT中的Server設定
雲端服務一般
通訊協議MQTT v3.1.1
域名勾選使用域名。華東二 節點為
[ProductKey].iot-as-mqtt.cn-shanghai.aliyuncs.com
埠號1883
Client ID[ConnectID]|securemode=3,signmethod=hmacsha1,timestamp=123|
[ConnectID]可以是自定義的值。
驗證要勾選
使用者名稱稱[DeviceName]&[ProductKey]
密碼以sha1演算法用以下資料計算出之HMAC
訊息: clientId[clientId]deviceName[deviceName]
productKey[productKey]timestamp123
金鑰:[DeviceSecret]
可提供此計算的一個網站
https://1024tools.com/hmac

備註:[XXXX] 請連同[]以實際的數值取代,例如: deviceName值是mydevice就是代表 [deviceName]要用mydevice進行取代。

  1. MQTT Topic設定

原則上,從HMI上傳資料是屬於釋出,即update。因此,在MQTT中設定Topic釋出並用完整的topic名為: /[ProductKey]/[deviceName]/update。QoS設定不支援QoS 2。格式建議保持使用JSON,方便後續解析運用。Topic所內含的資料為希望自HMI上傳的地址。

建立檢查

設計工程檔案完成後,使用模擬或是下載到HMI上。正常聯機狀況下,MQTT狀態會顯示已連線。

規則引擎

利用規則引擎,可以將訊息傳送到其他的阿里雲服務。例如:

  • 傳送到另一個Topic。(實現裝置到裝置間通訊)
  • 傳送到MQ。MQ是如同MQTT 伺服器(MQTT Server)的服務。可以支援標準的一對多Pub/Sub方式釋出MQTT訊息。關於如何設定MQ可以參考其他說明文件。
  • 傳送到RDS。RDS是阿里雲上的關係型資料庫,支援MySQL, MS SQL等資料庫系統。

佇列服務

物聯網平臺只是一個介面工具,實際資料應該轉送到雲端其他服務,才產生價值。

物聯網平臺內裝置,可以送到阿里雲對列服務中。在產品列表 (對建立的產品進行檢視),選擇服務端訂閱,將物聯網平臺的訊息推送到佇列中,然後服務端能基於SDK從佇列中獲取訊息實現通訊。

MQTT傳送到資料庫(透過物聯網平臺)

利用物聯網平臺的規則引擎傳送到阿里雲RDS,輕易實現MQTT轉存入資料庫,大大方便後續分析應用。

資料庫設定

資料庫的架構必須事先定義,並且資料格式與上送的資料能對應正確。在此使用阿里雲的DMS 網頁系統操作為範例圖。需要建置的設定有:

  1. 建立資料庫

    在DMS中建立資料庫即可。確認資料庫名,其他一般使用預設的設定。

  2. 在資料庫中建立表。

    “列名”是傳送資料進入此資料表的依據。 “型別”設定的資料格式與將來存入的資料也需要正確對應。通常除了傳入的資料列外,會另外保留一列,作為唯一索引,設定AUTO INCREMENT (自動增長)以及PRIMAY KEY (主鍵)。

規則引擎設定

物聯網平臺中是透過規則引擎將收到的資料根據規則轉發。規則引擎設定只要區分兩個階段步驟:處理資料和轉發資料。。

處理資料

物聯網平臺收到資料後,使用資料處理引擎進行比對過濾,決定是否轉發此資料以及轉 的內容。資料處理引擎使用SQL SELECT語法查詢。

使用介面會協助完成SQL語句,僅需依序填入欄位,Topic,和條件。

  • 欄位: 表示希望由訊息中取出的資料。支援JSON語法。HMI的MQTT傳送訊息的JSON格式是如以下的例子,上層為d, ts,實際資料列於d的下一層級。
json
{
  "d" : {
    "value1" : [ true ],
    "value2" : [ 0 ]
  },
  "ts" : "2018-07-06T17:58:25.493665"
}

因此欄位應輸入d.value1, 其中value1為該資料的名稱。

  • Topic: 表示希望處理的Topic訊息。
  • 條件: 如有特定條件,於此輸入。例如: 希望 value1>10 時,才將處理訊息,則輸入 d.value>10。

填妥資訊後,SQL SELECT語句會自動於上方生成。

轉發資料

自上一步處理資料取出需要的資料後,此步驟決定如何轉發。在轉發資料區塊,新增操作,選擇儲存到雲資料庫(RDS)中。各專案依照以下填入:

(控制可能需要AliyunIOTAccessingRDSRole授權,請依照阿里雲指示提供物聯網平臺連入RDS的授權)

  • RDS實例: 選擇開通的RDS實例
  • MySQL資料庫: 選擇在[資料庫設定]中建立的資料庫。
  • 賬號/密碼:從下拉選單選擇賬號,並輸入該賬號的密碼。
  • 表名: 選擇在[資料庫設定]中建立的表。
  • 鍵 (key): 表中的列名。
  • 值 (value): 要填入的資料的來源。可以填入常數,或是填入上一步驟處理而來的資料。以${value1}表示,表示傳入value1的值。可輸入多組鍵值組合。

MQTT傳送至資料庫檢查列表

  1. 阿里雲資料庫RDS建置
  2. 物聯網平臺的產品與旗下裝置建置。使用MQTT上報訊息至裝置應使用的Topic。
  3. 啟用物聯網平臺中的規則引擎,確認處理資料的SQL會選擇到正確的Topic,轉發的資料對應到RDS資料庫上正確的欄位。

關於此篇所提及功能之使用限制,請參考官方幫助文件。