物聯網,尤其是工業物聯網 (IIoT),不僅要在很多業務部門之間產生變革性的影響,還要為嵌入式 IIoT 解決方案的開發帶來根本性的轉變。很多負責此類項目的工程師選擇市售的單板計算機 (SBC) 作為設計的基礎。盡管這種方法可以快速產生結果,但也會讓開發人員難以輕松地將最終的設計付諸大批量生產。當選擇原型開發平臺時,一定要仔細檢查作為設計基礎的 MCU 以及各種支持元件,以了解它們是否可以單獨購買并能夠從頭集成到新的設計中。
本文將重點介紹用于物聯網設計的簡單溫度傳感器平臺的設計,還將重點說明所使用的個別元件。此外,此平臺不僅用于驗證設計理念,還將展示如何利用功耗調查對開發進行微調以及如何優化功耗。
圖 1: IIoT 溫度傳感器的基本功能要求
考慮圖 1 中所示的簡單溫度傳感器設計。此圖突出顯示了需要為將自身的數據存儲在云平臺上的電池供電型溫度傳感器設計的基本功能塊。微控制器 (MCU) 會按預設的時間間隔輪詢溫度傳感器,然后使用無線設備建立通信鏈路并向負責接收數據的云應用程序發送數據。對設計工程師而言,在選擇要使用的元件時需要做出很多個人決定,這些決定會影響物料清單成本。例如,溫度傳感器可能包括專用的溫度傳感器(例如Analog Devices 推出的暢銷 TMP36 系列),或者更加全面的溫度、濕度和氣壓組合傳感器(例如 Bosch Sensortec BME280),或者 Epcos-TDK 推出的普通表面貼裝 PTC 熱敏電阻器。成本只是其中一個考慮因素,還需要考慮精度、容差和接口方法。選擇的傳感器還會決定 MCU 規格。如果使用經濟實惠的熱敏電阻器,在所需的溫度范圍可能無法與溫度呈線性關系,因此需要通過軟件執行某種程度的斜率計算。盡管實現此目的所需的 MCU 資源數量是最少的,但仍需要加以考慮。從另一個極端來看,BME280 需要與主機 MCU 進行 SPI 或 I2C 通信,因此需要使用一個具有這些接口功能并能夠控制傳感器和處理更多數據的設備。
對于通信方法,也同樣需要做出很多關鍵決定。最重要的決定或許是要使用的無線協議,最常用的協議是藍牙和 Wi-Fi。藍牙可進行短距離的通信,適合傳輸相對較少的數據,通常與網關設備進行通信,網關設備可能會首先將數據整合,然后再使用長距離通信協議(例如 Wi-Fi)進一步傳輸這些數據。利用傳感器進行 Wi-Fi 通信時,無需使用中間網關,因此可進行長距離通信,適合傳輸更多的數據,但功耗會更高。
決定使用無線通信之后,還需要決定是選擇使用分立方法還是預認證的無線模塊。除非您的公司擁有自己的射頻專家設計團隊且預期的產量非常高,否則很可能會使用模塊方法。
這種設計的最終功能是電源管理。為傳感器供電的其中一種方法是從可更換的鈕扣電池供電,但也可以使用具有無線能量收集技術或小型太陽能板的充電電池。此外,如果能夠將 MCU 和無線模塊置于多種不同的休眠模式,則會非常有利于降低功耗以延長電池壽命。通常使用軟件來以這種方式實現對設備的控制。這種設計的其他考慮因素還包括預期的產量,以及此傳感器是否有可能是公司希望開發并推出的眾多傳感器產品之一。如果是后一種情況,則開發基于平臺的方案可獲得更多的優勢,在該方案中,MCU 和無線功能在整個系列內都是通用的,每種型號只有傳感器特定的電路有所不同。
當原型開發考慮采用傳感器設計(例如前面重點介紹的設計)時,設計工程師可以通過多種不同的方式搭建設計。過去,制造商的開發套件和評估板提供了構建設計基礎的理想學習平臺,不過在很多情況下集成各種功能時,需要執行一些設計工作和嵌入式開發。但完全集成的新款緊湊型單板計算機 (SBC) 正日益受到希望最大限度縮短原型開發時間的工程師的歡迎,這種設計足夠開源,因此工程師能夠以此 SBC 為中心構建最終設計的基礎。在這種情況下,必須能夠買到 SBC 的所有核心元件,并且知識共享許可證必須涵蓋所有的器件庫。
完全集成的緊湊型 SBC 的一個很好的例子是 Adafruit Feather M0 Wi-Fi(圖 2)。
圖 2: Adafruit Feather M0 Wi-Fi 單板計算機。
Adafruit Feather M0 Wi-Fi 的重量僅為 6.1 克,尺寸僅為 2.1 x 0.9 x 0.3 英寸,配有采用 QFN 封裝并以 48 MHz 頻率運行的 Microchip ATSAMD21G18 MCU 以及 256 kB 閃存和 32 kB SRAM。這款采用 Arm? Cortex?-M0 的設備提供了 20 個可用的 GPIO 引腳、8 個 PWM 端口、10 個 12 位的模擬輸入和 1 個 DAC。外設的串行通信接口包括 SPI、I2C 和 UART。板載 Diodes Inc. AP2112K-3.3 3.3 VDC 穩壓器的峰值電流能力為 600 mA,允許整個開發板通過微型 USB 連接器供電。邏輯電平保持在 3.3 VDC,因此如果連接到任何 5 VDC 設備,需要使用電平位移器。此外,該板也可以通過 3.7 VDC LiPo 電池和微芯片 MCP7331T-2ACI/OT 充電器 IC 結合供電。已通過類型審批的 FCC 認證微芯片 ATWINC1500 模塊配有集成天線,可進行 2.4 GHz、802.11 b/g/n Wi-Fi 通信。在正常工作條件下,MCU 的板功耗約為 10 mA,無線模塊傳輸期間的板峰值功耗為 300 mA。
Adafruit Feather M0 Wi-Fi 示意圖如圖 3 所示。
圖 3: Adafruit Feather M0 Wi-Fi 示意圖。
該板的 BOM 包括一個 32.768 kHz 的晶體、四個 LED 以及幾個電阻器和電容器。
具有 USB 引導程序的 MCU 允許使用暢銷的 Arduino IDE,為 Feather 產品的軟件開發提供了便利。使用這種方法可以快速開發應用程序,而緊湊的 Feather 板可輕松集成到早期小批量生產的測試版新產品中。專業開發人員無需使用 Feather 的 Arduino USB 串行程序和調試功能,相反,他們可以選擇使用 Atmel 軟件框架 (ASF),此框架使用位于板下側的 SWDIO/SWCLK 引腳。
正如前文所述,成功使用 SBC 為您的設計開發原型的關鍵在于能夠基于 SBC 的核心元件搭建您自己的設計。Adafruit Feather M0 無疑也支持這種方法。MCU 和無線模塊可在市面上直接夠得,提供多種開發工具和資源。可以在此處找到 Microchip SAMD21G18 微控制器規格書,此規格書詳細說明了可用的器件選項和封裝尺寸。硬件資源包括 ATSAMD21 XPRO 評估板、內容全面的用戶指南,以及在在線仿真器、編程器和調試器 (Atmel-ICE),還包括一系列擴展板,例如裝有多種傳感器的 ATIO1-XPRO。WINC1500 也受到開發資源的良好支持,包括可與 ATSAMD21 XPRO 配合使用的 XPRO 擴展板 ATWINC1500-XPRO。
Feather 提供了一個可用于驗證設計理念并開發原型的理想開發平臺,不僅如此,它所基于的所有元件都是現成的,這意味著您也可以信心百倍地將原型設計投入到生產設計階段。
為了展示為 IoT 應用開發原型的便利性,本文引用了一個示例,此示例將 Feather M0 Wi-Fi 連接到 Microsoft 的 IoT 服務 Azure。可以在此處找到全面的詳細說明,包括與 Arduino IDE 配合使用的所需庫以及 Azure 設置說明,這些說明可指導工程師完成將 Feather 板連接到 Azure 所需的準備步驟。
Microsoft Azure 是企業級彈性 IIoT 平臺的一個很好的例子,它不僅能夠與傳感器和致動器設備建立連接,還為所收集的數據提供了全套的存儲和分析應用程序。使用此平臺的免費試用版可輕松訪問您所需的全部功能。
此應用程序展示了 Bosch BME280 溫度、濕度和壓力傳感器的使用,但在此示例中,您無需將傳感器連接到 Feather 即可仿真要發送的數據。
第一步是在此注冊免費的 Microsoft Azure 帳戶。完成此步驟之后,登錄并訪問圖 4 中所示的 Microsoft Azure 儀表板。
圖 4: 設置新的 Azure IoT 中心實例。
點擊儀表板頁面頂部的 + New(+ 新建)按鈕并選擇 Internet of Things(物聯網),然后選擇 IoT Hub(物聯網中心)。隨后即可指定您的 IoT 中心參數(名稱和資源組),如圖 5 中所示。
圖 5: 在 Microsoft Azure 中設置 IoT 中心功能。
此設置過程的最后一個階段是在 IoT 中心內創建一個設備。如圖 6 中所示,添加 Device ID(設備 ID)為 TempSensor1 的設備。勾選方框并保存后,會自動生成設備密鑰。當運行 Feather 草圖之后,您將需要此設備的主密鑰。在這一點上可能會產生混淆,因為 IoT 中心和每個設備都有自己的主密鑰。主密鑰是在系統提示輸入連接字符串時需要輸入的密鑰(圖 8)。
圖 6: 將 Feather 溫度傳感器作為設備添加到 IoT 中心。
現在即可運行所提供的演示草圖,此草圖可以從此處下載。
假設您已擁有 Arduino IDE,您只需添加用于 Feather M0 板的支持文件。Adafruit 教程會指導您完成此過程,此教程可以在此處找到。
使用 Blink 示例草圖測試您的 Feather M0 Wi-Fi 板是一種很好的做法。在繼續操作之前,確保您能夠編譯和上傳草圖,并且板載引腳 13 LED(位于微型 USB 連接器的旁邊)正確閃爍。
要使用演示草圖,您必須將庫清單添加到您的 Arduino IDE 環境中。請注意,對于 Azure 庫 AzureIoTHub、AzureIoTUtility 和 AzureIoTProtocol_HTTP,您需要安裝 1.0.21 版,否則草圖會出現編譯錯誤而無法運行。此外,如果您決定不使用 BME280 傳感器但使用仿真的數據,您仍需要包含該傳感器的庫。不僅如此,默認情況下,草圖還會假設您要使用的是物理傳感器。如果希望仿真數據,您需要將 config.h 文件中的標題行更改為“#define SIMULATED_DATA true”。
圖 7 突出顯示了完整的庫清單,屏幕的底部表明成功編譯了草圖并已將其上傳到目標 Feather M0 板。
圖 7: 顯示了庫清單并表明已成功上傳的 Arduino IDE。
上傳了草圖之后,您需要切換到 IDE 的串行監視器。當寫入草圖時,需要通過串行監視器輸入 Wi-Fi 訪問詳細信息和 Azure 連接字符串(圖 8)。
圖 8: 輸入 Wi-Fi 和設備連接信息。
在輸入上述詳細信息之后不久,您應當會在串行監視器上看到確認信息,表明已建立 Wi-Fi 連接。隨后,Feather 應當開始向 Azure IoT 中心發送數據,如圖 9 中所示。在本例中,我們一直在使用仿真的數據。
圖 9: 顯示正在從 Feather M0 Wi-Fi 發送消息的串行監視器。
當 Azure 物聯網中心開始接受消息之后,您可以檢查以確保正在接收消息。圖 10 顯示了物聯網設備總結,其中顯示了接收到的消息的數量。
圖 10: 顯示消息總結的 Microsoft Azure IoT 中心。
當 Azure 平臺開始接收傳感器數據之后,您即可使用某些數據存儲和分析功能進行調查,在 Microsoft Azure 網站上可以找到這些功能的詳細信息。
正如本文中的前文所述,當使用電池作為電源時,節省功耗至關重要。Wi-Fi 是一種特別耗能的協議,但正如人們已經認識到的那樣,與其他方法相比,這種協議具有很多優勢。因此,必須注意優化傳感器設計的運行,以便在不影響傳感器性能的情況下實現低功耗。MCU 和 Wi-Fi 模塊都能夠被置于休眠模式,這樣可以顯著延長電池壽命。
可以在 SAM-D21 規格書中找到有關各種 MCU 節能模式以及設備的電源管理功能如何控制這些模式的詳細信息。也可以在此處找到一條應用說明,此說明研究了可以從 MCU 的外設接口和功能實現的節能方法。
ATWINC1500 也提供了幾乎同樣多的節能資源,包括此應用說明中的一節專門介紹。在 Feather M0 Wi-Fi 教程中,Adafruit 展示了電源監視器的使用方法,以說明 Wi-Fi 模塊的功耗差異(圖 11)。
圖 11: Feather M0 Wi-Fi 板功耗。
圖 11 中的橙色線代表 Feather M0 Wi-Fi 板的整體功耗。紫色線表示 LiPo 電池的電源電壓。請注意無線電的運行產生的尖峰,第一個尖峰包含接入點的鏈路設置。在所進行的通信的范圍以外,靜態電流約為 22 mA,表明 MCU 的電流約為 10 mA、Wi-Fi 模塊的電流約為 12 mA。了解預期的最終產品的潛在用途有助于確定可實現的節能水平。例如,如果每分鐘只需測量一次溫度,并且執行溫度測量和與云應用通信需要 5 秒鐘時間,則可據此將設備的休眠時長設置為至少 55 秒鐘,從而讓設備在 91% 的時間內處于深度休眠模式。其他節能方法可能需要執行多次溫度測量才能通過 Wi-Fi 發送測量結果,也可能只在溫度讀數不同于上一次的測量結果時發送測量結果。
總結
現成的 SBC 提供了一個用于驗證產品概念和構建初始原型設計的理想平臺。精心選擇使用市售的暢銷 MCU 和無線元件的 SBC 可以確保在驗證原型之后,可以充分利用此類板通常具有的上市時間優勢、開源資源和社區支持,快速將原型轉換為最終設計。
-
傳感器
+關注
關注
2551文章
51177瀏覽量
754275 -
物聯網
+關注
關注
2909文章
44704瀏覽量
374153 -
工業物聯網
+關注
關注
25文章
2379瀏覽量
64374
發布評論請先 登錄
相關推薦
評論