一、如何實現物聯網設備能耗管理
物聯網中的設備能耗管理涉及與設計過程相關的所有環節,并且分析設備的行為如何影響能耗非常重要。電池容量和設備行為是兩個最重要的方面。通常,我們可以從三個不同的區域來模擬物聯網設備的功耗:
微控制器
無線電操作
傳感器和執行器典型的物聯網設備使用場景是:
從傳感器獲取數據
發送和接收數據
控制執行器通常,IoT設備使用一個或多個傳感器來獲取與環境相關的信息。獲取的數據在本地或遠程使用以做出決策。使用傳感器獲取該信息,并且每個傳感器具有特定的功耗。因此,選擇相適應的傳感器以優化能耗管理就尤為重要。
物聯網設備在運行期間可以遠程發送和接收數據。通常,幾個物聯網設備連接到物聯網網關,該網關收集此類信息并將其發送到云端。從電源管理的角度來看,發送和接收操作是能耗最大的任務之一,因為這個過程涉及無線電連接(蜂窩,Wi-Fi,藍牙等)。
最后,在本地或遠程使用某些特定業務邏輯,IoT設備可以控制一個或多個執行器。
微控制器控制所有操作,是設備的大腦,為了工作,它需要電源。
二、在物聯網中實施能耗管理
我們使用Arduino,ESP8266和其他兼容設備開發IoT應用程序的最簡單方法是實現該loop() 方法中的代碼 。例如,當我們必須以特定的時間間隔從傳感器獲取數據時,只需添加 delay(..) 方法,指定設備在再次啟動之前應等待多長時間并重復相同的任務。當我們考慮電源管理方面時,這種方法并不是最好的方法。我們可以通過不同的方式來獲得更好的結果。
ESP8266有四種不同的模式可以“休眠”或保存電池:
No sleep
Modem sleep
Light sleep
Deep-sleep1. No sleep
這是使用此設備的最低效方式,因為它始終在線。
2. Modem sleep
當ESP8266連接到Wi-Fi時才會啟用此模式。在該模式下,ESP8266在兩個DTIM信標間隔之間關閉Wi-Fi模塊。ESP8266在下一個Beacon之前再次打開Wi-Fi模塊。當需要保持CPU開啟時,使用睡眠模式。
3. Light sleep
這種模式和Modem sleep模式非常相似,但在該模式下,ESP8266暫停CPU并關閉時鐘。此模式比以前的模式更有效。在Light sleep模式下,應使用GPIO引腳喚醒ESP8266。
4. Deep-sleep
在此模式下,除RTC(實時時鐘)外,一切都將關閉,因此ESP8266可以定期打開。這是最有效的模式。深度睡眠模式可用于設備應以特定間隔發送數據的情況。這是使用傳感器的應用程序的示例。應用程序讀取傳感器數據,發送值并進入深度睡眠模式。
三、如何在ESP8266中使用能耗管理來降低功耗
小隱用一個簡單的例子來描述如何使用深度睡眠模式來處理物聯網中的能耗管理。假設我們的應用程序必須讀取溫度并將其發送到遠程IoT平臺。應用程序結構則必須是:
從傳感器讀取數據
發送數據
進入深度睡眠模式預定義的時間間隔
從第一步開始重復如何在ESP8266中啟用深度睡眠模式:
第一步是啟用深度睡眠模式。如圖:
在這種情況下,我們將引腳D0連接到RST。將代碼上傳到ESP8266時,避免將D0連接到RST。
代碼如下:
#includeconst char* WIFI_SSID="---"; const char* WIFI_PWD="----"; void setup() { Serial.begin(9600); connectToWifi(); // send data Serial.println("Going to deep sleep for 15 sec"); ESP.deepSleep(15e6); } void loop() { // put your main code here, to run repeatedly: } void connectToWifi() { Serial.print("Connecting to Wifi:"); Serial.println(WIFI_SSID); WiFi.begin(WIFI_SSID, WIFI_PWD); while (WiFi.status() != WL_CONNECTED) { if (WiFi.status() == WL_CONNECT_FAILED) { Serial.println("Error during WiFi connection- "); delay(10000); } delay(1000); } Serial.print("Wifi IP:"); Serial.println(WiFi.localIP()); }
如此,ESP8266進入深度睡眠模式15秒。當它醒來時,它會從頭開始,連接到Wi-Fi,依此類推??梢允褂眠@種方法使用按鈕啟動它來喚醒ESP8266。
結語:希望此文能幫助大家認識到能耗管理在物聯網設備管理中的重要性。