IoT原型开发利用现成的单板设计---凯利讯半导体
物聯網,特別是物聯網(IIoT),不僅對許多商業領域產生了革命性的影響,而且也為實現嵌入式IIoT解決方案開發的方式帶來了根本性的轉變。許多工程師面臨這樣的項目,他們選擇了一個商業上可用的單板計算機(SBC)作為設計的基礎。雖然這種方法可以產生快速的結果,但是它也可以使開發人員沿著一條路走下去,這使得很難將最終的設計變成大批量的生產。在選擇原型平臺時,務必仔細檢查設計基于的MCU,以及過多的支持組件,以確定它們是否可以單獨購買,并從頭開始集成到新的設計中。
本文將重點介紹一個簡單的IoT設計溫度傳感器平臺的設計,并將重點關注所使用的單個組件。此外,該平臺不僅將用于證明設計的概念,而且還將展示如何通過對功耗配置文件的調查以及如何優化設計來對開發進行微調。
一種IIoT溫度傳感器的基本功能要求圖。
圖1:IIoT溫度傳感器的基本功能要求。
考慮如圖1所示的簡單溫度傳感器設計。這突出了需要為電池驅動的溫度傳感器設計的基本功能塊,該傳感器將數據存儲在云平臺上。微控制器(MCU)在預設的時間間隔內對溫度傳感器進行調查,然后使用無線設備建立通信鏈路并將數據發送到接收云應用程序。對于設計工程師來說,有許多的個人決策需要決定使用的組件的選擇,進而影響材料成本。例如,溫度傳感器可以包括一個專用的溫度傳感器,例如來自模擬設備的流行的TMP36系列,或者更全面的綜合溫度、濕度和氣壓,如Bosch Sensortec BME280,或者是一個普通的PTC熱敏電阻和Epcos-TDK。成本只是一個考慮因素,它的準確性、容忍度和接口方法是其他的。傳感器的選擇也會影響MCU的規格。如果你使用的是便宜的熱敏電阻,它可能不會與溫度范圍內的溫度有線性關系,所以需要一定程度的基于軟件的斜率計算。MCU資源實現這一目標的數量很少,但仍然是一個考慮因素。在另一個極端,BME280需要SPI或I2C通信到主機MCU,因此具有這些接口能力的設備和控制傳感器和處理更多數據的能力是需要的。
對于通信方式,也有許多關鍵的決定。最重要的可能是要使用的無線協議,其中藍牙和Wi-Fi是最受歡迎的。藍牙提供了一個簡短的通信范圍,適用于相對少量的數據傳輸,并且通常通信到一個網關設備,該網關設備可以在使用更長距離通信(如Wi-Fi)傳輸之前收集數據。在傳感器上提供Wi-Fi通訊,省去了中間網關的需要,允許更長的距離通信,適合更高的數據量,但代價是更高的功耗配置文件。
一旦無線通信被確定,就會有額外的決定,選擇一個離散的方法或使用預先認證的無線模塊。除非您的組織擁有自己的專業無線電頻率工程團隊,并且預期的產量非常高,否則很有可能使用模塊方法。
該設計的最終功能是電源管理。從可替換的硬幣電池中操作可能是一種為傳感器供電的方法,但使用無線能量采集技術或小型太陽能電池板的可充電電池是另一種方法。此外,將單片機和無線模塊放入多個不同的睡眠模式的能力可以極大地幫助節省電力,以延長電池壽命。通常,通過軟件來實現對設備的控制。這個設計的其他考慮因素包括預期的產量,如果這個傳感器可能是公司希望開發和發布的不同傳感器產品中的一個。如果是后者,開發基于平臺的方法有很多優點,其中MCU和無線功能在整個范圍內都是通用的,只有傳感器特定的線路對每個模型都是不同的。
在考慮傳感器設計的原型時,設計工程師有許多不同的方法來設計這個設計。在過去,制造商開發工具包和評估板為基礎設計提供了一個理想的學習平臺,盡管在許多情況下集成各種功能需要一些工程工作和嵌入式開發。然而,一種新型的完全集成和緊湊的單板計算機(SBCs)正在受到工程師的歡迎,他們正在尋找最小的原型開發時間,并且設計足夠開放源代碼,這樣他們就可以在SBC周圍進行最終的設計。在這種情況下,SBC的所有核心組件都是可以購買的,并且知識共享許可協議涵蓋了任何設備庫。
一個完整集成SBC的好例子是Adafruit Feather M0 Wi-Fi(圖2)。
Adafruit羽毛M0 Wi-Fi單板計算機圖像。
圖2:Adafruit Feather M0 Wi-Fi單板計算機(圖片來源:凱利訊半導體)。
Adafruit Feather M0 Wi-Fi的重量僅為6.1克,僅為2.1 x 0.9 x 0.3英寸,它包含一個微型芯片ATSAMD21G18單片機,它的QFN包運行于48mhz,有256kb的閃存和32kb的SRAM。這手臂?皮層?-M0-based設備提供20訪問GPIO別針,8 PWM港口、10 12位模擬輸入,和一個DAC。外圍串行通信接口包括SPI、I2C和UART。一種車載二極管,即AP2112K-3.3 VDC電壓調整器,其峰值電流為600 mA,允許整個電路板通過一個微型USB連接器供電。邏輯級別保持在3.3 VDC,因此,如果對任何5個VDC設備進行接口,將需要水平移動設備。此外,該板還可由3.7 VDC LiPo電池與微芯片MCP7331T-2ACI/OT充電器集成。一種通過集成天線提供的FCC認證微芯片ATWINC1500模塊,提供2.4 GHz、802.11 b/g/n Wi-Fi通信。在正常運行情況下,單片機的功耗大約為10 mA,在傳輸過程中,無線模塊最高可達300 mA。
Adafruit羽毛M0 Wi-Fi的示意圖如圖3所示。
Adafruit羽毛M0 Wi-Fi示意圖
圖3 Adafruit Feather M0 Wi-Fi的示意圖。
一個32.768 kHz水晶,四個發光二極管,和幾個電阻和電容器完成了BOM的董事會。
該羽毛上的軟件開發是由MCU提供的一個USB引導加載器,它允許使用流行的Arduino IDE。使用這種方法可以快速開發應用程序,而羽毛板的緊湊特性使得它可以很容易地集成到新產品的早期beta版本中。專業的開發人員可以使用Atmel軟件框架(ASF),使用位于板底板上的SWDIO/SWCLK大頭針來代替使用Feather的Arduino USB進行串行程序和調試功能。
正如前面提到的,成功使用SBC原型設計原型的關鍵在于能夠基于SBC的核心組件來構建自己的設計。這當然是Adafruit羽毛M0的情況。MCU和無線模塊在商業上很容易獲得,并且提供了大量的開發工具和資源??梢栽谶@里找到Microchip SAMD21G18微控制器數據表,并對可用的設備選項和包大小進行了深入的說明。硬件資源包括一個ATSAMD21 XPRO評估板,以及一個全面的用戶指南、一個在線仿真器、程序員和調試器(atmelo - ice),以及一系列的擴展板,例如安裝了各種不同傳感器的ATIO1-XPRO。WINC1500還得到了開發資源的良好支持,其中包括XPRO擴展板,用于ATWINC1500-XPRO的ATSAMD21 XPRO。
羽毛不僅提供了一個理想的開發平臺是一個設計概念和原型,但由于它是基于所有的組件都是現成的,這意味著原型設計也可以為生產設計階段的信心。
為了演示一個IoT應用程序可以被原型化的簡易性,參考了一個例子,它將Feather M0 Wi-Fi連接到微軟的IoT服務,Azure。在這里可以找到一個全面詳細的解釋,它指導工程師通過準備白板來連接到Azure,需要的庫和Arduino IDE和Azure的設置說明。
Microsoft Azure是一個具有彈性的企業級IIoT平臺的好例子,它不僅提供了與傳感器和執行器設備的連接,還提供了一套完整的存儲和分析應用程序,用于收集數據。該平臺的免費試用版提供了對所有必需特性的簡單訪問。
這個應用程序演示了Bosch BME280溫度、濕度和壓力傳感器的使用,盡管在這個例子中,你可以刺激發送的數據,而不需要將傳感器連接到根上。
第一步是注冊一個免費的微軟Azure帳戶。完成后,登錄并訪問如圖4所示的Microsoft Azure儀表板。
創建新的Azure IoT Hub實例的映像。
圖4:設置新的Azure IoT Hub實例。
單擊儀表板頁面頂部的+ New按鈕,并選擇物聯網(IoT Hub)之后的物聯網。然后可以將IoT Hub參數(名稱和資源組)命名為如圖5所示。
在Microsoft Azure中設置物聯網中心功能的圖像。
圖5:在Microsoft Azure中設置物聯網中心功能。
設置過程的最后階段是在物聯網中心內創建一個設備。如圖6所示,其中一個設備添加了TempSensor1的設備ID。在方框中勾選自動生成設備鍵,當它被保存時就會發生。一旦你獲得了羽毛草圖,你將需要這個裝置的主鍵。它可能令人困惑,因為IoT中心和每個設備都有自己的主鍵。當提示輸入連接字符串時,主鍵將是使用的鍵(圖8)。
將羽毛溫度傳感器作為設備添加到物聯網中心的圖像
圖6:將羽毛溫度傳感器添加到物聯網中心。
現在,您可以在這里下載提供的示意圖了。
假設您已經有了Arduino IDE,您只需要為Feather M0板添加支持文件。Adafruit教程介紹了這個過程。
使用Blink示例草圖測試你的羽毛M0 Wi-Fi板是很好的做法。確保你可以編譯和上傳草圖,并且在繼續之前,在USB連接線的旁邊,你可以正確地看到上面的13號針。
為了使用演示草圖,您必須將庫列表添加到Arduino環境中。請注意,對于Azure庫AzureIoTHub、AzureIoTUtility和AzureIoTProtocol_HTTP,您需要安裝1.0.21版本,否則就會出現編譯錯誤。另外,如果您決定不使用BME280傳感器,但是使用模擬數據,您仍然需要包括它的庫。另外,在默認情況下,草圖假定您將使用物理傳感器。如果您希望模擬數據,您需要更改配置中的標題行。h文件讀取' #define SIMULATED_DATA true '。
圖7突出顯示了庫的完整列表,在屏幕的底部,成功編譯并上傳了草圖到目標羽毛M0板。
Arduino IDE的圖像顯示了庫列表和一個成功的上傳。
圖7:Arduino IDE顯示了庫列表和一個成功的上傳。
一旦草圖被上傳,你就需要切換到IDE的串行監視器。這個草圖是這樣寫的:Wi-Fi訪問細節和Azure連接字符串都是通過串行監視器輸入的(圖8)。
輸入Wi-Fi和設備連接信息的圖像。
圖8:輸入Wi-Fi和設備連接信息。
在上述詳細信息被輸入后不久,你就會看到關于Wi-Fi連接的串行監視器的確認信息。然后,羽毛應該開始將數據發送到Azure IoT中心,如圖9所示。在本例中,我們使用了模擬數據。
連續顯示器的圖像顯示來自羽毛M0無線網絡發送的消息。
圖9:顯示從Feather M0 Wi-Fi發送的消息的串行監視器。
一旦消息已經開始被Azure IoT中心接受,您就可以檢查它們是否被接收了。圖10顯示了顯示接收消息數量的物聯網設備摘要。
微軟Azure IoT中心的圖片顯示信息摘要
圖10:顯示消息摘要的Microsoft Azure IoT Hub。
一旦傳感器數據開始被Azure平臺接收,您就可以使用一些數據存儲和分析功能進行調查,進一步的細節可以在微軟Azure網站上找到。
正如本文前面提到的,當使用電池作為電源時,節約用電的需求是最重要的。Wi-Fi是一種特別耗電的協議,但與其他方法相比,它有許多優點。因此,必須注意優化傳感器設計的操作,這樣就可以在不影響傳感器性能的情況下實現低功耗。MCU和Wi-Fi模塊都能被投入到睡眠模式中,這可以大大延長電池壽命。
深入了解各種MCU的節能模式,以及設備的電源管理特性控制這些模式的方式,可以在SAM-D21數據表中找到。在這里還可以找到一個應用程序說明,它可以從MCU的外圍接口和函數中找到可能的電能消耗。
ATWINC1500也有類似數量的節省電能的資源,包括在這個應用程序說明中專用于此的部分。在它的Feather M0 Wi-Fi教程中,Adafruit展示了使用電源監視器來說明Wi-Fi模塊的消費變化(圖11)。
羽毛M0 Wi-Fi板耗電量圖像。
圖11:羽毛M0 Wi-Fi板的功耗。
圖11的橙色線條是羽毛M0 Wi-Fi板的整體功耗。紫色線表示LiPo電池的電源電壓。請注意,第一個由無線電操作引起的峰值,包括與接入點建立的鏈路。在通信之外,靜止電流大約為22 mA,表示MCU的大約10 mA和Wi-Fi模塊的12 mA。對預期的最終產品的潛在用例的理解將有助于確定可能的電能節約程度。例如,如果它是只需要測量溫度每分鐘一次,設備可以在睡眠至少55秒基于溫度測量和通信的云應用程序以5秒,讓設備在91%的時間最嚴重的睡眠模式。其他的節能方法可能包括在通過Wi-Fi發送之前進行數次溫度測量,或者如果溫度讀數與之前的測量不同,則可能只發送。
結論
現成的SBCs為證明產品概念和創建最初的原型設計提供了一個理想的平臺。仔細選擇一個使用商用和流行的MCU和無線組件的SBC,確保一旦證明,原型可以迅速轉化為最終的設計,充分利用時間對市場的優勢,開源資源,以及使用這些董事會的社區支持。
總結
以上是生活随笔為你收集整理的IoT原型开发利用现成的单板设计---凯利讯半导体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多视几何
- 下一篇: antd页面多表单校验