應(yīng)用

技術(shù)

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

物聯(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è)備能耗管理是一項(xiàng)具有挑戰(zhàn)性的任務(wù),設(shè)備可以位于遠(yuǎn)程的任何一個(gè)地方且必須需要電能方可工作。

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

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

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

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

  • 微控制器

  • 無(wú)線電操作

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

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

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

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

  • 控制執(zhí)行器

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

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

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

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

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

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

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

  • No sleep

  • Modem sleep

  • Light sleep

  • Deep-sleep

1. No sleep

這是使用此設(shè)備的最低效方式,因?yàn)樗冀K在線。

2. Modem sleep

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

3. Light sleep

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

4. Deep-sleep

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

三、如何在ESP8266中使用能耗管理來(lái)降低功耗

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

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

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

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

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

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

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

在這種情況下,我們將引腳D0連接到RST。將代碼上傳到ESP8266時(shí),避免將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)它醒來(lái)時(shí),它會(huì)從頭開始,連接到Wi-Fi,依此類推。可以使用這種方法使用按鈕啟動(dòng)它來(lái)喚醒ESP8266。

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