設計互聯網連接產品需要掌握眾多技能。開發人員必須知道如何編寫嵌入式軟件和構建電路板,還要了解如何保護設備安全,以及如何將設備連接到網絡以便進行遠程更新和管理。
為單個物聯網產品開發原理和建立架構可能具有很大挑戰,且非常耗時,成本昂貴。開發團隊需要一種方法,能夠快速啟動開發,最大程度減少在典型設計周期中需要完成的工作,從而可以滿足成本和上市時間要求。
現在已出現了許多不同的物聯網平臺可以幫助實現這一目標,但 Electric Imp 提供的平臺尤其引人注目,因為該平臺集成了所有必要的硬件和軟件,可讓開發人員快速啟動開發。
本文將介紹 Electric Imp 物聯網平臺及其使用方法。
定義 Electric Imp 物聯網平臺
Electric Imp 平臺是一個為開發人員提供完整物聯網設備連接和管理解決方案的物聯網平臺。該平臺包含了開發團隊需要的所有構件,可幫助他們快速開發產品并投入生產。這些構件包括:
全集成硬件
API
云服務
代碼庫
安全解決方案
首先,開發人員將其傳感器和專有硬件連接到 Electric Imp 無線電模塊,該模塊不僅包含定制軟件,還包含管理到 Imp Cloud 的安全連接的 ImpOS(圖 1)。最終用戶和開發人員都能通過移動設備使用一個稱作 BlinkUp 的應用,將其 Wi-Fi 設置提供給產品或開發平臺。一旦 Imp 硬件獲取了 Wi-Fi 信息,即可安全地與 Imp Cloud 直接通信,還可通過云與互聯網連接。
圖 1:Electric Imp 平臺提供了成熟的全集成硬件、軟件、操作系統、API、云服務和安全功能,可快速將物聯網設備連接到云。(圖片來源:Electric Imp)
使用像 Electric Imp 這樣的物聯網平臺,可為開發人員帶來多種優勢:
顯著縮短產品上市時間
專注于公司的核心專業技術,而非互聯網連接
提升產品價值并增強產品差異
無需構建連接基礎架構和掌握相關專業知識
Electric Imp 硬件
Electric Imp 硬件為開發人員提供了一組標準硬件,包括:
802.11 b/g/n or a/b/g/n Wi-Fi 收發器
堅固耐用的嵌入式操作系統,提供故障保護固件更新
用戶可選的 I/O 接口,例如 GPIO、PWM 和 Analog In
這些模塊由 Murata Electronics 制造。對設計人員而言,主要的區別在于內部處理器、Wi-Fi 連接選項以及封裝。例如,imp005 (LBWA1UZ1GC) 基于 320 MHz ARM Cortex-R4 處理器,可同時在 2.45 GHz 和 5 GHz 頻段工作。而 imp003 (LBWA1ZV1CD) 基于 144 MHz ARM Cortex-M4F 處理器,僅可在 2.45 GHz 頻段工作。它們都采用表面貼裝式封裝(圖 2)。
圖 2:imp005(左)和 imp003(右)模塊集成了 Wi-Fi 模塊和 ARM Cortex 微控制器,以最大程度地減小設備尺寸。(圖片來源:Murata Electronics)
沒有分線板,表面貼裝式封裝將難以訪問。imp003 采用了 IMP003-BREAKOUT,它是一種簡單的分線裝置,包括一個 USB 接口(可供開發人員用于為設備供電)、模塊編程所需的光電晶體管(使用 Electric Imp 獨有的 BlinkUp 方法設置 Wi-Fi),以及一些其他支持元件(圖 3)。
圖 3:imp003 分線模塊是一種低引腳數的開發板,能夠讓開發人員輕松地熟悉和使用將用于最終產品的 Electric Imp 硬件。(圖片來源:Murata Electronics)
imp005 分線板有些復雜,因為 imp005 模塊不僅有更多的引腳數,而且還有性能更加強大的 ARM Cortex-R4 處理器(圖 4)。imp005 分線板還包括了以太網支持、一個用于設備供電和連接到主機的標準 USB 接口以及光電晶體管。
圖 4:imp005 分線模塊讓開發人員能夠使用性能更加強大的 imp005,它包含 ARM Cortex-R4 微控制器,還包括高級連接選項,例如 USB 和以太網。(圖片來源:Murata Electronics)
使用 BlinkUp 設置 Electric Imp
所有物聯網設備面臨的一個共同問題是如何利用本地 Wi-Fi 路由器信息為設備編程。Electric Imp 通過一種獨特的方法解決了這個問題,它使用光電晶體管,為設備進行 SSID 和密碼信息的編程。
平臺和最終產品的用戶將 Electric Imp BlinkUp 應用下載到移動設備上,然后將其網絡信息輸入該應用中。收到提示時,用戶對準光電晶體管按一下移動設備。接著,移動設備的屏幕會閃爍一個命令序列,它可為 Electric Imp 硬件進行編程(圖 5)。編程完成之后,即可開始開發工作。
警告!在進行網絡信息編程時,不要盯著移動設備屏幕。這樣可能導致劇烈頭痛或癲癇發作。
圖 5:使用 BlinkUp 應用,開發人員或用戶可輸入 Wi-Fi SSID 和密碼,并通過從移動設備到光電晶體管的一系列閃爍,輕松將這些信息傳輸到 Electric Imp 模塊。這種方法無需藍牙或 USB 等額外連接。(圖片來源:Electric Imp)
開發人員將 Electric Imp 模塊連接到互聯網之后,該模塊將向 Imp Cloud 注冊一個唯一的 ID。在 BlinkUp 應用中可以找到這個 ID。這個唯一 ID 可用于標識模塊身份,并將模塊連接到在線開發環境。該 ID 還可用于將固件更新推送至產品以及管理設備。用戶可以登錄到開發環境,然后創建新的軟件應用(也稱為“模型”),再將模塊 ID 與該模型相關聯,通過這種方式將模塊連接至云(圖 6)。
圖 6:要通過云將模塊連接到軟件模型,只需查看可用 Imp 模塊列表,然后將現有軟件模型或新模型連接到設備即可。(圖片來源:Electric Imp)
一旦創建好模型,開發人員即可訪問在線開發環境。通過這種方式,他們可為 Electric Imp 模塊編寫軟件和要在云中運行的代碼,以便與模塊進行通信。服務器和模塊應用代碼使用名為 Squirrel 的腳本語言編寫。Squirrel 的表示法類似于 C 編程語言,因此對于大多數嵌入式開發人員而言,這種轉換是非常自然的。
開發環境分為三個主要部分。第一個部分是服務器端代碼,也稱為代理代碼。第二個部分是設備代碼,一旦編譯好腳本,即可部署到模塊并由 Imp Cloud 進行管理。第三個部分是日志,可用于監控代理和設備行為,還可用于調試。
圖 7:Electric Imp 開發環境是一種完全集成的環境,能夠讓開發人員通過單個視圖,同時處理其設備固件和云軟件。(圖片來源:Electric Imp)
使用閃爍 LED 程序顯示“Hello World”
在 Electric Imp 模塊上構建和運行應用非常簡單。我們可從較高的抽象層級,將對象分配給硬件功能。這樣一來,Imp 模塊和底層微控制器將變成一個黑盒。
開發人員采取的第一個步驟是通過終端或閃爍 LED 打印“Hello World”。我們看一下閃爍 LED 所需的代碼。
首先,開發人員需要登錄開發環境,并創建“Hello World”或“Blinky”模型,然后將其分配給目標模塊。如任何應用一樣,開發人應該分配和配置引腳及變量。在本例中,如果 LED 連接到引腳 5,則開發人員可以編寫相應代碼,以配置 LED 并創建狀態變量(列表 1)。
// Create a global variable called 'led' and assign the 'pin' object to it
led <- hardware.pin5;
// Configure 'led' to be a digital output with a starting value of digital 0 (low, 0V)
led.configure(DIGITAL_OUT, 0);
// Create a global variable to store current state of 'led‘
state <- 0;
列表 1:為 Electric Imp 模塊編寫軟件非常簡單,只需使用預先存在的庫和 Squirrel 腳本語言即可。此腳本可配置 LED 及創建狀態變量。(代碼來源:Electric Imp)
然后可以編寫簡單的應用功能,讓 LED 閃爍(列表 2)。
function blink()
{
// Invert the value of state:
// when state = 1, 1-1 = 0
// when state = 0, 1-0 = 1
state = 1 - state;
// Write current state to 'led' (which is pin9)
led.write(state);
// Schedule the imp to wakeup in 0.5 seconds and call blink() again
imp.wakeup(0.5, blink);
}
列表 2:通過一組可簡化開發的庫,可以讓 LED 閃爍或控制硬件,從而大幅縮短開發時間。在本例中,我們使用了一個簡單函數來訪問 LED 資源,并通過 ImpOS 將函數執行延遲 500 毫秒(代碼來源:Electric Imp)
大功告成!這就是配置 LED 并讓它在硬件上閃爍所需的全部 Squirrel 代碼。LED 程序的代碼長度不足十行,開發人員也不需要知道任何 ARM 內核寄存器。如此一來,便可輕松訪問高級 API,從而減少開發人員的工作負擔。
將外部傳感器集成到 Electric Imp 模型中
將外部傳感器和元器件集成到 Electric Imp 平臺也比較簡單。平臺允許開發人員使用 #require 指令包括一個已經開發好的庫,與 C 編程語言中的 #include 指令相似。我們已經開發了多種類型的庫,可供開發人員隨時使用。這些庫包括:
網絡服務
實用工具
硬件驅動程序
產品開發人員可將繼電器、加速計、磁力儀等各種器件連接到 Electric Imp 模塊,然后使用已為這些元器件編寫的庫,從而快速啟動設計。這些庫可從 Electric Imp 開發中心網站獲取。
圖 8:Electric Imp 提供了各種各樣的庫,從啟動開發的那一刻即可隨時使用。這些庫可以加快開發速度,讓用戶能夠非常便利地使用常用硬件設備和軟件服務。(圖片來源:Electric Imp)
Electric Imp 物聯網平臺使用技巧與竅門
在使用像 Electric Imp 這樣的物聯網平臺時,開發團隊必須考慮多個注意事項。首先,Electric Imp 模塊在單個封裝中集成了兩個主要元器件(Wi-Fi 無線電和微控制器)。這種集成可以節省成本和板空間。第二,在為產品選擇元器件時,開發人員應該查看現有的硬件和驅動程序庫。使用現有庫有助于加快開發周期。
最后,開發人員必須牢記:Electric Imp 不直接連接到互聯網。所有通信都必須先通過到 Imp Cloud 的安全連接方可執行。然后使用代理,將信息傳送到更大范圍的網絡。開發人員在云側還可以使用第三方服務庫,例如數據存儲和分析。應該盡可能使用庫提供的現有代碼。
總結
如果設計人員使用現有技術,并且充分利用物聯網平臺,他們將能非常快速地開發物聯網設備。通過充分利用市場上的物聯網平臺,開發人員能夠專注于自己的專業領域,從而將基礎架構問題留給其他公司處理。正如我們所看到的那樣,Electric Imp 物聯網平臺是一種獨特而有趣的解決方案,值得我們進一步深入研究。獨特有趣
-
物聯網
+關注
關注
2914文章
45008瀏覽量
377741 -
嵌入式操作系統
+關注
關注
1文章
118瀏覽量
31595
發布評論請先 登錄
相關推薦
哇!5.2秒進入應用界面!Linux快速啟動方案分享,基于全志T113-i國產平臺
Nordic推出最新物聯網原型驗證平臺Thingy:91 X
低代碼開發平臺,低成本快速搭建云MES系統
![低代碼<b class='flag-5'>開發</b><b class='flag-5'>平臺</b>,低成本<b class='flag-5'>快速</b>搭建云MES系統](https://file1.elecfans.com/web2/M00/C7/E9/wKgZomYXYQuADa-NAAV0dcxsjG8377.png)
芯科科技第三代無線開發平臺助力物聯網設備升級
低代碼物聯網云平臺是什么?有什么功能?
一款平臺,雙芯選擇,米爾國際兼容與國產自主融合的FPGA開發平臺
![一款<b class='flag-5'>平臺</b>,雙芯選擇,米爾國際兼容與國產自主融合的FPGA<b class='flag-5'>開發</b><b class='flag-5'>平臺</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
邊緣計算物聯網平臺是什么
哇!0.8秒啟動!Linux快速啟動方案分享,全志T113-i國產平臺!
雷迪埃微型連接器IMP系列
![雷迪埃微型連接器<b class='flag-5'>IMP</b>系列](https://file1.elecfans.com/web2/M00/02/C3/wKgZoma9u9aANN2cAAB05oIlPcQ488.png)
評論