- Különböző módszerek az energiafogyasztás minimalizálására
- Szükséges alkatrészek
- Az alvási módok típusai az ESP8266-ban
- ESP8266 mély alvó üzemmód programozás
- A DeepSleep tesztelése az ESP8266-ban
Mivel az IoT forradalma minden egyes nap virágzik, a csatlakoztatott eszközök száma nagyon gyorsan növekszik. A jövőben a legtöbb eszköz összekapcsolódik és valós időben kommunikál. Az egyik probléma, amellyel ezek az eszközök szembesülnek, az energiafogyasztás. Ez az energiafogyasztási tényező az egyik kritikus és döntő tényező minden IoT eszköz és IoT projekt esetében.
Mint tudjuk, hogy az ESP8266 az egyik legnépszerűbb modul bármely IoT-projekt felépítéséhez, ezért ebben a cikkben megismerhetjük az energia-megtakarítást, miközben az ESP8266-ot bármely IoT-alkalmazásban használjuk. Itt az LM35 hőmérséklet-érzékelő adatait 15 másodperces intervallumban töltjük fel a ThingSpeak felhőbe, és ez alatt a 15 másodperc alatt az ESP8266 DeepSleep módban marad, hogy energiát takarítson meg
Különböző módszerek az energiafogyasztás minimalizálására
A beágyazott és az IoT-eszközök energiafogyasztásának optimalizálására többféle módon van lehetőség. Az optimalizálás elvégezhető hardveren és szoftveren. Néha nem tudjuk optimalizálni a hardverösszetevőket az energiafogyasztás csökkentése érdekében, de bizonyára a szoftver oldalán is megtehetjük a kód utasításainak és funkcióinak megváltoztatásával és optimalizálásával. A fejlesztők nem csak ezt módosíthatják az óra frekvenciáján a mikrokontroller energiafogyasztásának csökkentése érdekében.Írhatunk egy firmware-t, hogy a hardver alvó állapotba kerüljön, amikor nincs adatcsere, és elvégezhetjük a megadott feladatot egy adott időközönként. Alvó üzemmódban a csatlakoztatott hardver nagyon kevesebb energiát fogyaszt, így az akkumulátor sokáig élhet. Elolvashatja az Energiafogyasztás minimalizálása a mikrokontrollerekben című cikket is, ha többet szeretne tudni az energiafogyasztási technikákról.
Az ESP8266 modulok a legelterjedtebben használt Wi-Fi modulok számos, kisméretű funkcióval rendelkeznek, amelyek különböző üzemmódokkal rendelkeznek, beleértve az alvó üzemmódot is, és ezekhez a módokhoz a hardver és a szoftver némi módosításával hozzáférhetők. Ha többet szeretne megtudni az ESP8266-ról, ellenőrizheti IoT-alapú projektjeinket az ESP826 Wi-Fi modul használatával, amelyek közül néhányat az alábbiakban sorolunk fel:
- Az ESP8266 NodeMCU és az Atmega16 mikrovezérlő összekapcsolása e-mail küldéséhez
- Hőmérséklet és páratartalom érzékelő adatainak elküldése a Firebase Real-Time adatbázisba a NodeMCU ESP8266 segítségével
- IoT által vezérelt LED a Google Firebase Console és az ESP8266 NodeMCU használatával
Itt elmagyarázzuk az ESP8266-ban elérhető különféle alvási módokat, és bemutatjuk azokat azáltal, hogy hőmérsékleti adatokat küldünk a Thingspeak szerverre rendszeres időközönként a mély alvás mód használatával.
Szükséges alkatrészek
- ESP8266 Wi-Fi modul
- LM35 hőmérséklet-érzékelő
- Jumper huzalok
Az alvási módok típusai az ESP8266-ban
Az Esp8266 modul a következő módokban működik:
- Aktív mód: Ebben a módban az egész chip be van kapcsolva, és a chip képes fogadni, továbbítani az adatokat. Nyilvánvaló, hogy ez a leginkább energiafogyasztó mód.
- Modem-alvó üzemmód: Ebben az üzemmódban a CPU működőképes és a Wi-Fi rádiók le vannak tiltva. Ez a mód használható azokban az alkalmazásokban, amelyekhez a CPU működése szükséges, mint a PWM-ben. Az energiafogyasztás optimalizálása érdekében kikapcsolja a Wi-Fi modem áramkört, miközben adatátvitel nélkül csatlakozik a Wi-Fi AP-hez (Access Point).
- Könnyű alvó üzemmód: Ebben a módban a CPU és az összes periféria szünetel. Bármilyen ébresztés, például külső megszakítás, felébreszti a chipet. Adatátvitel nélkül a Wi-Fi modem áramköre kikapcsolható és a CPU felfüggeszthető az energiafogyasztás megtakarítása érdekében.
- Mély alvás üzemmód: Ebben az üzemmódban csak az RTC működik, és a chip összes többi alkatrésze ki van kapcsolva. Ez a mód akkor hasznos, ha az adatokat hosszú időintervallumok után továbbítják.
Csatlakoztassa az LM35 hőmérséklet-érzékelőt a NodeMCU A0 tűjéhez.
Ha az ESP modul HIGH van az RST csapon, akkor futó állapotban van. Amint LOW jelet kap az RST csapon, az ESP újraindul.
Állítsa be az időzítőt mély alvás üzemmódban, amint az időzítő lejár, a D0 tű elküldi a LOW jelet az RST tűre, és a modul újraindítással felébred.
A hardver készen áll és jól konfigurálható. A hőmérséklet-értékeket elküldjük a Thingspeak szerverre. Ehhez hozzon létre egy fiókot a thingspeak.com oldalon, és az alábbi lépések végrehajtásával hozzon létre egy csatornát.
Most másolja az Write API kulcsot. Amit az ESP kódban fogunk használni.
ESP8266 mély alvó üzemmód programozás
A könnyen elérhető Arduino IDE az ESP8266 modul programozására szolgál. Győződjön meg arról, hogy az ESP8266 összes fájlja telepítve van.
Kezdje azzal, hogy tartalmazza az összes szükséges könyvtárat.
#include
Miután az összes könyvtár tartalmazza a funkciók elérését, rendelje hozzá az API írási kulcsát, konfigurálja a Wi-Fi nevét és jelszavát. Ezután deklarálja az összes változót a további felhasználás céljából, ahol az adatokat tárolni kell.
Karakterlánc apiWritekey = "*************"; // cserélje le a THINGSPEAK WRITEAPI kulcsára itt char ssid = "******"; // a wifi SSID név char jelszó = "******"; // wifi jelszó
Most hozzon létre egy funkciót a modul csatlakoztatásához a Wi-Fi hálózathoz a wifi.begin () funkció használatával, majd ellenőrizze folyamatosan, amíg a modul nem csatlakozik a Wi-Fi-hez a while hurok használatával.
void connect1 () { WiFi.disconnect (); késés (10); WiFi.begin (ssid, jelszó); while (WiFi.status ()! = WL_CONNECTED) {
Hozzon létre egy másik funkciót az adatok elküldéséhez a dolgok csúcsszerverére. Itt egy karaktersorozat kerül elküldésre, amely tartalmazza az API írási kulcsát, a mező számát és az elküldendő adatokat. Ezután küldje el ezt a karakterláncot a client.print () függvény használatával.
void data () { if (kliens.csatlakozás (szerver, 80)) { String tsData = apiWritekey; tsData + = "& mező1 ="; tsData + = karakterlánc (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / frissítés HTTP / 1.1 \ n"); client.print ("Gazdagép: api.thingspeak.com \ n");
Hívja meg a connect1 függvényt, amely felhívja a funkciót a Wi-Fi csatlakoztatásához, majd vegye le a hőmérséklet leolvasott értékeit és alakítsa át Celsiusra.
void setup () { Soros.kezdés (115200); Serial.println ("az eszköz Ébresztési módban van"); connect1 (); int érték = analógRead (A0); úszóvolt = (érték / 1024,0) * 5,0; tempC = volt * 100,0;
Most hívja meg az data () függvényt, hogy feltöltse az adatokat a thingspeak felhőre. Végül az a fontos funkció, amelyet meghívunk, az ESP.deepSleep (); ezáltal a modul alszik a meghatározott ideig, amely mikroszekundumban van.
adat(); Serial.println ("mély alvás 15 másodpercig"); ESP.deepSleep (15e6);
A hurok funkció üres marad, mivel az összes feladatot egyszer végre kell hajtani, majd a megadott időintervallum után vissza kell állítani a modult.
A munka videó és a teljes kód az oktatóanyag végén található. Töltse fel a kódot az ESP8266 modulba. Távolítsa el az RST és D0 csatlakoztatott vezetéket a program feltöltése előtt, különben hibát okoz.
A DeepSleep tesztelése az ESP8266-ban
A program feltöltése után látni fogja, hogy a ThingSpeak felhőre 15 másodpercenként feltöltődnek a hőmérsékleti adatok, majd a modul mély alvás módba kapcsol.
Ezzel elkészült a mély alvás használatának oktatása az ESP8266 modulban. Az elalvás nagyon fontos jellemző, és a legtöbb eszközben megtalálható. Hivatkozhat erre az oktatóanyagra és alkalmazhatja ezt a módszert különböző projektekhez. Bármilyen kétség vagy javaslat esetén kérjük, írjon és kommenteljen alább. Fórumunkhoz is eljuthat.