www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > IoT設(shè)計分享
[導(dǎo)讀]ESP8266在構(gòu)建基于物聯(lián)網(wǎng)的項目中非常受歡迎,但現(xiàn)在ESP32由于其低成本的BLE兼容功能而受到很多關(guān)注。它還配備了32個GPIO引腳和32位雙核CPU。雖然,它提供了很多功能,但在正常使用模式下,它似乎很耗電。當(dāng)應(yīng)用程序由市電供電時,不必著急,但是當(dāng)它們由電池供電時,我們必須非常注意ESP32的功耗。

ESP8266在構(gòu)建基于物聯(lián)網(wǎng)的項目中非常受歡迎,但現(xiàn)在ESP32由于其低成本的BLE兼容功能而受到很多關(guān)注。它還配備了32個GPIO引腳和32位雙核CPU。雖然,它提供了很多功能,但在正常使用模式下,它似乎很耗電。當(dāng)應(yīng)用程序由市電供電時,不必著急,但是當(dāng)它們由電池供電時,我們必須非常注意ESP32的功耗。

ESP32提供了不同的睡眠模式,使用它我們可以節(jié)省大量的電力,并且可以使用電池源運(yùn)行我們的物聯(lián)網(wǎng)應(yīng)用程序更長的時間。在本文中,我們將討論ESP32的不同睡眠模式,并將檢查在正常和深度睡眠模式下的電流消耗。要了解更多關(guān)于ESP32的信息,請查看各種基于ESP32的項目。

了解ESP32硬件

從上圖可以看出,ESP32配備了一個雙核32位微處理器,擁有448 KB的ROM, 520 KB的SRAM和4MB的閃存。此外,它具有內(nèi)置的Wi-Fi模塊,藍(lán)牙,RTC和許多其他外圍設(shè)備,這使得它在使用ESP32的幾個物聯(lián)網(wǎng)應(yīng)用中很受歡迎。

ESP32還有一個被稱為ULP的低功耗協(xié)處理器。ULP代表超低功耗,集成在ESP32板中。這個處理器的特點(diǎn)是它可以獨(dú)立于主核心處理器運(yùn)行,它也可以訪問gpio和一些外圍設(shè)備。它也可以在ESP32處于深度睡眠模式時運(yùn)行。當(dāng)由電池供電時,這有助于節(jié)省大量電力。

ESP32睡眠模式

ESP32可以配置為五種不同的功率模式。每種模式都有不同的功耗額定值。ESP32的不同功率模式有:

?主動模式

?調(diào)制解調(diào)器睡眠模式

?淺睡眠模式

?深度睡眠模式

?休眠模式

ESP32不同功率模式的比較(根據(jù)pressif數(shù)據(jù)表)如下:

活躍的模式:

在ESP32的主動模式下,CPU、藍(lán)牙、Wi-Fi、無線電、RTC和ULP協(xié)處理器等所有器件都處于ON狀態(tài)。這是ESP32最低效的功耗模式。當(dāng)設(shè)備由主電源供電時,首選此模式。根據(jù)快訊數(shù)據(jù)表,它聲稱在這種模式下電流消耗為95-240毫安。

Modem睡眠模式:

在這種模式下,除了Wi-Fi、藍(lán)牙、無線電模塊和外圍設(shè)備外,所有設(shè)備都處于活動狀態(tài)。這種模式在低速下消耗約2毫安,在高速下消耗約50毫安。

當(dāng)模塊處于這種模式時,如果我們需要藍(lán)牙/Wi-Fi連接保持激活狀態(tài),那么我們必須在一定的間隔間隔喚醒模塊,這將使模塊在激活模式和調(diào)制解調(diào)器睡眠模式之間切換。這種睡眠模式被稱為聯(lián)想睡眠模式。

淺睡眠模式:

在ESP32的淺睡眠模式下,數(shù)字外設(shè)、大部分RAM和cpu都是時鐘門控的。當(dāng)輕睡眠模式退出時,外設(shè)和cpu恢復(fù)運(yùn)行,它們的內(nèi)部狀態(tài)被保留。時鐘門控是一種通過禁用觸發(fā)器的時鐘脈沖來節(jié)省數(shù)字電路功耗的技術(shù),從而禁用開關(guān)狀態(tài)。由于切換狀態(tài)消耗大量的電力,因此如果您禁用它,我們可以節(jié)省大量的電力。

