- Rôzne metódy na minimalizáciu spotreby energie
- Súčasti sú povinné
- Typy režimov spánku v ESP8266
- Programovanie hlbokého spánku ESP8266
- Testuje sa DeepSleep na ESP8266
Pretože revolúcia v oblasti internetu vecí je na vzostupe každým dňom, počet pripojených zariadení veľmi rýchlo rastie. V budúcnosti bude väčšina zariadení vzájomne prepojená a budú komunikovať v reálnom čase. Jedným z problémov, s ktorými sa stretávajú tieto zariadenia, je spotreba energie. Tento faktor spotreby energie je jedným z kritických a rozhodujúcich faktorov pre akékoľvek zariadenie IoT a projekty IoT.
Ako vieme, že ESP8266 je jedným z najpopulárnejších modulov na zostavenie ľubovoľného projektu IoT, preto sa v tomto článku dozvieme o úspore energie pri používaní ESP8266 v ľubovoľnej aplikácii IoT. Tu nahráme údaje teplotného snímača LM35 do mraku ThingSpeak v intervale 15 sekúnd a počas týchto 15 sekúnd zostane ESP8266 v režime DeepSleep, aby sa šetrila energia
Rôzne metódy na minimalizáciu spotreby energie
Existuje niekoľko spôsobov, ako optimalizovať spotrebu energie v zabudovaných zariadeniach a zariadeniach IoT. Optimalizáciu je možné vykonať na hardvéri a softvéri. Niekedy nemôžeme optimalizovať hardvérové komponenty na zníženie spotreby energie, ale určite to môžeme urobiť po softvérovej stránke zmenou a optimalizáciou pokynov a funkcií kódu. Nielen to, vývojári môžu tiež upraviť frekvenciu hodín tak, aby sa znížila spotreba energie mikrokontroléra.Môžeme napísať firmvér, ktorý uspí hardvér, keď nedochádza k výmene údajov, a vykonať definovanú úlohu v konkrétnom intervale. V režime spánku pripojený hardvér čerpá oveľa menej energie, a preto môže batéria vydržať dlho. Môžete si tiež prečítať Minimalizácia spotreby energie v mikrokontroléroch, ak sa chcete dozvedieť viac o technikách spotreby energie.
Moduly ESP8266 sú najbežnejšie používané moduly Wi-Fi a majú veľa funkcií v malých rozmeroch, ktoré majú rôzne režimy vrátane režimu spánku a k týmto režimom je možné pristupovať pomocou určitých úprav v hardvéri a softvéri. Ak sa chcete dozvedieť viac informácií o ESP8266, môžete si skontrolovať naše projekty založené na IoT pomocou modulu Wi-Fi ESP826, niektoré z nich sú uvedené nižšie:
- Prepojenie ESP8266 NodeMCU s mikrokontrolérom Atmega16 na zasielanie e-mailov
- Posielanie údajov snímača teploty a vlhkosti do databázy reálneho času Firebase pomocou NodeMCU ESP8266
- Kontrolka IoT LED pomocou konzoly Google Firebase Console a ESP8266 NodeMCU
Tu vysvetlíme rôzne režimy spánku dostupné v ESP8266 a ukážeme ich odoslaním údajov o teplote na server Thingspeak v pravidelných intervaloch pomocou režimu hlbokého spánku.
Súčasti sú povinné
- Modul Wi-Fi ESP8266
- LM35 teplotný snímač
- Prepojovacie vodiče
Typy režimov spánku v ESP8266
Modul Esp8266 pracuje v nasledujúcich režimoch:
- Aktívny režim: V tomto režime je zapnutý celý čip a čip môže prijímať a prenášať údaje. Je zrejmé, že ide o režim s najvyššou spotrebou energie.
- Režim spánku modemu: V tomto režime je procesor v prevádzke a rádia Wi-Fi sú deaktivované. Tento režim je možné použiť v aplikáciách vyžadujúcich funkčnosť procesora, ako je to v PWM. Vďaka nemu sa obvod Wi-Fi modemu vypne, keď je pripojený k Wi-Fi AP (prístupový bod) bez prenosu dát, aby sa optimalizovala spotreba energie.
- Režim ľahkého spánku: V tomto režime sú procesor a všetky periférie pozastavené. Každé prebudenie, napríklad externé prerušenie, čip prebudí. Bez prenosu dát možno obvod Wi-Fi modemu vypnúť a procesor pozastaviť, aby sa ušetrila spotreba energie.
- Režim hlbokého spánku: V tomto režime je funkčný iba RTC a všetky ostatné komponenty čipu sú vypnuté. Tento režim je užitočný, keď sa údaje prenášajú po dlhých časových intervaloch.
Prepojte snímač teploty LM35 s pinom A0 na NodeMCU.
Keď má modul ESP na kolíku RST hodnotu HIGH, je v prevádzke. Hneď ako prijme signál LOW na kolíku RST, ESP sa reštartuje.
Nastavte časovač pomocou režimu hlbokého spánku, akonáhle časovač skončí, potom kolík D0 pošle signál LOW na kolík RST a modul sa zobudí reštartovaním.
Teraz je hardvér pripravený a dobre nakonfigurovaný. Hodnoty teploty sa budú odosielať na server Thingspeak. Za týmto účelom si vytvorte účet na thingspeak.com a vytvorte si kanál vykonaním nasledujúcich krokov.
Teraz skopírujte kľúč Write API. Ktoré sa použijú v kóde ESP.
Programovanie hlbokého spánku ESP8266
Ľahko dostupné Arduino IDE bude slúžiť na programovanie modulu ESP8266. Uistite sa, že sú nainštalované všetky súbory na doske ESP8266.
Začnite zahrnutím všetkých dôležitých požadovaných knižníc.
#include
Akonáhle sú všetky knižnice prístupné pre prístup k funkciám, potom priraďte kľúč zápisu API, nakonfigurujte svoje meno a heslo Wi-Fi. Potom deklarujte všetky premenné na ďalšie použitie, kde sa majú údaje uložiť.
Reťazec apiWritekey = "*************"; // nahraďte tu kľúčom THINGSPEAK WRITEAPI char ssid = "******"; // vaše wifi SSID meno char heslo = "******"; // wifi heslo
Teraz urobte funkciu na pripojenie modulu k sieti Wi-Fi pomocou funkcie wifi.begin () a potom nepretržite kontrolujte, kým modul nie je pripojený k sieti Wi-Fi pomocou cyklu while.
void connect1 () { WiFi.disconnect (); oneskorenie (10); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {
Vykonajte ďalšiu funkciu na odoslanie údajov na server vecí. Tu sa odošle reťazec, ktorý obsahuje kľúč na zápis API, číslo poľa a údaje, ktoré je potrebné odoslať. Potom pošlite tento reťazec pomocou funkcie client.print ().
void data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& pole1 ="; tsData + = Reťazec (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / aktualizácia HTTP / 1.1 \ n"); client.print ("Hostiteľ: api.thingspeak.com \ n");
Zavolajte funkciu connect1, ktorá zavolá funkciu na pripojenie Wi-Fi, potom zmerajte údaje o teplote a prevádzajte ich na Celzia.
void setup () { Serial.begin (115200); Serial.println ("zariadenie je v režime Wake up"); connect1 (); int hodnota = analogRead (A0); float volts = (hodnota / 1024,0) * 5,0; tempC = volty * 100,0;
Teraz zavolajte funkciu data () a nahrajte údaje do cloudu thingspeak. Nakoniec dôležitá funkcia, ktorú je potrebné zavolať, je ESP.deepSleep (); toto spôsobí, že modul bude spať po definovaný časový interval, ktorý je v mikrosekundách.
údaje (); Serial.println ("hlboký spánok na 15 sekúnd"); ESP.deepSleep (15e6);
Funkcia Loop zostane prázdna, pretože je potrebné vykonať všetky úlohy naraz a potom po stanovenom časovom intervale resetovať modul.
Pracovné video a celý kód sú uvedené na konci tohto tutoriálu. Vložte kód do modulu ESP8266. Pred nahrávaním programu odpojte pripojený vodič RST a D0, inak spôsobí chybu.
Testuje sa DeepSleep na ESP8266
Po nahraní programu uvidíte, že namerané teploty sa nahrávajú do cloudu ThingSpeak po každých 15 sekundách a potom sa modul prepne do režimu hlbokého spánku.
Týmto je ukončený návod na používanie režimu hlbokého spánku v module ESP8266. Hlboký spánok je veľmi dôležitá vlastnosť a bol súčasťou väčšiny zariadení. Môžete si prečítať tento návod a použiť túto metódu na rôzne projekty. V prípade akýchkoľvek pochybností alebo návrhov napíšte a komentujte nižšie. Môžete sa tiež dostať na naše fórum.