互聯(lián)設(shè)備是IoT的核心。設(shè)備會收集數(shù)據(jù)并監(jiān)控參數(shù)。從工業(yè)設(shè)備、建筑物和汽車,到動物、貨物運輸、管道和人員,互聯(lián)設(shè)備無處不在。硬件和軟件部分是通過標(biāo)準(zhǔn)設(shè)計協(xié)議為IoT應(yīng)用程序設(shè)計的:規(guī)范開發(fā)、概念設(shè)計、原型、測試,以及集成到網(wǎng)絡(luò)中的硬件和軟件的部署。一些平臺,如Arduino和RaspberryPi,可以加快設(shè)計以及快速進(jìn)行原型構(gòu)建,而無需定制,從而縮短實施IoT配置的時間。
設(shè)計需要確定性能需求,實現(xiàn)這些要求所必需的硬件和軟件,然后是組件的規(guī)格(商用現(xiàn)成(COTS)設(shè)計或定制設(shè)計),并適當(dāng)考慮到運行環(huán)境及其內(nèi)部使用的應(yīng)用。
在我們談到IoT時,設(shè)備是指任何獲取信息和傳輸信息的物件。例如,管道內(nèi)的壓力傳感器,冷藏軌道車內(nèi)的溫度傳感器,或分布在母牛皮膚下的微小芯片,這些都是設(shè)備。設(shè)備可能獨立運行,也可能與其他設(shè)備同步工作。
在本文中,我將回顧一些現(xiàn)成的硬件選項,以及在選擇這些硬件開發(fā)下一個IoT項目時需要考慮的一些因素。
用于為IoT項目設(shè)計原型的現(xiàn)有硬件類型
開發(fā)IoT應(yīng)用程序變得更容易了,這得益于越來越多現(xiàn)有的低成本、商業(yè)性硬件開發(fā)板、平臺和原型設(shè)計工具包。模塊化的硬件設(shè)計使得開發(fā)IoT應(yīng)用程序更加靈活。隨著零部件選擇的增多,設(shè)計師可以更換不同規(guī)格的新傳感器?;蛘?,您可以獨立地升級設(shè)備的網(wǎng)絡(luò)、數(shù)據(jù)處理或存儲模塊,以滿足不斷變化的需求。
包括微控制器和單板計算機(jī)在內(nèi)的許多現(xiàn)有的商業(yè)性硬件設(shè)備,都是圍繞單芯片系統(tǒng)(SoC)集成電路而設(shè)計。SoC將數(shù)據(jù)處理、存儲和聯(lián)網(wǎng)等功能集成到一個芯片上。這種配置意味著,您會犧牲一些靈活性來換取便捷性,但幸運的是,有大量具有一系列配置的商業(yè)性設(shè)備可供選擇。例如,表1列出了選擇用于IoT項目原型設(shè)計的微控制器的技術(shù)規(guī)格,并對3種常見的單板計算機(jī)(SBC)進(jìn)行了比較。
微控制器開發(fā)板
微控制器是一種提供數(shù)據(jù)處理和存儲功能的SoC。微控制器包括一個(或多個)處理器內(nèi)核、內(nèi)存(RAM),以及用于存儲在微控制器上運行的自定義程序的可擦除可編程只讀存儲器(EPROM)。微控制器開發(fā)板屬于PCB,但增加了額外的電路來支持微控制器,使對芯片進(jìn)行原型設(shè)計和編程變得更方便。
傳感器和執(zhí)行器通過數(shù)字或模擬通用輸入/輸出(GPIO)引腳或通過硬件總線連接到微控制器。I2C和SPI等標(biāo)準(zhǔn)通信協(xié)議用于與總線上連接的組件進(jìn)行設(shè)備內(nèi)通信。通過采用各種標(biāo)準(zhǔn),可以更容易地添加或替換與總線連接的組件。
Arduino是一個開源設(shè)備平臺,其制造兼容開發(fā)板和工具的社區(qū)十分活躍。不同官方Arduino型號的設(shè)備功能不同,數(shù)十種第三方兼容電路板的設(shè)備功能也有差異。表1中的設(shè)備都是兼容Arduino的微控制器,包括無處不在的ArduinoUno、Particle的Electron(其中集成了一個蜂窩式調(diào)制解調(diào)器),以及EspressifSystems集成了WiFi的低成本、低功耗微控制器ESP8266-01。
像Arduino一樣,ESP8266擁有一個活躍的采用者社區(qū)?;贓SP8266的著名開發(fā)板包括NodeMCU、WeMosD1以及AdaFruit的FeatherHuzzah。開源和制造者社區(qū)已為基于ESP8266的開發(fā)板開發(fā)了許多備選固件,使IoT開發(fā)者能使用Lua、Python和JavaScript為這些開發(fā)板編程,并支持無線(OTA)更新。
表1:ArduinoUno、ParticleElectron和EspressifSystemsESP8266-01微控制器技術(shù)規(guī)格
要開發(fā)在兼容Arduino的微控制器上運行的軟件,標(biāo)準(zhǔn)方法是使用C或C++和ArduinoIDE,但是也有一些社區(qū)開發(fā)的語言綁定和可視編程工具。具有相同引腳布局且兼容Arduino的開發(fā)板能使用可選的第三方孔壁進(jìn)行擴(kuò)展,例如為了向ArduinoUno添加以太網(wǎng)端口或藍(lán)牙。Arduino是采用最廣泛的業(yè)余愛好者微控制器開發(fā)環(huán)境,但像Tessel這樣的開發(fā)環(huán)境原生支持JavaScript,而MicroPython的PyBoard和WeIO等開發(fā)板則支持Python。
選擇兼容Arduino的微控制器,更容易將使用跨平臺Arduino庫和ArduinoIDE開發(fā)的程序移植到其他兼容Arduino的設(shè)備上運行。仍然需要仔細(xì)斟酌并體會細(xì)微差異。
例如,ArduinoUno使用數(shù)字I/O引腳上的5V邏輯電壓(其中0V等于LOW或OFF,5V等于HIGH或ON),但ESP8266和Particle開發(fā)板使用3.3V邏輯電壓(3.3V表示HIGH)。這可能影響您對傳感器或執(zhí)行器組件的選擇,因為一些組件僅適用于某一種開發(fā)板。將針對5V邏輯電壓設(shè)計的傳感器替換為3.3V邏輯電壓的傳感器可能會導(dǎo)致意外結(jié)果,也可能損壞經(jīng)受不住更高電壓的引腳,所以您需要添加一個邏輯電平轉(zhuǎn)換器才能使移植奏效。在實現(xiàn)低電平硬件功能時,比如啟用深度睡眠模式或使用特定協(xié)議從連接的傳感器讀取數(shù)據(jù),可能需要依靠特定于設(shè)備或組件的庫,這些庫會導(dǎo)致代碼更不容易移植。
單板計算機(jī)
單板計算機(jī)(SBC)比微控制器更進(jìn)一步。它們允許連接鍵盤、鼠標(biāo)和屏幕等外圍設(shè)備,并提供了更多內(nèi)存和更強(qiáng)的處理能力(例如,表2提供了1.2GHz32位ARM微處理器,而表1僅提供了8位16KHz微控制器)。表2列出了以下三個SBC的技術(shù)規(guī)格:RaspberryPi4、BeagleBoneBlack和DragonBoard410c。
微控制器與單板計算機(jī)之間的區(qū)別沒有固定標(biāo)準(zhǔn)。一些設(shè)備介于二者之間,比如OnionOmega2的板載內(nèi)存和處理能力與低端SBC相當(dāng)。還有一些混合設(shè)備,比如UDOOQuad,它將基于ARM的Linux系統(tǒng)與兼容Arduino的微控制器相集成。
表2:RaspberryPi4、BeagleBoneBlack和DragonBoard3種SBC的技術(shù)規(guī)格
與微控制器一樣,SBC設(shè)備功能也可通過增加可堆疊的開發(fā)板來擴(kuò)展,這些開發(fā)板在RaspberryPi上被稱為hat,在BeagleBoneBlack上被稱為cape,還可以通過增加電動機(jī)控制器或模數(shù)轉(zhuǎn)換器等外部模塊來擴(kuò)展開發(fā)板,減輕設(shè)備內(nèi)置功能的限制。
許多SBC設(shè)備更像一臺微型PC,而且運行著嵌入式操作系統(tǒng)(通常是簡化的Linux發(fā)行版)。因此,與微控制器開發(fā)板相比,對于這些設(shè)備上連接的傳感器和執(zhí)行器,要開發(fā)用于它們的嵌入式應(yīng)用程序,有更多開發(fā)工具和語言可供選擇。但是,SBC的設(shè)置更復(fù)雜、更大、能耗更高,而且更容易出現(xiàn)一些問題,比如存儲應(yīng)用程序的SD卡或閃存損壞。
在微控制器開發(fā)板和單板計算機(jī)之間進(jìn)行選擇
盡管現(xiàn)有的微控制器開發(fā)板和單板計算機(jī)可能只能在IoT解決方案中發(fā)揮部分作用,但它們是初始開發(fā)的理想選擇。
一種入門方式是根據(jù)應(yīng)用程序的需求來考慮關(guān)鍵的IoT設(shè)備特征,然后制定以下設(shè)計決策:
確定您需要的外圍傳感器和輸出組件的類型和數(shù)量,如有必要,還需要確定這些組件的設(shè)計電路
選擇一個微控制器或單板設(shè)備來協(xié)同控制外圍組件并從中讀取數(shù)據(jù)
確定您用于設(shè)備內(nèi)通信的數(shù)據(jù)通信協(xié)議(例如,對微控制器與任何附加傳感器之間的通信使用I2C)
選擇需要用來與云服務(wù)和應(yīng)用程序進(jìn)行通信的網(wǎng)絡(luò)硬件和協(xié)議
例如,要在預(yù)算內(nèi)設(shè)置一個家庭自動化系統(tǒng),您可以選擇RaspberryPiZeroW,因為它是一個成本非常低的小巧的SBC設(shè)備,而且擁有充足的處理能力和內(nèi)存(1GHzARM6處理器和512MBRAM)來在設(shè)備上執(zhí)行數(shù)據(jù)處理和分析。它支持采用最高64GB的microSD閃存擴(kuò)展卡來存儲程序和數(shù)據(jù)。而且像RaspberryPi4一樣,它配備了一個完整的40引腳GPIO端板,允許連接多個傳感器,同時還支持SPI和I2C協(xié)議。它擁有板載WiFi,可用于連接家庭網(wǎng)絡(luò),而且可以通過micro-USB從移動電源或墻插式電源供電。
隨著您在IoT架構(gòu)設(shè)計方面的深入,您可以停下來,將您的預(yù)期性能與設(shè)計意圖進(jìn)行比較。進(jìn)行設(shè)備設(shè)計和原型設(shè)計,選擇嵌入式軟件,選擇上游服務(wù)和應(yīng)用程序,然后停下來對其進(jìn)行評估。您可以根據(jù)功能需求和非功能需求(包括性能、可靠性和安全性)定期評估原型,并在必要時重新考慮這些選擇。
部署IoT項目的硬件要求
IoT設(shè)備是高度專業(yè)化的,而且是為在非常特定的上下文和環(huán)境中運行而設(shè)計的。所以IoT項目的硬件千差萬別。雖然可以通過通用的現(xiàn)成硬件進(jìn)行原型設(shè)計,但最終您可以根據(jù)IoT解決方案的要求著手設(shè)計和開發(fā)定制PCB和組件。作為此過程的一部分,您需要考慮以下幾種硬件需求。
安全需求:安全是IoT的關(guān)鍵要素。在設(shè)計和開發(fā)的所有階段都必須考慮到這一點。即使是在原型設(shè)計期間,也必須保證設(shè)備捕獲的數(shù)據(jù)的完整性和安全性。安全需求適用于IoT設(shè)備本身、網(wǎng)絡(luò)以及云、移動和Web服務(wù)應(yīng)用。
相關(guān)安全需求包括:
確保每個設(shè)備擁有足夠的處理能力和內(nèi)存,以便能以發(fā)送和接收數(shù)據(jù)和消息的速率對它們進(jìn)行加密和解密;
確保嵌入式軟件開發(fā)庫支持在向上游服務(wù)和應(yīng)用程序執(zhí)行驗證時使用的授權(quán)和訪問控制機(jī)制;
選擇采用現(xiàn)有的設(shè)備來實現(xiàn)設(shè)備管理協(xié)議,以便在將新設(shè)備添加到網(wǎng)絡(luò)時,安全地注冊這些設(shè)備以免發(fā)生欺詐;此外,選擇包含固件功能的現(xiàn)有設(shè)備,可用無線方式安全地更新安全補(bǔ)丁。
易開發(fā)性:在原型設(shè)計期間,易開發(fā)性是另一個要優(yōu)先考慮的需求,滿足該需求才能快速輕松地讓您的IoT設(shè)備正常運行,捕獲數(shù)據(jù),并與其他設(shè)備和云進(jìn)行通信。
考慮API文檔、開發(fā)工具,以及硬件制造商或開發(fā)社區(qū)所提供的支持的可訪問性、可用性和質(zhì)量。選擇的設(shè)備要能快速輕松地編程和刷新,而且在部署時只需較少的接觸,不需要配置或只需針對每個設(shè)備進(jìn)行極少的配置,以便在開發(fā)IoT應(yīng)用程序時少走彎路并節(jié)省時間。
數(shù)據(jù)獲取、處理和存儲需求:連接的傳感器數(shù)量、捕獲的數(shù)據(jù)的分辨率,以及數(shù)據(jù)采樣速率,這些都決定了要處理的數(shù)據(jù)量,還會影響數(shù)據(jù)處理和存儲需求。
需要保留在設(shè)備上的數(shù)據(jù)量,取決于連接設(shè)備向上游傳輸數(shù)據(jù)的頻率。安裝在智慧建筑中的始終通過電纜連接的設(shè)備,會直接向一個高度可用的服務(wù)器傳輸少量的原始數(shù)據(jù),與需要處理大量突然傳入的數(shù)據(jù)相比,這種設(shè)備需要的處理能力和存儲空間相對較少。為了省電而每隔幾小時進(jìn)行連接的設(shè)備需要更大的存儲空間,在連電期間將數(shù)據(jù)記錄到本地。
連接需求:無線網(wǎng)絡(luò)的連接需求包括操作范圍,或者信號的傳輸距離,以及預(yù)計要傳輸?shù)臄?shù)據(jù)量和傳輸速率??紤]設(shè)備的容錯能力,以及在斷開連接后重連并重新嘗試發(fā)送數(shù)據(jù)的能力。您的硬件可能擁有集成式網(wǎng)絡(luò)連接,比如藍(lán)牙或WiFi,或者可能需要通過擴(kuò)展板或模塊來添加此能力??缮壍耐獠磕K能提供更高的靈活性,因為您可以選擇試用不同模塊來評估它們的范圍和功耗。
電源需求:其他許多需求也會對設(shè)備的電源需求產(chǎn)生影響,這些需求包括需要的傳感器數(shù)量和網(wǎng)絡(luò)傳輸速率??紤]您的設(shè)備是連接電源,還是需要需要電池或超級電容之類的移動電源。如果需要便攜式電源(如電池),那么您需要了解電池的大小、重量和容量需求,以及電池是否可以重復(fù)充電、更換,或者在電池耗盡后是否應(yīng)丟棄。如果設(shè)備可再充電,應(yīng)多久充一次,通過什么方式充電?
物理設(shè)備設(shè)計需求:物理設(shè)備設(shè)計需求包括設(shè)備的外觀和大小。
還需要考慮設(shè)備將安裝到哪些環(huán)境條件下,例如它是否需要防水或有堅固的外殼?例如,作為車隊監(jiān)控應(yīng)用的一部分,安裝在卡車底部的設(shè)備需要得到妥善保護(hù),以確保它們在惡劣條件下能夠繼續(xù)運行;它需要防水、耐臟和抗震。
成本需求:硬件的成本包括硬件和關(guān)聯(lián)組件(比如任何傳感器)的初始費用,以及它們的持續(xù)操作成本,比如電源成本和更換磨損部件或缺陷組件的維護(hù)成本。還要考慮某些組件或設(shè)備驅(qū)動程序的版權(quán)費。購買商用的現(xiàn)成開發(fā)板或SBC可能比制造定制板更經(jīng)濟(jì)。如果您通過許多設(shè)備擴(kuò)展IoT網(wǎng)絡(luò),那么專用硬件設(shè)備可能是更明智的選擇。
每種應(yīng)用和情況各有不同。在為IoT項目選擇硬件時,沒有萬全之策。采用基于標(biāo)準(zhǔn)的商業(yè)性硬件,比如微控制器或單板計算機(jī),可以在開發(fā)的早期階段節(jié)省時間和開支,而不會犧牲靈活性。您在原型設(shè)計階段學(xué)到的知識,能幫助您在之后部署IoT解決方案時制定關(guān)鍵的硬件設(shè)計決策。
-
微控制器
+關(guān)注
關(guān)注
48文章
7542瀏覽量
151316 -
IOT
+關(guān)注
關(guān)注
187文章
4202瀏覽量
196681 -
互聯(lián)設(shè)備
+關(guān)注
關(guān)注
0文章
12瀏覽量
3049
發(fā)布評論請先 登錄
相關(guān)推薦
評論