- Různé metody pro minimalizaci spotřeby energie
- Požadované komponenty
- Typy režimů spánku v ESP8266
- Programování režimu hlubokého spánku ESP8266
- Testování DeepSleep na ESP8266
Jelikož revoluce IoT každým dnem vzkvétá, počet připojených zařízení velmi rychle roste. V budoucnu bude většina zařízení vzájemně propojena a budou komunikovat v reálném čase. Jedním z problémů, kterým tato zařízení čelí, je spotřeba energie. Tento faktor spotřeby energie je jedním z kritických a rozhodujících faktorů pro jakékoli zařízení IoT a projekty IoT.
Jak víme, že ESP8266 je jedním z nejpopulárnějších modulů pro sestavení jakéhokoli projektu IoT, takže v tomto článku se dozvídáme o úspoře energie při používání ESP8266 v jakékoli aplikaci IoT. Zde nahráváme data teplotního senzoru LM35 do cloudu ThingSpeak v intervalu 15 sekund a během těchto 15 sekund ESP8266 zůstává v režimu DeepSleep, aby šetřil energii
Různé metody pro minimalizaci spotřeby energie
Existuje několik způsobů, jak optimalizovat spotřebu energie ve vestavěných zařízeních a zařízeních IoT. Optimalizace může být provedena na hardwaru a softwaru. Někdy nemůžeme optimalizovat hardwarové komponenty, abychom snížili spotřebu energie, ale určitě to dokážeme na straně softwaru změnou a optimalizací pokynů a funkcí kódu. Nejen to, vývojáři mohou také upravit frekvenci hodin tak, aby se snížila spotřeba energie mikrokontroléru.Můžeme napsat firmware, který uspí hardware, když nedojde k žádné výměně dat, a provést definovanou úlohu v určitém intervalu. V režimu spánku připojený hardware odebírá mnohem méně energie, a proto může baterie vydržet dlouho. Můžete si také přečíst Minimalizace spotřeby energie v mikrokontrolérech, pokud se chcete dozvědět více o technikách spotřeby energie.
Moduly ESP8266 jsou nejpoužívanější moduly Wi-Fi a mají mnoho funkcí v malé velikosti, které mají různé režimy, včetně režimu spánku, a k těmto režimům lze přistupovat pomocí určitých úprav hardwaru a softwaru. Chcete-li se dozvědět více o ESP8266, můžete zkontrolovat naše projekty založené na IoT pomocí modulu ESP826 Wi-Fi, některé z nich jsou uvedeny níže:
- Propojení ESP8266 NodeMCU s mikrokontrolérem Atmega16 pro odesílání e-mailů
- Odesílání dat ze snímače teploty a vlhkosti do databáze Firebase v reálném čase pomocí NodeMCU ESP8266
- IoT Controlled LED using Google Firebase Console and ESP8266 NodeMCU
Zde vysvětlíme různé režimy spánku dostupné v ESP8266 a ukážeme je odesláním údajů o teplotě na server Thingspeak v pravidelných intervalech pomocí režimu hlubokého spánku.
Požadované komponenty
- Modul Wi-Fi ESP8266
- Teplotní senzor LM35
- Propojovací vodiče
Typy režimů spánku v ESP8266
Modul Esp8266 pracuje v následujících režimech:
- Aktivní režim: V tomto režimu je zapnut celý čip a čip může přijímat, přenášet data. Je zřejmé, že se jedná o režim s nejvyšší spotřebou energie.
- Režim spánku modemu: V tomto režimu je CPU v provozu a rádia Wi-Fi jsou deaktivována. Tento režim lze použít v aplikacích, které vyžadují, aby procesor fungoval, jako v PWM. Díky tomu se obvod Wi-Fi modemu vypne při připojení k Wi-Fi AP (přístupový bod) bez přenosu dat, aby se optimalizovala spotřeba energie.
- Režim lehkého spánku: V tomto režimu jsou CPU a všechny periferie pozastaveny. Každé probuzení, například externí přerušení, čip probudí. Bez přenosu dat lze obvod Wi-Fi modemu vypnout a CPU pozastavit, aby se šetřila spotřeba energie.
- Režim hlubokého spánku: V tomto režimu je funkční pouze RTC a všechny ostatní součásti čipu jsou vypnuty. Tento režim je užitečný tam, kde jsou data přenášena po dlouhých časových intervalech.
Připojte teplotní senzor LM35 k pinu A0 NodeMCU.
Pokud má modul ESP na kolíku RST HIGH, je v provozním stavu. Jakmile přijme signál LOW na kolíku RST, ESP se restartuje.
Nastavte časovač pomocí režimu hlubokého spánku, jakmile časovač skončí, pak pin D0 odešle signál LOW na pin RST a modul se probudí restartováním.
Nyní je hardware připraven a dobře nakonfigurován. Odečty teploty budou odeslány na server Thingspeak. Za tímto účelem si vytvořte účet na thingspeak.com a vytvořte si kanál pomocí níže uvedených kroků.
Nyní zkopírujte klíč Write API. Který bude použit v kódu ESP.
Programování režimu hlubokého spánku ESP8266
Pro programování modulu ESP8266 bude použito snadno dostupné IDE Arduino. Ujistěte se, že jsou nainstalovány všechny soubory desky ESP8266.
Začněte se zahrnutím všech důležitých požadovaných knihoven.
#zahrnout
Jakmile jsou pro přístup k funkcím zahrnuty všechny knihovny, pak přiřaďte klíč pro zápis API, nakonfigurujte název a heslo Wi-Fi. Poté deklarujte všechny proměnné pro další použití, kde mají být data uložena.
Řetězec apiWritekey = "*************"; // nahraďte klíčem THINGSPEAK WRITEAPI zde char ssid = "******"; // vaše wifi SSID jméno char heslo = "******"; // wifi heslo
Nyní proveďte funkci pro připojení modulu k síti Wi-Fi pomocí funkce wifi.begin () a poté průběžně kontrolujte, dokud modul není připojen k Wi-Fi pomocí smyčky while.
void connect1 () { WiFi.disconnect (); zpoždění (10); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {
Proveďte další funkci pro odesílání dat na server thingspeak. Zde bude odeslán řetězec, který obsahuje klíč pro zápis API, číslo pole a data, která musí být odeslána. Poté odešlete tento řetězec pomocí funkce client.print ().
void data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& pole1 ="; tsData + = String (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / aktualizace HTTP / 1.1 \ n"); client.print ("Host: api.thingspeak.com \ n");
Zavolejte funkci connect1, která zavolá funkci pro připojení Wi-Fi, poté odečte údaje o teplotě a převede je na Celsia.
void setup () { Serial.begin (115200); Serial.println ("zařízení je v režimu probuzení"); connect1 (); int hodnota = analogRead (A0); plovoucí volty = (hodnota / 1024,0) * 5,0; tempC = volty * 100,0;
Nyní zavolejte funkci data () a nahrajte data do cloudu věcí. Nakonec je důležitou funkcí, kterou chcete volat, ESP.deepSleep (); to způsobí, že modul bude spát po definovaný časový interval, který je v mikrosekundách.
data(); Serial.println ("hluboký spánek na 15 sekund"); ESP.deepSleep (15e6);
Funkce smyčky zůstane prázdná, protože všechny úkoly musí být provedeny jednou a poté po definovaném časovém intervalu resetovat modul.
Pracovní video a celý kód jsou uvedeny na konci tohoto tutoriálu. Nahrajte kód do modulu ESP8266. Před nahráním programu odstraňte připojený vodič RST a D0, jinak dojde k chybě.
Testování DeepSleep na ESP8266
Po nahrání programu uvidíte, že odečty teploty se nahrávají na cloud ThingSpeak po každých 15 sekundách a poté modul přejde do režimu hlubokého spánku.
Tím je dokončen kurz používání Deep Sleep v modulu ESP8266. Hluboký spánek je velmi důležitá funkce a je součástí většiny zařízení. Můžete si přečíst tento kurz a použít tuto metodu pro různé projekty. V případě jakýchkoli pochybností nebo návrhů prosím napište a komentujte níže. Také se můžete dostat na naše fórum.