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

如何為物聯網項目選擇最佳的合作伙伴
開發者如何為其特定嵌入式AI項目選擇最佳的AI芯片
怎樣給物聯網項目選擇合適的網關?
除了Python,AI項目選擇的編程語言還有哪些?資料下載

篇1:如何為FPGA選擇合適的電源管理方案

如何為集成項目選擇合適的紅外熱像儀

評論