- Dažādas metodes enerģijas patēriņa samazināšanai
- Nepieciešamās sastāvdaļas
- Miega režīmu veidi ESP8266
- ESP8266 dziļā miega režīma programmēšana
- DeepSleep testēšana ESP8266
Tā kā IoT revolūcija ar katru dienu uzplaukst, pievienoto ierīču skaits ļoti strauji pieaug. Nākotnē lielākā daļa ierīču būs savstarpēji savienotas un sazināsies reāllaikā. Viena no problēmām, ar kuru saskaras šī ierīce, ir enerģijas patēriņš. Šis enerģijas patēriņa koeficients ir viens no kritiskajiem un izšķirošajiem faktoriem jebkurai IoT ierīcei un IoT projektiem.
Tā kā mēs zinām, ka ESP8266 ir viens no populārākajiem moduļiem jebkura IoT projekta veidošanai, tāpēc šajā rakstā mēs uzzinām par enerģijas taupīšanu, lietojot ESP8266 jebkurā IoT lietojumprogrammā. Šeit mēs augšupielādējam LM35 temperatūras sensora datus ThingSpeak mākonī 15 sekunžu intervālā, un šo 15 sekunžu laikā ESP8266 paliek DeepSleep režīmā, lai taupītu enerģiju
Dažādas metodes enerģijas patēriņa samazināšanai
Ir vairāki veidi, kā optimizēt enerģijas patēriņu iegultās un IoT ierīcēs. Optimizāciju var veikt aparatūrā un programmatūrā. Dažreiz mēs nevaram optimizēt aparatūras komponentus, lai samazinātu enerģijas patēriņu, bet, protams, mēs to varam izdarīt programmatūras pusē, mainot un optimizējot kodu instrukcijas un funkcijas. Izstrādātāji var arī modificēt pulksteņa frekvenci, lai samazinātu mikrokontrolleru enerģijas patēriņu.Mēs varam uzrakstīt programmaparatūru, lai aparatūra būtu miega stāvoklī, kad nav datu apmaiņas, un izpildīt noteikto uzdevumu noteiktā intervālā. Miega režīmā pievienotā aparatūra patērē daudz mazāk enerģijas, tāpēc akumulators var kalpot ilgi. Varat arī izlasīt Enerģijas patēriņa samazināšana mikrokontrolleros, ja vēlaties uzzināt vairāk par enerģijas patēriņa paņēmieniem.
ESP8266 moduļi ir visplašāk izmantotie Wi-Fi moduļi ir aprīkoti ar daudzām funkcijām mazos izmēros ar dažādiem režīmiem, ieskaitot miega režīmu, un šiem režīmiem var piekļūt, izmantojot dažas modifikācijas aparatūrā un programmatūrā. Lai uzzinātu vairāk par ESP8266, varat pārbaudīt mūsu IoT balstītos projektus, izmantojot ESP826 Wi-Fi moduli, daži no tiem ir uzskaitīti zemāk:
- Saskarne ESP8266 NodeMCU ar Atmega16 mikrokontrolleru, lai nosūtītu e-pastu
- Temperatūras un mitruma sensora datu sūtīšana uz Firebase reāllaika datu bāzi, izmantojot NodeMCU ESP8266
- IoT kontrolēts LED, izmantojot Google Firebase Console un ESP8266 NodeMCU
Šeit mēs izskaidrosim dažādus miega režīmus, kas pieejami ESP8266, un tos parādīsim, regulāri nosūtot temperatūras datus uz Thingspeak serveri, izmantojot dziļā miega režīmu.
Nepieciešamās sastāvdaļas
- ESP8266 Wi-Fi modulis
- LM35 temperatūras sensors
- Džemperu vadi
Miega režīmu veidi ESP8266
Esp8266 modulis darbojas šādos režīmos:
- Aktīvais režīms: Šajā režīmā visa mikroshēma ir ieslēgta, un mikroshēma var saņemt, pārsūtīt datus. Acīmredzot tas ir visvairāk enerģijas patērējošais režīms.
- Modema miega režīms: Šajā režīmā centrālais procesors darbojas, un Wi-Fi radio ir atspējoti. Šo režīmu var izmantot lietojumprogrammās, kurās ir nepieciešams, lai darbotos centrālais procesors, tāpat kā PWM. Tas ļauj Wi-Fi modema ķēdei izslēgties, savienojot to ar Wi-Fi AP (piekļuves punktu) bez datu pārraides, lai optimizētu enerģijas patēriņu.
- Gaismas miega režīms: šajā režīmā centrālais procesors un visas perifērijas ierīces ir apturētas. Jebkura modināšana, piemēram, ārējie pārtraukumi, pamodinās mikroshēmu. Bez datu pārraides Wi-Fi modema ķēdi var izslēgt un centrālā procesora darbību apturēt, lai ietaupītu enerģijas patēriņu.
- Dziļā miega režīms: Šajā režīmā darbojas tikai RTC, un visas pārējās mikroshēmas sastāvdaļas ir izslēgtas. Šis režīms ir noderīgs, ja dati tiek pārsūtīti pēc ilgiem laika intervāliem.
Savienojiet LM35 temperatūras sensoru ar NodeMCU A0 tapu.
Kad ESP moduļa RST tapā ir HIGH, tas ir darba stāvoklī. Tiklīdz tas saņem LOW signālu uz RST tapas, ESP tiek restartēts.
Iestatiet taimeri, izmantojot dziļā miega režīmu, kad taimeris beidzas, tad D0 tapa nosūta LOW signālu uz RST tapu, un modulis pamodīsies, restartējot to.
Tagad aparatūra ir gatava un labi konfigurēta. Temperatūras rādījumi tiks nosūtīti uz Thingspeak serveri. Lai to izdarītu, izveidojiet kontu lietāspeak.com un izveidojiet kanālu, veicot tālāk norādītās darbības.
Tagad nokopējiet Write API atslēgu. Kas tiks izmantots ESP kodā.
ESP8266 dziļā miega režīma programmēšana
Viegli pieejamais Arduino IDE tiks izmantots ESP8266 moduļa programmēšanai. Pārliecinieties, vai ir instalēti visi ESP8266 dēļu faili.
Sāciet ar visu nepieciešamo bibliotēku iekļaušanu.
# iekļaut
Kad visas bibliotēkas ir iekļautas piekļuvei funkcijām, piešķiriet API rakstīšanas atslēgu, konfigurējiet savu Wi-Fi nosaukumu un paroli. Pēc tam deklarējiet visus mainīgos turpmākai izmantošanai, kur dati jāuzglabā.
Virkne apiWritekey = "*************"; // aizstājiet ar savu THINGSPEAK WRITEAPI atslēgu šeit char ssid = "******"; // jūsu wifi SSID nosaukums char password = "******"; // wifi parole
Tagad izveidojiet funkciju moduļa savienošanai ar Wi-Fi tīklu, izmantojot wifi.begin () funkciju, un pēc tam nepārtraukti pārbaudiet, līdz modulis nav savienots ar Wi-Fi, izmantojot while loop.
void connect1 () { WiFi.disconnect (); kavēšanās (10); WiFi.begin (ssid, parole); while (WiFi.status ()! = WL_CONNECTED) {
Izveidojiet vēl vienu funkciju, lai datus nosūtītu uz lietojumprogrammas serveri. Šeit tiks nosūtīta virkne, kas satur API rakstīšanas atslēgu, lauka numuru un nosūtāmos datus. Pēc tam nosūtiet šo virkni, izmantojot funkciju client.print ().
void data () { if (klient.connect (serveris, 80)) { String tsData = apiWritekey; tsData + = "& lauks1 ="; tsData + = virkne (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / atjaunināt HTTP / 1.1 \ n"); client.print ("resursdators: api.thingspeak.com \ n");
Zvaniet uz connect1 funkciju, kas izsauks funkciju, lai izveidotu savienojumu ar Wi-Fi, pēc tam ņemiet temperatūras rādījumus un pārvērsiet tos par Celsija.
void setup () { Serial.begin (115200); Serial.println ("ierīce ir modināšanas režīmā"); savienot1 (); int vērtība = analogRead (A0); pludiņa volti = (vērtība / 1024,0) * 5,0; tempC = volti * 100,0;
Tagad izsauciet funkciju data (), lai augšupielādētu datus lietuspika mākonī. Visbeidzot, svarīgā izsaukšanas funkcija ir ESP.deepSleep (); tas moduli liks gulēt noteiktu laika intervālu, kas ir mikrosekundēs.
dati (); Serial.println ("dziļš miegs 15 sekundes"); ESP.deepSleep (15e6);
Loop funkcija paliks tukša, jo viss uzdevums ir jāveic vienu reizi, un pēc tam atiestatiet moduli pēc noteiktā laika intervāla.
Darba video un pilns kods ir norādīts šīs apmācības beigās. Augšupielādējiet kodu ESP8266 modulī. Pirms programmas augšupielādes noņemiet pievienoto vadu RST un D0, pretējā gadījumā tas radīs kļūdu.
DeepSleep testēšana ESP8266
Pēc programmas augšupielādes jūs redzēsiet, ka temperatūras rādījumi tiek augšupielādēti ThingSpeak mākonī ik pēc 15 sekundēm un pēc tam modulis pāriet dziļā miega režīmā.
Tas pabeidz apmācību par dziļa miega izmantošanu ESP8266 modulī. Dziļais miegs ir ļoti svarīga funkcija, un tā ir iekļauta lielākajā daļā ierīču. Jūs varat atsaukties uz šo apmācību un pielietot šo metodi dažādiem projektiem. Ja rodas šaubas vai ieteikumi, lūdzu, rakstiet un komentējiet tālāk. Jūs varat arī nokļūt mūsu forumā.