ESP32的這種電源模式消耗大約0.8 mA的電流。

深度睡眠模式:

ESP32的深度睡眠模式是非常有效的,消耗非常少的功率時,由電池供電。在這種模式下,一切都被關(guān)閉,包括CPU、Wi-Fi、藍(lán)牙、外圍設(shè)備等。只有ULP協(xié)處理器、RTC和RTC內(nèi)存在此模式下打開。

我們可以用ULP編寫程序并將其存儲在它的RTC存儲器中,這樣它就可以訪問外設(shè)、定時器等。當(dāng)在深度睡眠模式下工作時,ESP32可以通過使用定時器,外部中斷等事件喚醒。

ESP32深度睡眠功耗約為10-150uA電流,非常令人印象深刻。

冬眠:

在ESP32的這種模式下,除了RTC定時器和一些RTC GPIO引腳外,所有東西都被禁用,當(dāng)模塊需要喚醒時,這些引腳將很有用。在這種模式下,沒有辦法保存任何數(shù)據(jù),不像深度睡眠模式,我們可以使用RTC內(nèi)存保存數(shù)據(jù)。

ESP32的這種電源模式消耗的電流最小,約為5ua。

ESP32深度睡眠模式硬件實(shí)現(xiàn)

在本節(jié)中,我們將實(shí)際演示ESP32的深度睡眠電源模式,并將其電流消耗與有源電源模式進(jìn)行比較。有幾種方法可以喚醒ESP32模塊從深度睡眠模式,如定時器喚醒,觸摸喚醒,外部喚醒等。在本教程中,我們將專注于Timer喚醒。

在基于定時器的喚醒中,ESP32將進(jìn)入深度睡眠模式,在一定的時間間隔后,ESP32將自動喚醒并恢復(fù)到正常狀態(tài)。這里我們還可以定義一些變量,這些變量可以存儲在RTC內(nèi)存中,并且可以在每次重新啟動時使用。

在這里,我們用ESP32連接了兩個led,并用面包板電源模塊為ESP32供電。在第一次啟動時,紅色LED將發(fā)光,這將表明ESP32首次啟動。之后,對于所有重啟,綠色LED將發(fā)光,這表明它在RTC內(nèi)存中保留了啟動編號的值。

從深度睡眠中喚醒ESP32的編程

完整的代碼ESP32喚醒使用定時器在最后給出。下面是對代碼的逐步解釋,該代碼需要上傳到ESP32,以便使ESP32進(jìn)入深度睡眠模式,然后使用Timer方法喚醒。

首先,我們需要定義睡眠時間,ESP32將進(jìn)入深度睡眠。為此,首先設(shè)置轉(zhuǎn)換因子以將秒轉(zhuǎn)換為微秒。然后提供以秒為單位的睡眠時間間隔。在我的例子中,模塊將在6秒內(nèi)進(jìn)入深度睡眠模式。

接下來,在RTC內(nèi)存中定義任意變量,以便在下次重新啟動時保存數(shù)據(jù)。為此,我們需要如下聲明。在我的情況下,我已經(jīng)在串行監(jiān)視器中顯示了ESP32的重啟次數(shù)。

然后創(chuàng)建一個條件檢查是否為第一次啟動。在第一次啟動時,紅色LED將發(fā)光,這將表明ESP32首次啟動。之后,對于所有重啟,綠色LED將發(fā)光,這表明它在RTC內(nèi)存中保留了啟動編號的值。

在最后一步中,配置我們之前定義的深度睡眠定時器參數(shù)。這可以使用函數(shù)esp_sleep_enable_timer_wakeup來完成,然后調(diào)用函數(shù)esp_deep_sleep_start()來啟動ESP32的深度睡眠模式,如下所示。

ESP32睡眠模式測試

活躍的模式:

在這里,你可以看到在主動模式下的電流消耗量約為60mA。

ESP32深度睡眠模式:

現(xiàn)在,將ESP32置于深度睡眠模式后,電流消耗顯著降低到11mA。

本文編譯自iotdesignpro

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