1. 程式人生 > >SmartThings物聯網平臺簡介

SmartThings物聯網平臺簡介

SmartThings是一個智慧裝置控制系統,它包括:SmartThings Cloud(雲平臺)、SmartThings Hub(閘道器)、SmartThings Mobile(手機客戶端)以及各種關聯的裝置或服務。

假設我們有這樣一個控制場景:當大門開啟,則開啟客廳的電燈,並向主人傳送一條簡訊。如何實現這一控制呢?首先我們需要一個開關感測器,當大門被開啟的時候,感測器感應並將事件上報到平臺,平臺收到這一事件報告之後,控制客廳電燈的開關開啟,同時通過簡訊服務傳送一條簡訊息。

當然,諸如感測器、電燈開關這些裝置可能沒有網路介面,無法直接與平臺通訊,這時就需要閘道器作為中轉站。閘道器負責將感測器的狀態改變抽象成一種事件,上報給雲平臺,然後接收並執行雲平臺下發的指令。閘道器並不是必須的,如果一個智慧裝置具有網路介面並支援SmartThings的通訊協議,完全可以跳過閘道器直接與雲平臺通訊。

SmartThings的應用邏輯是在雲平臺中實現的,也就是說“如果...那麼...”這樣的控制邏輯不是在手機客戶端、閘道器、感測器上處理,而是在雲平臺中根據預先設定的條件和邏輯實施控制的。為什麼這樣做呢?SmartThings認為,“裝置”與“智慧”應該是分開的,也就是說作為感測器不要求它具有高智慧,它只要負責檢測,而通訊部分交由閘道器完成。在雲平臺中,各種感測器事件和裝置操作被抽象成標準的介面,例如Event.ContactSensor.opened表示開關感測器的開啟事件。SmartThings認為把控制邏輯放到雲平臺的好處之一,是應用開發人員無需關注具體的硬體,也無需學習硬體相關的程式設計。我們來看看SmartThings官網上的一個具體例子:

def openedContactSensor(evt, settings) {
    def light = settings.switch1
    if(evt == Event.ContactSensor.opened) {
        light.on()
    }
}

這個例子實現了一個感測器與開關的關聯控制邏輯。SmartThings甚至推出了基於瀏覽器的開發環境,開發人員可以直接在瀏覽器上開發和釋出應用。

雲平臺不僅實現業務邏輯,對於終端使用者而言它還是一個應用商店,開發者將物聯網應用釋出到雲平臺,終端使用者通過手機客戶端從平臺下載他們需要的應用,再經過簡單配置就可以使用了。還看上面的例子,“當大門開啟,則開啟客廳的燈,併發送簡訊”,當用戶下載了這個控制邏輯之後,只需要在手機客戶端中指定哪個是大門的感測器,哪個是客廳電燈的開關,以及自己的手機號碼,這個控制邏輯就生效了。此外,手機客戶端還幫助使用者管理自己的閘道器、裝置,以及呈現各種裝置的狀態和事件等。

SmartThings的體系架構分為展現層、智慧層、抽象層、連線層和能力層,通過這五個層次的劃分,建立了整合物聯網硬體廠商、物聯網應用開發商、網際網路服務提供商以及終端使用者的完整生態鏈。物聯網產業正蓬勃發展,個人和企業都有機會在這個生態系統中找到屬於自己的位置。

SmartThings層次架構圖(引自官方網路

參考資料: