應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

物聯(lián)網(wǎng)中設(shè)備能耗應(yīng)當(dāng)這樣管理!

2019-02-26 09:08 云隱物聯(lián)網(wǎng)云課堂

導(dǎo)讀:物聯(lián)網(wǎng)中的設(shè)備能耗管理是一項具有挑戰(zhàn)性的任務(wù),設(shè)備可以位于遠(yuǎn)程的任何一個地方且必須需要電能方可工作。

物聯(lián)網(wǎng)中的設(shè)備能耗管理是一項具有挑戰(zhàn)性的任務(wù),設(shè)備可以位于遠(yuǎn)程的任何一個地方且必須需要電能方可工作。

物聯(lián)網(wǎng)

一、如何實現(xiàn)物聯(lián)網(wǎng)設(shè)備能耗管理

物聯(lián)網(wǎng)中的設(shè)備能耗管理涉及與設(shè)計過程相關(guān)的所有環(huán)節(jié),并且分析設(shè)備的行為如何影響能耗非常重要。電池容量和設(shè)備行為是兩個最重要的方面。通常,我們可以從三個不同的區(qū)域來模擬物聯(lián)網(wǎng)設(shè)備的功耗:

  • 微控制器

  • 無線電操作

  • 傳感器和執(zhí)行器

典型的物聯(lián)網(wǎng)設(shè)備使用場景是:

  • 從傳感器獲取數(shù)據(jù)

  • 發(fā)送和接收數(shù)據(jù)

  • 控制執(zhí)行器

通常,IoT設(shè)備使用一個或多個傳感器來獲取與環(huán)境相關(guān)的信息。獲取的數(shù)據(jù)在本地或遠(yuǎn)程使用以做出決策。使用傳感器獲取該信息,并且每個傳感器具有特定的功耗。因此,選擇相適應(yīng)的傳感器以優(yōu)化能耗管理就尤為重要。

物聯(lián)網(wǎng)設(shè)備在運行期間可以遠(yuǎn)程發(fā)送和接收數(shù)據(jù)。通常,幾個物聯(lián)網(wǎng)設(shè)備連接到物聯(lián)網(wǎng)網(wǎng)關(guān),該網(wǎng)關(guān)收集此類信息并將其發(fā)送到云端。從電源管理的角度來看,發(fā)送和接收操作是能耗最大的任務(wù)之一,因為這個過程涉及無線電連接(蜂窩,Wi-Fi,藍(lán)牙等)。

最后,在本地或遠(yuǎn)程使用某些特定業(yè)務(wù)邏輯,IoT設(shè)備可以控制一個或多個執(zhí)行器。

微控制器控制所有操作,是設(shè)備的大腦,為了工作,它需要電源。

二、在物聯(lián)網(wǎng)中實施能耗管理

我們使用Arduino,ESP8266和其他兼容設(shè)備開發(fā)IoT應(yīng)用程序的最簡單方法是實現(xiàn)該loop() 方法中的代碼 。例如,當(dāng)我們必須以特定的時間間隔從傳感器獲取數(shù)據(jù)時,只需添加 delay(..) 方法,指定設(shè)備在再次啟動之前應(yīng)等待多長時間并重復(fù)相同的任務(wù)。當(dāng)我們考慮電源管理方面時,這種方法并不是最好的方法。我們可以通過不同的方式來獲得更好的結(jié)果。

ESP8266有四種不同的模式可以“休眠”或保存電池:

  • No sleep

  • Modem sleep

  • Light sleep

  • Deep-sleep

1. No sleep

這是使用此設(shè)備的最低效方式,因為它始終在線。

2. Modem sleep

當(dāng)ESP8266連接到Wi-Fi時才會啟用此模式。在該模式下,ESP8266在兩個DTIM信標(biāo)間隔之間關(guān)閉Wi-Fi模塊。ESP8266在下一個Beacon之前再次打開Wi-Fi模塊。當(dāng)需要保持CPU開啟時,使用睡眠模式。

3. Light sleep

這種模式和Modem sleep模式非常相似,但在該模式下,ESP8266暫停CPU并關(guān)閉時鐘。此模式比以前的模式更有效。在Light sleep模式下,應(yīng)使用GPIO引腳喚醒ESP8266。

4. Deep-sleep

在此模式下,除RTC(實時時鐘)外,一切都將關(guān)閉,因此ESP8266可以定期打開。這是最有效的模式。深度睡眠模式可用于設(shè)備應(yīng)以特定間隔發(fā)送數(shù)據(jù)的情況。這是使用傳感器的應(yīng)用程序的示例。應(yīng)用程序讀取傳感器數(shù)據(jù),發(fā)送值并進(jìn)入深度睡眠模式。

三、如何在ESP8266中使用能耗管理來降低功耗

小隱用一個簡單的例子來描述如何使用深度睡眠模式來處理物聯(lián)網(wǎng)中的能耗管理。假設(shè)我們的應(yīng)用程序必須讀取溫度并將其發(fā)送到遠(yuǎn)程IoT平臺。應(yīng)用程序結(jié)構(gòu)則必須是:

  • 從傳感器讀取數(shù)據(jù)

  • 發(fā)送數(shù)據(jù)

  • 進(jìn)入深度睡眠模式預(yù)定義的時間間隔

  • 從第一步開始重復(fù)

如何在ESP8266中啟用深度睡眠模式:

第一步是啟用深度睡眠模式。如圖:

在這種情況下,我們將引腳D0連接到RST。將代碼上傳到ESP8266時,避免將D0連接到RST。

代碼如下:

#include <ESP8266WiFi.h> const 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進(jìn)入深度睡眠模式15秒。當(dāng)它醒來時,它會從頭開始,連接到Wi-Fi,依此類推。可以使用這種方法使用按鈕啟動它來喚醒ESP8266。

結(jié)語:希望此文能幫助大家認(rèn)識到能耗管理在物聯(lián)網(wǎng)設(shè)備管理中的重要性。