物聯網(IoT)中創建連接設備(“Things”)的所需技術
IoT(物聯網)技術正在讓連接到互聯網的多樣設備呈現出爆炸式的增長。 我們看到熟悉的物體獲得了連線性,增加了計算能力,以及只能存在於網路中的新類別設備。 感測器和執行器為橋接現實世界和數位世界中的資訊和行動創造了新的可能性。
連接設備的類型
連接設備可以採用多種形式,通常是以下形式之一:
••多功能電腦
••專用嵌入式設備
••連接的感測器
••被動跟蹤的物體
大多數系統將由多種類型的設備所組成; 例如,
••在智慧手機上的控制介面(多用途電腦)
••加熱/通風/空調(HVAC:Heating/ventilation/air conditioning)控制器,遠端控制的門鎖和盲控制器(專用嵌入式設備)
••安全感測器,如運動和接觸感測器(互連的感測器)
表1總結了這些之設備間的關鍵差異
表1、 連接設備的類型總結
多功能電腦
這些是強大的電腦,旨在執行各種計算任務。 它們不再僅僅是桌上型電腦,還有智慧手機,
嵌入式設備
技術成本下降意味著電腦現在是最便宜,最簡單的方法來實現甚至微不足道的任務,比如定時刷牙。因此,我們周圍的更多的物體開始具有板載計算和連接功能。這種趨勢創造了物聯網最新穎和標誌性的設備:如恒溫器,浴室秤,甚至塑膠兔子。這些都是嵌入式設備。
由於專門執行特定任務,嵌入式設備具有廣泛的外形尺寸以適應各種任務需要,並且可能具有其他機械部件(如洗衣機)或者甚至具有其他嵌入式系統(如汽車)。
由於嵌入式設備是專門從事特定工作的,所以儘管能力比通用的電腦低,但它們可以比通用電腦系統更可靠,更有效地完成這些任務。例如,控制汽車制動器的嵌入式電腦可以保證它能夠按照正確的間隔釋放並啟動制動器,以防止失去控制(這是即時系統的一個例子)。運行通用作業系統的通用電腦可以執行相同的功能,
手機歷來被認為是嵌入式設備,因為它們是高度專業化的設備。現代智慧手機在可以為用戶做的事情方面更像通用電腦,因為有許多方式可以通過應用程式來擴展其功能。
嵌入式系統可能需要滿足比通用電腦更嚴格的操作準則,特別是如果它們位於無法訪問的地方或者需要控制安全關鍵的系統時。他們可能需要在惡劣的環境條件下工作(例如油井下),可以需要節省電力以用一個微小的電池(如環境感測器)來運行多年,可以運行多年而無故障(如防鎖死的汽車制動器或者核反應爐),並且可能在不可能進行人為干預時(如在海底電纜中)從故障中恢復過來。它們通常也是我們希望建立並且很大程度上忘記的設備,例如家用鍋爐/熔爐,我們不想要定期維護或者重新開機這些設備。圖2,圖3和圖4全部展示了嵌入式設備的示例。
圖2、 Nest的恒溫器
圖3、Withings的智慧身體分析儀浴室秤
圖4、 Nabaztag
在物聯網環境中,嵌入式設備如連接的門鎖或者燈開關通常是與物理世界交互的系統的一部分,通過感測器(如運動檢測器)收集資料和/或產生物理動作。
嵌入式設備可能具有板載使用者交互功能,例如Nest的溫控器具有螢幕和可以旋轉以選擇/滾動並按下以選擇的按鈕。使用者可以對設備進行溫度調節,甚至設置調度計畫。但使用者交互通常至少部分地由系統中的其他設備來處理。 Tado加熱控制器(見圖5)具有非常有限的板載用戶輸入/輸出功能:大多數互動由智慧手機應用程式處理。 請注意,沒有輸入/輸出功能的嵌入式設備在出現問題時除了停止工作外將無法提供回饋。如果是這種情況,您需要確保系統可以使用其他設備(如網路或者智慧手機應用程式或者短信)來告訴用戶有問題,並指導他們進行修復。
嵌入式設備可以直接連接到互聯網中(正如Nest控制器通過WiFi)。它們也可以通過智慧手機間接連接(像許多可穿戴設備所做的那樣,見圖6)或者Hub/閘道設備(許多家庭自動化系統都是這樣做的,如圖7所示)。
圖5、Tado加熱控制器具有有限的設備上的使用者交互功能;
圖6、Pebble的 Smartwatch連接到智能手機
圖7、Hive的恒溫器
嵌入式硬體
嵌入式系統(嵌入式設備的計算部分)具有與通用電腦一些相同的基本類型的硬體元件,例如中央處理器,記憶體和週邊設備(儘管這些元件可以集成到稱為微控制器(microcontroller)的單個晶片上,而在多功能電腦中它們往往是分離的部件)。
微控制器的計算能力遠低於多用途電腦的計算能力(通常只有幾KB的記憶體和幾MHz範圍內的處理器時鐘速度),但是它們被優化以執行特定的任務,例如控制汽車上的防抱死制動器或實現 縫紉機的功能,並以非常有限的成本預算,功耗和空間來實現這一點。
在一些物聯網論壇中,您可能會經常聽到用來設計原型和構建IoT設備時所使用的一些常見的微控制器/系統的名稱,如Arduino(見圖8,https://www.arduino.cc/),Beaglebone(http://beagleboard.org/bone),Electric Imp(https://electricimp.com/), Raspberry Pi(https://www.raspberrypi.org/),以及ARM mBed(https://www.mbed.com/zh-cn/)等。
圖8、Arduino
其中有一些嵌入式硬體系統被設計為“開放”的系統:使用開源軟體和硬體。您將獲得工作示例來幫助您走出困境,但如果需要的話,您也可以將其修改為裸機。而有些嵌入式硬體系統(例如Electric Imp)是“封閉的” - 它們支援開箱即用,但不允許您訪問其內部的工作區。它們可能更方便使用,但是您卻不能修改它們。
嵌入式軟體
用於嵌入式系統中的軟體旨在有效地利用有限的資源。一個簡單的設備可能只有一個小的固定功能的程式(即固件(firmware))就足以使系統工作。這些軟體存儲在非易失性記憶體(即當設備斷電後不會丟失資訊的記憶體)如Flash或ROM等中。如果要更改設備的工作方式,則需要重寫固件(參見圖9)。 (Flash可以被重寫,但ROM卻不能,所以有些設備可能會有無法升級的固件)。
圖9、一些惠而浦的洗衣機設備具有USB埠
更複雜的設備可能具有專業的嵌入式作業系統並且能夠運行多個程式,就像桌上型電腦作業系統可以用來運行應用程式一樣。例如,如果不同的應用程式可能同時需要系統資源如處理器或網路,則作業系統可以管理它們對系統資源的訪問。作業系統還提供了更改設備功能的靈活性,而無需重新安裝所有軟體。使用VxWorks,QNX和RTLinux等即時操作系統用來進行時間敏感的處理。許多類型的系統可能需要即時的作業系統,從航天器到機器人再到WiFi接入點等(見圖10)。甚至有一些專門用於嵌入式設備的通用作業系統的特別版本,如Windows Embedded和各種各樣的Linux。作業系統通常需要更多的CPU和功耗來運行固件。
圖10、美國宇航局的Curiosity Rover和蘋果公司的Airport Extreme
圖10、美國宇航局的火星科學實驗室Curiosity Rover和蘋果公司的Airport Extreme一樣使用的都是VxWorks即時操作系統(參見:https://www.nasa.gov/mission_pages/msl/msl5things20100916.html;和 https://www.apple.com/airport-extreme/);
互連感測器
互連感測器是用於從物理世界捕獲資料並將其傳送到網路服務中的小型嵌入式設備。雖然技術上是一類嵌入式設備,但它們往往以物聯網的一部分以不同的方式來使用和體驗。他們通常沒有板載用戶輸入或輸出功能。所以沒有旋鈕或按鈕,知道他們在做什麼的唯一的方式是通過另外一個設備如智慧手機上的顯示幕。感測器往往相當小,因此設備本身通常不太可見,對用戶的體驗不太突出。 對於這類設備的UX(使用者體驗)的重點不在設備上,而是在捕獲的資料和資料所支援的服務上(參見圖11)。
圖11、NetAtmo氣象臺感測器
它們通常部署在具有多個感測器的網路中(其中它們自己可以稱為“感測器節點”)。諸如大規模空氣品質感測器網路的例子可以具有數百個或者數千個節點;較小規模的示例可能是一組家庭報警用的運動/接觸感測器。在某些情況下,單個感測器也可能已經是實用的,例如Proteus體內藥物感測器,它可用于檢測患者是否服用了藥物。
互連感測器通常包含足夠的板載計算來收集資料並通過網路傳輸資料。這可能意味著它們的非常基本的處理單元具有非常有限的記憶體和計算能力,通信收發器和電池或者其它能源(例如,來自環境的能量收集,例如太陽能或者風能)。通信可以是到閘道的低功率無線局域網(WLAN)連接,或者經由蜂窩網路到Internet的高功率連接。它通常沒有設備上的使用者介面(家庭報警感測器可能有一個LED來指示它何時運行和/或連接到了網路)。可能通過網路將簡單的指令傳遞給感測器(例如,發送控制讀取頻率的指令),或者感測器只能將資料推送到網路,並且可能無法接收指令(參見圖12)。
圖12、Proteus的智慧藥丸包含一個微小的感測器
能量是大多數感測器節點特別寶貴的資源,必須盡可能的保守使用。
在網路中部署感測器的地方,網路被設計即使個體節點出現故障或丟失連接,儘管資料可能會丟失但整個網路將繼續運行。任何IoT(物聯網)系統的UX(使用者體驗)設計必須能夠應對丟失資料點。例如,使用感測器來監視道路上的交通流動的系統不需要每個數據點的資料來計算交通流動的速度。
(完)
特別是如果它們位於無法訪問的地方或者需要控制安全關鍵的系統時。他們可能需要在惡劣的環境條件下工作(例如油井下),可以需要節省電力以用一個微小的電池(如環境感測器)來運行多年,可以運行多年而無故障(如防鎖死的汽車制動器或者核反應爐),並且可能在不可能進行人為干預時(如在海底電纜中)從故障中恢復過來。它們通常也是我們希望建立並且很大程度上忘記的設備,例如家用鍋爐/熔爐,我們不想要定期維護或者重新開機這些設備。圖2,圖3和圖4全部展示了嵌入式設備的示例。圖2、 Nest的恒溫器
圖3、Withings的智慧身體分析儀浴室秤
圖4、 Nabaztag
在物聯網環境中,嵌入式設備如連接的門鎖或者燈開關通常是與物理世界交互的系統的一部分,通過感測器(如運動檢測器)收集資料和/或產生物理動作。
嵌入式設備可能具有板載使用者交互功能,例如Nest的溫控器具有螢幕和可以旋轉以選擇/滾動並按下以選擇的按鈕。使用者可以對設備進行溫度調節,甚至設置調度計畫。但使用者交互通常至少部分地由系統中的其他設備來處理。 Tado加熱控制器(見圖5)具有非常有限的板載用戶輸入/輸出功能:大多數互動由智慧手機應用程式處理。 請注意,沒有輸入/輸出功能的嵌入式設備在出現問題時除了停止工作外將無法提供回饋。如果是這種情況,您需要確保系統可以使用其他設備(如網路或者智慧手機應用程式或者短信)來告訴用戶有問題,並指導他們進行修復。
嵌入式設備可以直接連接到互聯網中(正如Nest控制器通過WiFi)。它們也可以通過智慧手機間接連接(像許多可穿戴設備所做的那樣,見圖6)或者Hub/閘道設備(許多家庭自動化系統都是這樣做的,如圖7所示)。
圖5、Tado加熱控制器具有有限的設備上的使用者交互功能;
圖6、Pebble的 Smartwatch連接到智能手機
圖7、Hive的恒溫器
嵌入式硬體
嵌入式系統(嵌入式設備的計算部分)具有與通用電腦一些相同的基本類型的硬體元件,例如中央處理器,記憶體和週邊設備(儘管這些元件可以集成到稱為微控制器(microcontroller)的單個晶片上,而在多功能電腦中它們往往是分離的部件)。
微控制器的計算能力遠低於多用途電腦的計算能力(通常只有幾KB的記憶體和幾MHz範圍內的處理器時鐘速度),但是它們被優化以執行特定的任務,例如控制汽車上的防抱死制動器或實現 縫紉機的功能,並以非常有限的成本預算,功耗和空間來實現這一點。
在一些物聯網論壇中,您可能會經常聽到用來設計原型和構建IoT設備時所使用的一些常見的微控制器/系統的名稱,如Arduino(見圖8,https://www.arduino.cc/),Beaglebone(http://beagleboard.org/bone),Electric Imp(https://electricimp.com/), Raspberry Pi(https://www.raspberrypi.org/),以及ARM mBed(https://www.mbed.com/zh-cn/)等。
圖8、Arduino
其中有一些嵌入式硬體系統被設計為“開放”的系統:使用開源軟體和硬體。您將獲得工作示例來幫助您走出困境,但如果需要的話,您也可以將其修改為裸機。而有些嵌入式硬體系統(例如Electric Imp)是“封閉的” - 它們支援開箱即用,但不允許您訪問其內部的工作區。它們可能更方便使用,但是您卻不能修改它們。
嵌入式軟體
用於嵌入式系統中的軟體旨在有效地利用有限的資源。一個簡單的設備可能只有一個小的固定功能的程式(即固件(firmware))就足以使系統工作。這些軟體存儲在非易失性記憶體(即當設備斷電後不會丟失資訊的記憶體)如Flash或ROM等中。如果要更改設備的工作方式,則需要重寫固件(參見圖9)。 (Flash可以被重寫,但ROM卻不能,所以有些設備可能會有無法升級的固件)。
圖9、一些惠而浦的洗衣機設備具有USB埠
更複雜的設備可能具有專業的嵌入式作業系統並且能夠運行多個程式,就像桌上型電腦作業系統可以用來運行應用程式一樣。例如,如果不同的應用程式可能同時需要系統資源如處理器或網路,則作業系統可以管理它們對系統資源的訪問。作業系統還提供了更改設備功能的靈活性,而無需重新安裝所有軟體。使用VxWorks,QNX和RTLinux等即時操作系統用來進行時間敏感的處理。許多類型的系統可能需要即時的作業系統,從航天器到機器人再到WiFi接入點等(見圖10)。甚至有一些專門用於嵌入式設備的通用作業系統的特別版本,如Windows Embedded和各種各樣的Linux。作業系統通常需要更多的CPU和功耗來運行固件。
圖10、美國宇航局的Curiosity Rover和蘋果公司的Airport Extreme
圖10、美國宇航局的火星科學實驗室Curiosity Rover和蘋果公司的Airport Extreme一樣使用的都是VxWorks即時操作系統(參見:https://www.nasa.gov/mission_pages/msl/msl5things20100916.html;和 https://www.apple.com/airport-extreme/);
互連感測器
互連感測器是用於從物理世界捕獲資料並將其傳送到網路服務中的小型嵌入式設備。雖然技術上是一類嵌入式設備,但它們往往以物聯網的一部分以不同的方式來使用和體驗。他們通常沒有板載用戶輸入或輸出功能。所以沒有旋鈕或按鈕,知道他們在做什麼的唯一的方式是通過另外一個設備如智慧手機上的顯示幕。感測器往往相當小,因此設備本身通常不太可見,對用戶的體驗不太突出。 對於這類設備的UX(使用者體驗)的重點不在設備上,而是在捕獲的資料和資料所支援的服務上(參見圖11)。
圖11、NetAtmo氣象臺感測器
它們通常部署在具有多個感測器的網路中(其中它們自己可以稱為“感測器節點”)。諸如大規模空氣品質感測器網路的例子可以具有數百個或者數千個節點;較小規模的示例可能是一組家庭報警用的運動/接觸感測器。在某些情況下,單個感測器也可能已經是實用的,例如Proteus體內藥物感測器,它可用于檢測患者是否服用了藥物。
互連感測器通常包含足夠的板載計算來收集資料並通過網路傳輸資料。這可能意味著它們的非常基本的處理單元具有非常有限的記憶體和計算能力,通信收發器和電池或者其它能源(例如,來自環境的能量收集,例如太陽能或者風能)。通信可以是到閘道的低功率無線局域網(WLAN)連接,或者經由蜂窩網路到Internet的高功率連接。它通常沒有設備上的使用者介面(家庭報警感測器可能有一個LED來指示它何時運行和/或連接到了網路)。可能通過網路將簡單的指令傳遞給感測器(例如,發送控制讀取頻率的指令),或者感測器只能將資料推送到網路,並且可能無法接收指令(參見圖12)。
圖12、Proteus的智慧藥丸包含一個微小的感測器
能量是大多數感測器節點特別寶貴的資源,必須盡可能的保守使用。
在網路中部署感測器的地方,網路被設計即使個體節點出現故障或丟失連接,儘管資料可能會丟失但整個網路將繼續運行。任何IoT(物聯網)系統的UX(使用者體驗)設計必須能夠應對丟失資料點。例如,使用感測器來監視道路上的交通流動的系統不需要每個數據點的資料來計算交通流動的速度。
(完)