- Різні методи мінімізації споживання енергії
- Потрібні компоненти
- Типи режимів сну в ESP8266
- ESP8266 Програмування в глибокому режимі сну
- Тестування DeepSleep у ESP8266
Оскільки революція IoT зростає з кожним днем, кількість підключених пристроїв дуже швидко зростає. У майбутньому більшість пристроїв будуть зв’язані між собою та будуть спілкуватися в режимі реального часу. Однією з проблем, з якою стикаються ці пристрої, є енергоспоживання. Цей коефіцієнт енергоспоживання є одним із найважливіших та вирішальних факторів для будь-якого пристрою IoT та проектів IoT.
Оскільки ми знаємо, що ESP8266 є одним з найпопулярніших модулів для побудови будь-якого проекту IoT, тому в цій статті ми дізнаємося про економію енергії під час використання ESP8266 у будь-якій програмі IoT. Тут ми завантажуємо дані датчика температури LM35 до хмари ThingSpeak з інтервалом в 15 секунд, і протягом цих 15 секунд ESP8266 залишається в режимі глибокого сну для економії енергії
Різні методи мінімізації споживання енергії
Є кілька способів оптимізувати споживання енергії у вбудованих пристроях та пристроях IoT. Оптимізацію можна здійснити на апаратному та програмному забезпеченні. Іноді ми не можемо оптимізувати апаратні компоненти для зменшення споживання енергії, але, безсумнівно, ми можемо зробити це з боку програмного забезпечення, змінивши та оптимізувавши інструкції та функції коду. Мало того, розробники можуть також змінити тактову частоту, щоб зменшити енергоспоживання мікроконтролера.Ми можемо написати прошивку, щоб перевести апарат в режим сну, коли немає обміну даними, і виконати визначене завдання через певний інтервал. У сплячому режимі підключене обладнання споживає значно менше енергії, а отже, акумулятор може довго служити. Ви також можете прочитати "Мінімізація споживання енергії в мікроконтролерах", якщо ви хочете дізнатись більше про методи споживання енергії.
Модулі ESP8266 - це найбільш широко використовувані модулі Wi-Fi, що мають багато функцій невеликого розміру, що мають різні режими, включаючи режим сну, і доступ до цих режимів можна здійснити за допомогою деяких модифікацій в апаратному та програмному забезпеченні. Щоб дізнатись більше про ESP8266, ви можете перевірити наші проекти на основі Інтернету речей, використовуючи модуль Wi-Fi ESP826, деякі з них перелічені нижче:
- Взаємодія ESP8266 NodeMCU з мікроконтролером Atmega16 для надсилання електронного листа
- Надсилання даних датчика температури та вологості до бази даних Firebase у реальному часі за допомогою NodeMCU ESP8266
- Світлодіод, керований IoT, за допомогою Google Firebase Console та ESP8266 NodeMCU
Тут ми пояснимо різні режими сну, доступні в ESP8266, і продемонструємо їх, надсилаючи дані про температуру на сервер Thingspeak через регулярний інтервал, використовуючи режим глибокого сну.
Потрібні компоненти
- Модуль Wi-Fi ESP8266
- Датчик температури LM35
- Провід перемички
Типи режимів сну в ESP8266
Модуль Esp8266 працює в наступних режимах:
- Активний режим: У цьому режимі вся мікросхема ввімкнена, і мікросхема може приймати, передавати дані. Очевидно, що це найбільш енергоємний режим.
- Режим очікування модему: У цьому режимі центральний процесор працює, а радіостанції Wi-Fi відключені. Цей режим можна використовувати в додатках, які вимагають роботи центрального процесора, як у ШІМ. Це робить схему Wi-Fi модему вимкненою під час з’єднання з точкою доступу Wi-Fi (Точка доступу) без передачі даних для оптимізації споживання енергії.
- Режим легкого сну: у цьому режимі центральний процесор та всі периферійні пристрої призупинені. Будь-яке пробудження, таке як зовнішні переривання, пробудить мікросхему. Без передачі даних схему Wi-Fi модему можна вимкнути і призупинити центральний процесор, щоб заощадити енергоспоживання.
- Режим глибокого сну: у цьому режимі функціонує лише RTC, а всі інші компоненти мікросхеми вимкнені. Цей режим корисний, коли дані передаються через тривалі проміжки часу.
Підключіть датчик температури LM35 до виводу A0 на NodeMCU.
Коли модуль ESP має HIGH на штифті RST, він знаходиться в робочому стані. Як тільки він отримує низький сигнал на RST-штифт, ESP перезапускається.
Встановіть таймер, використовуючи режим глибокого сну, після того, як таймер закінчиться, штифт D0 передає сигнал LOW на штифт RST, і модуль прокинеться, перезапустивши його.
Тепер апаратне забезпечення готове та добре налаштоване. Показання температури надсилатимуться на сервер Thingspeak. Для цього створіть обліковий запис на thingspeak.com і створіть канал, виконавши наведені нижче дії.
Тепер скопіюйте ключ API API. Що буде використано в коді ESP.
ESP8266 Програмування в глибокому режимі сну
Легко доступний IDE Arduino буде використовуватися для програмування модуля ESP8266. Переконайтеся, що всі файли плати ESP8266 встановлені.
Почніть із включення всіх важливих необхідних бібліотек.
#включати
Як тільки всі бібліотеки включені для доступу до функцій, тоді призначте ключ запису API, налаштуйте своє ім’я та пароль Wi-Fi. Потім оголосіть усі змінні для подальшого використання там, де будуть зберігатися дані.
Рядок apiWritekey = "*************"; // замінюємо вашим ключем THINGSPEAK WRITEAPI тут char ssid = "******"; // ваше ім'я SSID wifi char пароль = "******"; // пароль wifi
Тепер створіть функцію для підключення модуля до мережі Wi-Fi за допомогою функції wifi.begin (), а потім постійно перевіряйте, поки модуль не буде підключений до Wi-Fi за допомогою циклу while.
void connect1 () { WiFi.disconnect (); затримка (10); WiFi.begin (ssid, пароль); поки (WiFi.status ()! = WL_CONNECTED) {
Зробіть іншу функцію для надсилання даних на сервер thingspeak. Тут буде надіслано рядок, який містить ключ запису API, номер поля та дані, які потрібно надіслати. Потім надішліть цей рядок за допомогою функції client.print ().
void data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& field1 ="; tsData + = Рядок (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / оновлення HTTP / 1.1 \ n"); client.print ("Ведучий: api.thingspeak.com \ n");
Викличте функцію connect1, яка викличе функцію для підключення Wi-Fi, потім зробить показання температури і перетворить її в Цельсій.
void setup () { Serial.begin (115200); Serial.println ("пристрій у режимі пробудження"); connect1 (); значення int = analogRead (A0); плаваючі вольти = (значення / 1024,0) * 5,0; tempC = вольт * 100,0;
Тепер зателефонуйте функції data (), щоб завантажити дані в хмару thingspeak. Нарешті, важливою функцією для виклику є ESP.deepSleep (); це зробить модуль сплячим протягом певного інтервалу часу, який становить мікросекунди.
дані (); Serial.println ("глибокий сон протягом 15 секунд"); ESP.deepSleep (15e6);
Функція циклу залишатиметься порожньою, оскільки всі завдання потрібно виконати один раз, а потім скинути модуль через визначений проміжок часу.
Робоче відео та повний код наведено в кінці цього посібника. Завантажте код у модуль ESP8266. Видаліть підключений RST і D0 провід перед завантаженням програми, інакше це призведе до помилки.
Тестування DeepSleep у ESP8266
Після завантаження програми ви побачите, що показники температури завантажуються в хмару ThingSpeak через кожні 15 секунд, а потім модуль переходить у режим глибокого сну.
На цьому підручник із використання глибокого сну в модулі ESP8266 завершено. Глибокий сон є дуже важливою функцією, і він був включений у більшість пристроїв. Ви можете звернутися до цього посібника та застосувати цей метод для різних проектів. У разі будь-яких сумнівів чи пропозицій, будь ласка, пишіть і коментуйте нижче. Також ви можете зайти на наш форум.