Esp8266 потребление тока: Оценка потребляемого тока на ACS712 и ESP8266

Содержание

Обзор модуля ESP-01 на чипе ESP8266 – RobotChip

Китайская компания Espressif в 2014 году, начала продавать Wi-Fi модули, на чипах ESP8266. который сразу завоевал большую популярность у радиолюбителей из-за своей дешевизны и большими возможностями. На сегодняшний день существует большое количество различных модулей основанных на чипе ESP8266, в этой статье расскажу о  ESP-01.

Обзор модуля ESP-01 на чипе ESP8266

Технические параметры 

► Напряжение питания: 3 В ~ 3.6 В
► Максимальный рабочий ток: 220 мА
► Поддержка беспроводного стандарта: 802.11 b / g / n
► Рабочая частота: 2.4 ГГц
► Режимы: P2P (клиент), soft-AP (точка доступа)
► Количество GPIO: 2.
► Flash память: 1024 кб.
► Выходная мощность в режиме 802.11b: +19.5dBm
► Поддержка беспроводного стандарта: 802.11 b / g / n
► Габариты: 24.8мм х 14.3мм х 8мм

Общие сведения о ESP-01

По сути, чип ESP8266 представляет собой миниатюрный микроконтроллер с Wi-Fi передатчиком, который может функционировать в условиях полной автономии, без дополнительной платы Arduino. С помощью модуля ESP-01 можно передавать данные о температуре, влажности, включать реле и так далее. Для удобства использования чипа ESP8266, производитель изготовил серию модулей от ESP-01 по ESP-14. Первый в этой серии, это модуль ESP-01 (существует еще ESP-01S, о нем чуть позже), являющийся одним из известным, из-за свой цены и небольшими размерами, всего 14,3 мм на 24,8 мм. Но в нем, есть два недостатка, это ограниченное количество программированных выводов GPIO и их неудобное расположение (неудобно макетировать).

Обзор модуля ESP-01 на чипе ESP8266

Модуль ESP-01 представляет собой небольшую плату, черного цвета, на которой расположены два основных чипа, это микроконтроллером ESP8266 и flash память на 1 Мб. Рядом расположен кварцитовый резонатор и напечатанная антенна. На плате установлены два светодиода, красный и голубой. Красный светодиод, светится когда на модуле есть питание, а синий мигает при выполнении команд (в NSP-01S удален красный светодиод, из-за постоянного потребления электроэнергии). Для подключения модуля ESP-01, предусмотрено восемь выводов (два ряда по четыре вывода, шагом 2.54 мм), два из готовых являются цифровым входами-выходом, поддерживающие широтно импульсную модуляцию. Хотя модуль имеет по ум

подключение, распиновка, прошивка в IDE [Амперка / Вики]

Модуль ESP-01 с чипом ESP8266 предназначен для связи устройства с беспроводными сетями по WiFi.

Видеообзор

Общие сведения

ESP-01 — плата-модуль WiFi на базе популярного чипсета ESP8266EX. На борту платы находится микросхема Flash-памяти объёмом 2 МБ, чип ESP8266EX, кварцевый резонатор, два индикаторных светодиода и миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Flash-память необходима для хранения программного обеспечения. При каждом включении питания, ПО автоматически загружается в чип ESP8266EX.

По умолчанию модуль настроен на работу через «AT-команды». Управляющая плата посылает команды — Wi-Fi модуль выполняет соответствующую операцию.

Но внутри чипа ESP8266 прячется целый микроконтроллер, который является самодостаточным устройством. Прошивать модуль можно на разных языках программирования. Но обо всё по порядку.

Работа с AT командами

Подключение и настройка

В стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART.

На всех платах Iskra и Arduino присутствует хотя бы один аппаратный UART — HardwareSerial. Если же по каким то причинам он занят другим устройством, можно воспользоваться программным UART — SoftwareSerial.

HardwareSerial

На управляющей плате Iskra JS и Arduino платах с микроконтроллером ATmega32U4 / ATSAMD21G18, данные по USB и общение через пины

0 и 1 осуществляется через два раздельных UART. Это даёт возможность подключить Wi-Fi модуль к аппаратному UART на пинах 0 и 1.

Список поддерживаемых плат:

Для примера подключим модуль Wi-Fi к платформе Iskra Neo.

Прошейте управляющую платформу кодом ниже.

Код прошивки
HardwareSerialAT115200.ino
// serial-порт к которому подключён Wi-Fi модуль
#define WIFI_SERIAL    Serial1
 
void setup()
{
  // открываем последовательный порт для мониторинга действий в программе
  // и передаём скорость 9600 бод
  Serial.begin(9600);
  while (!Serial) {
  // ждём, пока не откроется монитор последовательного порта
  // для того, чтобы отследить все события в программе
  }
  Serial.print("Serial init OK\r\n");
  // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод
  WIFI_SERIAL.begin(115200);
}
 
void loop()
{
  // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера
  if (WIFI_SERIAL.available()) {
    Serial.write(WIFI_SERIAL.read());
  }
  // если приходят данные из компьютера - отправим их в Wi-Fi модуль
  if (Serial.available()) {
    WIFI_SERIAL.write(Serial.read());
  }
}
SoftwareSerial

Некоторые платы Arduino, например Arduinio Uno, прошиваются через пины 0 и 1. Это означает невозможность использовать одновременно прошивку/отладку по USB и общение с Wi-Fi модулем. Решение проблемы — программный UART. Подключите пины TX и RX ESP-модуля к другим контактам управляющей платы и используйте библиотеку SoftwareSerial.

Для примера подключим управляющие пины Wi-Fi модуля TX и RX — на 8 и 9 контакты управляющей платы. Прошейте управляющую платформу кодом ниже.

Код прошивки
SoftwareSerialAT115200.ino
// библиотека для работы программного Serial
#include <SoftwareSerial.h>
 
// создаём объект для работы с программным Serial
// и передаём ему пины TX и RX
SoftwareSerial mySerial(8, 9);
 
// serial-порт к которому подключён Wi-Fi модуль
#define WIFI_SERIAL    mySerial
 
void setup()
{
  // открываем последовательный порт для мониторинга действий в программе
  // и передаём скорость 9600 бод
  Serial.begin(9600);
  while (!Serial) {
  // ждём, пока не откроется монитор последовательного порта
  // для того, чтобы отследить все события в программе
  }
  Serial.print("Serial init OK\r\n");
  // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод
  WIFI_SERIAL.begin(115200);
}
 
void loop()
{
  // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера
  if (WIFI_SERIAL.available()) {
    Serial.write(WIFI_SERIAL.read());
  }
  // если приходят данные из компьютера - отправим их в Wi-Fi модуль
  if (Serial.available()) {
    WIFI_SERIAL.write(Serial.read());
  }
}
HardwareSerial Mega

На платах форм-фактора Arduino Mega 2560 аппаратный UART, который отвечает за передачу данных через пины 1 и 0, отвечает также за передачу по USB. Это означает невозможность использовать одновременно UART для коммуникации с Wi-Fi модулем и отладки по USB.

Но на платах такого форм-фактора есть ещё дополнительно три аппаратных UART:

  • Serial1: пины 19(RX1) и 18(TX1);

  • Serial2: пины 17(RX2) и 16(TX2);

  • Serial3: пины 15(RX3) и 14(TX3).

Список поддерживаемых плат:

Подключите Wi-Fi модуль к объекту Serial1 на пины 18 и 19 на примере платы Arduino Mega 2560 Прошейте управляющую платформу кодом ниже.

Код прошивки
HardwareSerialAT115200.ino
// serial-порт к которому подключён Wi-Fi модуль
#define WIFI_SERIAL    Serial1
 
void setup()
{
  // открываем последовательный порт для мониторинга действий в программе
  // и передаём скорость 9600 бод
  Serial.begin(9600);
  while (!Serial) {
  // ждём, пока не откроется монитор последовательного порта
  // для того, чтобы отследить все события в программе
  }
  Serial.print("Serial init OK\r\n");
  // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод
  WIFI_SERIAL.begin(115200);
}
 
void loop()
{
  // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера
  if (WIFI_SERIAL.available()) {
    Serial.write(WIFI_SERIAL.read());
  }
  // если приходят данные из компьютера - отправим их в Wi-Fi модуль
  if (Serial.available()) {
    WIFI_SERIAL.write(Serial.read());
  }
}

Примеры работы

Рассмотрим несколько примеров по работе с «AT-командами»

Тестовая команда «AT»

Откройте монитор порта. Настройте скорость соединения — 9600 бод. Конец строки —

NL & CR. Введите команду AT и нажмите «Отправить». Это — базовая команда для проверки работы Wi-Fi модуля. В ответ получим «OK»: Если ответа нет или появляются непонятные символы — проверьте правильность подключения и настройки скорости обмена данными.

Настройка режима работы

Wi-Fi модуль умеет работать в трёх режимах:

  • Режим точки доступа

  • Режим клиента

  • Смешанный режим

Переведём чип в смешанный режим командой:

AT+CWMODE_DEF=3

После установки модуль должен ответить «OK»:

В отличии от аппаратного UART (HardwareSerial), за работу программного UART (SoftwareSerial) отвечает микроконтроллер, который назначает другие пины в режим работы RX и TX, соответственно и данные которые приходят от Wi-Fi модуля обрабатывает сам микроконтроллер во время программы. По умолчанию скорость общения Troyka Wi-Fi равна

115200, что значительно выше чем позволяет библиотека SoftwareSerial. В итоге часть информации которая приходит с Wi-Fi модуля будет утеряна. Если вы используете плату с HardwareSerial подключением модуля можете пропустить пункт настройки скорости и сразу перейти к дальнейшей работе с модулем.

AT установка скорости общения

Для корректной работы с большими объемами необходимо понизить скорость соединения модуля и микроконтроллера. Для этого используйте «AT-команду»:

AT+UART_DEF=9600,8,1,0,0

После проделанной операции, измените скорость программного UART в скетче программы и прошейте плату.

SoftwareSerialAT9600.ino
// библиотека для работы программного Serial
#include <SoftwareSerial.h>
 
// создаём объект для работы с программным Serial
// и передаём ему пины TX и RX
SoftwareSerial mySerial(8, 9);
 
// serial-порт к которому подключён Wi-Fi модуль
#define WIFI_SERIAL    mySerial
 
void setup()
{
  // открываем последовательный порт для мониторинга действий в программе
  // и передаём скорость 9600 бод
  Serial.begin(9600);
  while (!Serial) {
  // ждём, пока не откроется монитор последовательного порта
  // для того, чтобы отследить все события в программе
  }
  Serial.print("Serial init OK\r\n");
  // открываем Serial-соединение с Wi-Fi модулем на скорости 9600 бод
  WIFI_SERIAL.begin(9600);
}
 
void loop()
{
  // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера
  if (WIFI_SERIAL.available()) {
    Serial.write(WIFI_SERIAL.read());
  }
  // если приходят данные из компьютера - отправим их в Wi-Fi модуль
  if (Serial.available()) {
    WIFI_SERIAL.write(Serial.read());
  }
}

По итогу программный UART успеет обработать каждый пришедший байт с Wi-Fi модуля.

AT сканирование WI-FI сетей

Откройте Serial-порт и отправьте на модуль «AT-команду» для сканирования всех доступных Wi-Fi сетей:

AT+CWLAP

При наличии доступных WI-FI сетей в ответ получим сообщение:

AT+CWLAP

+CWLAP:(0,"AI-THINKER_03842B",-65,"62:01:94:03:84:2b",1,1,-40)
+CWLAP:(3,"PiRExternal",-90,"f0:29:29:26:b8:31",1,-12,0)
+CWLAP:(3,"PiRGroup",-84,"44:ad:d9:87:c8:f0",1,-4,0)
+CWLAP:(4,"corp.Catherine.ru",-82,"f8:1a:67:4c:bf:59",2,10,0)
+CWLAP:(3,"PiRGroup",-87,"f0:29:29:26:b8:30",1,-11,0)
+CWLAP:(3,"Amperka",-44,"6c:3b:6b:ff:0f:4d",6,8,0)
+CWLAP:(3,"SEC_LinkShare_ddd43e",-79,"d0:66:7b:08:93:dd",6,23,0)
+CWLAP:(3,"DIT_AMPP",-82,"1c:b9:c4:25:13:68",1,32767,0)
+CWLAP:(3,"MZPK",-89,"24:a2:e1:eb:5d:08",11,-16,0)
+CWLAP:(0,"Arduino-Yun-B4218AF05F28",-62,"b4:21:8a:f0:5f:28",11,25,0)
+CWLAP:(3,"PiRExternal",-85,"44:ad:d9:87:c8:f1",1,-4,0)

OK

Wi-Fi модуль как самостоятельный контроллер

Настройка железа

Ввиду отсутствия у платформы ESP-01 собственного USB-порта, понижающего преобразователя и отсутствия толерантности к 5 вольтам, подключите её к компьютеру, используя один из перечисленных способов:

Схема через Arduino Uno

Для сборки программатора понадобится:

  1. Соберите схему, представленную ниже.
  2. Переведите модуль в режим программирования:

    Необходимо каждый раз выполнять перед прошивкой модуля.

    1. Отключите питание от модуля;

    2. Подключите пин 0 к GND — фиолетовый провод к земле;

    3. Подключите модуль к питанию;

    4. Притяните пин 0 к 3.3V — фиолетовый провод через резистор к питанию.
  3. Железо готово, приступайте к программной части.

Схема через USB-Serial адаптер

Для сборки программатора понадобится:

  1. Соберите схему, представленную ниже.
  2. Переведите модуль в режим программирования:

    Необходимо каждый раз выполнять перед прошивкой модуля.

    1. Отключите питание от модуля;

    2. Подключите пин 0 к GND — фиолетовый провод к земле;

    3. Подключите модуль к питанию;

    4. Притяните пин 0 к 3.3V — фиолетовый провод через резистор к питанию.
  3. Железо готово, приступайте к программной части.

Программирование на C++

  1. Для начала работы с платформой ESP на языке C++ скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.
  2. В в пункте меню выбирайте Generic ESP8266 Module.

После выполненных действий модуль ESP-01 готов к программированию через Arduino IDE.

Подробности о функциях и методах работы ESP-01 (ESP8266) на языке C++ читайте на ESP8266 Arduino Core’s.

Программирование на JavaScript

После выполненных действий модуль ESP-01 готов к программированию через Espruino Web IDE.

Подробнее о функциях и методах работы ESP8266 на языке JavaScript читайте на Espruino.

Восстановление стандартной АТ-прошивки

После программирования платформы в режиме самостоятельного контроллера может понадобиться восстановить на модуле стандартную AT-прошивку. Для этого необходимо воспользоваться утилитой Flash Download Tool.

Элементы платы

Чип ESP8266EX

Чип ESP8266 — выполнен по технологии SoC (англ. System-on-a-Chip — система на кристалле). В основе кристалла входит процессор семейства Xtensa — 32-х битный Tensilica L106 с частой 80 МГц с ультранизким энергопотреблением, радиочастотный трансивер с физическим уровнем WiFi IEEE 802.11 b/g/ и блоки памяти SRAM. Мощности процессорного ядра хватает для работы сложных пользовательских приложений и цифровой сигнальной обработки.

Программное приложение пользователя должно храниться на внешней микросхеме Flash-памяти и загружаться в ESP8266EX через один из доступных интерфейсов (SPI, UART, SDIO и др.) каждый раз в момент включения питания системы.

Чип ESP8266 не содержит в себе Flash-память и многих других компонентов для пользовательского старта. Микросхема является основой на базе которой выпускаются модули с необходимой периферией, например ESP-01.

Светодиодная индикация

Имя светодиода Назначение
LEDИндикаторный светодиод подключённый к цифровому пину 1
POWERИндикатор питание на модуле

Распиновка

Пины питания

  • 3.3V: Вывод питания модуля. Потребляемый ток не менее 250 мА.

  • GND: Выводы земли.

Пины ввода/вывода

В отличии от большинства плат Arduino, родным напряжением платформы ESP-01 является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Большее напряжение может повредить модуль!

Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.

  • Цифровые входы/выходы: 4 пина; 03
    Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 12 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.

  • ШИМ: 4 пинов; 03
    Позволяет выводить аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ – 10 бит.

  • UART: пины 3(RX) и 3(TX)
    Используется для коммуникации модуля Wi-Fi с компьютером или другими устройствами по интерфейсу UART.

Характеристики

  • Модуль: ESP-01 с чипом ESP8266EX

  • Выходной интерфейс: UART

  • Объём Flash-памяти: 2 МБ

  • Беспроводной интерфейс: Wi-Fi 802.11 b/g/n 2,4 ГГц

  • Режимы работы:

  • Напряжение питания: 3,3 В

  • Потребляемый ток: до 250 мА

  • Габариты: 25×15 мм

В режиме контроллера

Линейные стабилизаторы для модуля ESP8266 (промахнулся с корпусом)

Есть такие замечательные модули ESP8266 ESP-07. Обзор на них я уже делал. И WiFi там есть и контроллер не самый слабый. Можно как Ардуину программировать из его же среды. И цена в районе $2. Одна беда, шаг между выводами 2мм. На макетку не посадишь, стандартную гребенку 2.54 не припаяешь. Продаются к ним дешевые платки адаптеры под стандартный шаг 2.54мм.

Есть на этих платках место под стабилизатор напряжения на 3.3В в корпусе SOT-89.


Нашел подходящий стабилизатор KB6206 и его китайский аналог XC6206P332. Но вот с заказом слегка «пролетел». Долго искал, где подешевле купить штук 10-20 для пробы. И нашеk на EBAY по сказочной цене меньше $1 за 20 шт. Заказал. И вот что из этого вышло.

При заказе, так как в поиске вбивал SOT-89, не обратил внимания на корпус. Ну бывает такое ))). Пришел обычный маленький конвертик. А там такие мааааленькие детальки.

Еле выколупал пальцем одну

Корпус то SOT23 оказывается! Загадка с ценой сразу решилась.


Ну что ж, корпус хоть и не тот, характеристики то у стабилизатора такие же. Значит будем тестировать.
Ругаясь разными словами припаиваю к стабилизатору три проводка

На вход даю 5В, на выход мультиметр. В разрыв вторичной цепи старую добрую Ц-шку.
Включаю без нагрузки — на выходе 3.2В. Маловато будет.

Зато под нагрузкой выходное напряжение стабильно держится чуть меньше 3.4В. Нагрузкой у меня мощный переменный резистор советского производства ПЭВР-25. 100мА полет нормальный

120мА тоже все хорошо

Ставлю 200мА — напряжение просаживается до 2.9В

Ну в общем то все нормально. По даташиту максимальный ток 150мА
Ставлю чуть больше 150 — напряжение на выходе стабильное

Поработал он у меня минут 15 в таком режиме — палец особого нагрева не чувствует. Термопара показала около 40С

Пробую припаять стабилизатор к плате ESP-шки. У паяльной станции моей накрылся нагревательный элемент. Жду посылку. Паяю китайским паяльником. Тяжко.

Включаю ESP8266 -все нормально работает без сбоев и перезагрузок.
Решил померить ток потребления в разных режимах. (Правда в цепи 5В, но для линейного стабилизатора это без разницы)

Режим записи прошивки — 59мА
Режим точки доступа — 73мА
Подключение к моей точке доступа — 80мА
Передача информации по WiFi — 71мА
Поддержка коннекта WiFi — 20мА

Судя по даташиту, максимальное потребление у модуля 170мА при работе в режиме 802.11b. Реально я больше 80 не увидел. Для моих задач стабилизаторы вполне годятся.

Выводы:
+ Стабилизаторы соответствуют своему описание и годятся для использование в платах для ESP8266 07/08/12
+ Цена очень привлекательная
— Паять SOT23 вручную очень неудобно, поэтому брать нужно данные стабилизаторы в корпусе SOT89

Кота со стабилизаторами фотографировать не вижу смысла, да и занят он )))


AN-1203. Создание Wi-Fi-устройств с ультранизким потреблением для IoT

В большинстве случаев устройства, предназначенные для Интернета вещей (IoT), должны обладать ультранизким потреблением из-за ограниченной емкости источника питания. При этом одни IoT-устройства работают от батареек, которые необходимо периодически заменять, а другие используют харвестеры энергии, мощность которых также ограничена и зависит от внешних условий (свет, ветер, тепло и т. д.). Таким образом, в обоих случаях важно обеспечить ультранизкий уровень собственного потребления.

Для достижения сверхнизкого энергопотребления необходимо, чтобы устройство большую часть времени находилось в спящем режиме. При этом оно должно лишь периодически просыпаться для обработки данных, выполнения необходимых действий, получения или передачи информации по беспроводному каналу, а затем снова засыпать. Если длительность нахождения в состоянии сна оказывается значительной (например, несколько часов), то общее потребление в режиме ожидания может превышать суммарное потребление в активном режиме.

В данной статье рассказывается об использовании микросхем Silego GreenPAK ™ для построения систем пробуждения IoT-устройств с Wi-Fi модулем. Микросхемы GreenPAK помогают минимизировать потребление в спящем режиме. Для этого GreenPAK берет на себя некоторые функции микроконтроллера (МК), пока тот находится в режиме ожидания. В самом простом случае от микроконтроллера к GreenPAK поступает сигнал активации режима сна, а от GreenPAK к микроконтроллеру – сигнал пробуждения (или сигнал отключения питания, в зависимости от типа МК). Для подключения к сети Wi-Fi был выбран недорогой Wi-Fi-приемопередатчик ESP8266. Схема его подключения показана на рисунке 1.

Рис. 1. Схема IoT-устройства с Wi-Fi-приемопередатчиком ESP8266

Управление питанием ESP8266

Модуль ESP8266 от компании Espressif Systems – недорогой Wi-Fi-приемопередатчик с встроенной поддержкой стека TCP/ IP. Этот компактный модуль позволяет микроконтроллерам подключаться к сети Wi-Fi и создавать простые соединения TCP/ IP с использованием AT-команд. Компания Espressif также выпустила пакет для разработки ПО (SDK), который позволяет программировать модуль приемопередатчика, устраняя необходимость в отдельном микроконтроллере. Модули ESP8266 зарекомендовали себя в качестве надежной, недорогой сетевой платформы для создания IoT-приложений. Гибкость и цена приемопередатчика ESP8266 сделали его чрезвычайно популярным.

Приемопередатчик ESP8266 был разработан специально для мобильных устройств, носимой электроники и IoT-приложений. Благодаря использованию нескольких патентованных технологий, он отличается низким потреблением. ESP8266 имеет три режима работы: активный режим (active mode), спящий режим (sleep mode) и режим глубокого сна (deep sleep mode), их использование позволяет увеличить длительность работы от батареи. В таблице 1 показаны различия между спящими режимами и режимом ожидания (Power Down).

Таблица 1. Режимы пониженного потребления ESP8266

Блок

Режим пониженного потребления

Modem Sleep

Light Sleep

Deep Sleep

Power Down

Wi-Fi

выкл

выкл

выкл

выкл

Тактирование

вкл

выкл

выкл

выкл

RTC

вкл

вкл

вкл

выкл

Процессорное ядро

вкл

Pending

выкл

выкл

Ток

15-16 мА

0.5-2 мА

20-80 мкА

1 мкА

В режиме глубокого сна Deep Sleep модуль ESP8266 отключает Wi-Fi и проводной интерфейс и оставляет в активном состоянии только часы реального времени RTC для периодических пробуждений. В этом случае потребление снижается до 20-80 мкА, в зависимости от параметров конфигурации. В режиме ожидания Power Down выключается даже модуль RTC. Это означает, что сигнал пробуждения должен быть внешним, при этом потребление тока уменьшается до 1 мкА.

Реализация схемы пробуждения

Использование режима ожидания Power Down с выключенным RTC совместно с внешней микропотребляющей схемой пробуждения помогает значительно снизить потребление системы в спящем состоянии. Если внешняя схема пробуждения строится на базе микросхемы GreenPAK, то RTC можно отключать на время сна, уменьшая ток потребления с 50 мкА до 5 мкА (от 2 мкА до 10 мкА, в зависимости от типа микрос

ESP8266 / ESP8266 / stD

Описание, подключение, настройка и работа.

Что такое ESP8266

ESP8266 — это высокоинтегрированный, микроконтроллер с интерфейсами WiFi, SPI, UART и GPIO, производства китайской компании Espressif.

Схема чипа

Характеристики

поддержка WiFi протоколов 802.11 b/g/n
Wi-Fi Direct (P2P), soft-AP
встроенный стек TCP/IP
встроенный TR переключатель, balun, LNA, усилитель мощности и соответствие сети
встроенный PLL, регуляторы, и система управления питанием
выходная мощность +20.5 дБм в режиме 802.11b
ток утечки в выключенном состоянии до 10 мкА
SDIO 2.0, SPI, UART
STBC, 1×1 MIMO, 2×1 MIMO
пробуждение и отправка пакетов за время до 22 мс
потребление в режиме Standby до 1.0 мВт (DTIM3)


Распиновка чипа


В данное время на этом чипе реализовано несколько модификаций плат (ESP01 — ESP12) различающихся только формой, количеством выведенных GPIO и вариантами антенн.

ESP01 — 12ESP-01 — самый распространённый, выведены два GPIO, дальность действия — до 400м на открытом пространстве.

ESP-02 — тоже самое, только с возможностью подключения внешней антенны.

ESP-03 — керамическая антенна, выведены все GPIO.

ESP-04 — без внешней антенны, выведены все GPIO.

ESP-05 — выведены только VCC, GND, TX, RX, RST и внешняя антенна.

ESP-06 — контакты расположены снизу, сверху металлический экран.

ESP-07 — керамическая антенна + разъем для внешней антенны, металлический экран.

ESP-08 — тоже самое, но без антенн.

ESP-09 — крохотный модуль — 10х10мм, контакты расположены снизу.

ESP-10 — тоже маленький модуль, выведены только два GPIO.

ESP-11 — с керамической антенной.

ESP-12 — с flash-памятью 512 кбайт.



Схема модуля

Что может модуль ESP

Описание будет вестись на основе популярной модели ESP-01.
Всё написанное ниже, за исключением номеров GPIO, применительно к любой модификаций.

С базовой прошивкой модуль ESP используется в виде моста UART <-> WIFI.

Например:

ESP подключается к ардуине (UART <-> UART) и взаимодействует с ней при помощи AT-команд, а по каналу WIFI соединяется с любым wifi-устройством (планшет, роутер) при этом может работать в разных режимах — клиента, точки доступа, одновременно оба режима.

ESP подключается к ПК через конвертер usb-uart. Можно с ПК посылать АТ-команды модулю, а модуль в свою очередь будет пересылать их какому-то wifi-устройству.

С альтернативными прошивками, ESP может работать автономно. То есть использовать свои пины для управления чем-либо, например светом в комнате, а управляется по каналу WIFI, выступая в роли сервера.

(О прошивках ниже.)


Подключение

В первую очередь надо обеспечить надёжное питание. Внимание! ESP работает от напряжения 3,3v.

Модуль потребляет довольно-таки большой ток (до 300мА), и если подключить модуль к пину 3,3v на ардуине, то он будет постоянно перегружаться (красный и синий диоды будут моргать).
Чтобы всё хорошо работало потребуется DC-DC преобразователь (5v > 3,3v), что-то типа этого:

Схема подключения:

Подключите питание — загорится красный диод.
Подключите пин CH_PD на 3,3v — мигнёт синий диод. Это пин включения/отключения модуля (chip power-down).

В списке сетей wifi на Вашем телефоне/планшете, появится новое устройство с именем «AI-THINKER…».
Можно подключится к нему, но толку от этого пока никакого не будет.

Кратковременное замыкание пина RST на GND перезагрузит модуль.

Свободные GPIO (0, 2) подключать не надо.

Если у Вас модуль не ESP-01, то надо подключить GPIO15 к GND.

Примечание. В дальнейшем, для повышения стабильности работы, нужно пин CH_PD подключать к 3,3v через резистор 10 кОм., RESET, GPIO (0, 2) тоже подтянуть к 3,3v резисторами 10 кОм., по питанию поставить электролит на 100-220 мкФ и керамику 0.1 мкФ.

И таки да, модуль сильно греется, так что можно какой-нибудь теплоотвод организовать.

Теперь надо подключить ESP-модуль к компьютеру посредством UARTа (RX, TX), выяснить скорость порта (может различаться для разных прошивок) и пообщаться с модулем АТ-командами.

Для этого подойдёт любой преобразователь USB-UART, можно воспользоваться например вот таким:

Нужно соединить RX и TX модуля с TX и RX преобразователя.

Уровни напряжения на пинах TX <-> RX можно не согласовывать, как показывает практика, всё отлично работает и так.
Если это покажется неубедительным, то можно организовать простой резистивный делитель:

Если под рукой нет преобразователя (USB-UART), то его можно сделать из любой ардуины. Для этого надо соединить на ардуине RST и GND, а сигнальные линии соединить вот так:


TX <-> TX
RX <-> RX
GND <-> GND


Терминал

Далее нам потребуется программа-терминал, можно использовать бесплатную программу CoolTerm. (Lin & Win)

CoolTermСкачать, установить и запустить:

Нажать Options

Выбрать порт и скорость.

Нажать слева Terminal

Terminal Mode: Line Mode. Нажать ОК.

Нажать

Модуль ESP-01(esp8266) или WiFi для начинающих.

Рано или поздно все мы приходить к тому что нам не хватает подключения к Сети в наших проектах на платформе Ардуино. Действительно как же в 21 веке без статуса Онлайн )) И тут нам на выручку приходит  WiFI чип ESP8266 и готовые  модули на его основе. У меня в руках самый простой модуль (для новичков) ESP-01 :

Модуль устроен достаточно просто и имеет минимальный набор выводов :

  • ESP8266EX — сердце всего модуля.
  • P25Q80H (или другой чип) — Flash Memory на 1 Мбайт.
  • Кварц и обвязка со свето диодиками.
ESP8266EX

Китайский производитель Espressif сделал дешовый чип  с интерфейсом Wi-Fi и возможностью исполнять программы из внешней флеш-памяти с интерфейсом SPI. По сути это микроконтроллер и радио модуль для Wi-Fi в одном корпусе :

  • 80 MHz 32-bit процессор Tensilica.
  • IEEE 802.11 b/g/n Wi-Fi. Поддерживается WEP и WPA/WPA2.
  • 14 портов ввода-вывода(из них возможно использовать 11), SPI, I²C, I²S, UART, 10-bit АЦП. В нашем случае мы можем использовать только ограниченные выводы чипа.
  • Питание 2,2…3,6 В. Логика и питание чипа 3.3 В, будьте внимательны !  
  • Интегрированный стек TCP/IP. HTML

Выводы, подключение :

Возможности чипа очень большие, будем разбираться по степенно.

Выводы модуля :

  • VCC — плюс питания 3.3 В
  • GND — минус питания 3.3 В
  • TX — аппаратный UART.
  • RX — аппаратный UART.
  • RST — кратковременно подав на неё низкий логический уровень, модуль перезагрузиться. Лучше прижать ее через резистор 10 кОм к плюсу питания.
  • CH_PD(или по-другому EN) — служит для перевода модуля в энергосберегающий режим, в котором он потребляет очень маленький ток. Ну и снова — не будет лишним «прижать» эту ногу резистором на 10 кОм к плюсу питания.

По умолчанию во флешь-память ужа записана заводская прошивка с поддержкой АТ команд для управления чипом. Конечно можно залить и другие прошивки, но в этой статье мы будем работать именно в таком режиме с модулем. Суть проста по UART передаем команду, получаем ответ от модуля. Для этого нам потребуется  USB-to-Serial TTL конвертор что бы подключить модуль к компу. Так как у меня под рукой его нету то я буду использовать Arduino Nano в его качестве. 

Питание модуля отдельный вопрос. Пиковое потребление чипа может достигать 250 мА ( в datasheet указано 170 мА при использование Tx802.11b). Внимание! Этот модуль основан на 3.3 В логике, так что придется его питать от своего источника питания. Или через резисторный делитель(1 кОм и 2 кОм) с вывода +5 Ардуино. Выводы RX и TX надо тоже подключить через делитель  или через logic converter (например CD4050B).

Что бы Ардуино превратить в USB-to-Serial TTL конвертор зальем в контролер пустой скетч :

void setup() { }
void loop() { }

Далее Arduino нужно замкнуть RESET на GND.  Это изолирует процессор от I/O пинов. Альтернатива этому удаление микросхемы из «кроватки».  При этом выводы TX, RX устройства нужно подключить без перекрещивания. т.е. :

esp TX → ard TX
esp RX → ard RX

Подключаем все , открываем монитор портов в Arduino IDE и поехали.

Для простоты вы можете купить USB адаптер у наших Китайских партнеров.

AT-Команды.

Для на чало мы проверим  что все работает и  отправим в терминале:

AT

OK

Проверим  прошивку :

AT+GMR

AT version:1.2.0.0(Jul 1 2016 20:04:45)
SDK version:1.5.4.1(39cb9a32)
Ai-Thinker Technology Co. Ltd.
Dec 2 2016 14:21:16
OK

Для подключения Wi-Fi выберем режим модуля: доступны следующие режимы: 1 — STA, 2 — AP, 3 — Station+AP

AT+CWMODE=1

OK

Смотрим список точек доступа командой:

AT+CWLAP 
+CWLAP:(3,"MTSRouter-047188",-77,"00:1f:ce:ac:e4:de",2,-21,0)
+CWLAP:(3,"RT-WiFi_2958",-93,"78:96:82:44:29:58",4,10,0)
+CWLAP:(3,"Test",-63,"ac:f1:df:c9:a5:82",6,0,0)
+CWLAP:(3,"TP-LINK_4E54E0",-85,"f8:1a:67:4e:54:e0",6,103,0)
+CWLAP:(3,"GARNIER",-89,"60:a4:4c:df:83:38",6,-31,0)
+CWLAP:(2,"Oslik",-73,"bc:f6:85:cb:d7:53",7,-9,0)
+CWLAP:(3,"Keenetic-6619",-80,"e8:37:7a:9a:93:46",8,8,0)
+CWLAP:(2,"beeline-router_78",-90,"fc:75:16:4a:39:42",9,-26,0)
+CWLAP:(3,"ASUS",-91,"f4:6d:04:df:d3:e8",11,-14,0)
+CWLAP:(4,"Beeline_2G_F14986",-83,"78:94:b4:a3:8c:cc",11,-14,0)

OK

В скобках указывается: SECURITY, SSID, RSSI, BSSID, CHANNEL
SECURITY может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)

Подключаемся к нашей точке:

AT+CWJAP="Oslik","password"
WIFI CONNECTED
WIFI GOT IP

OK

Посмотреть какой ip получил наш модуль:

AT+CIFSR
+CIFSR:STAIP,"192.168.0.55"
+CIFSR:STAMAC,"b4:e6:2d:22:f6:61"

OK

Все настройки запоминаются во флешь память, сбросить настройки на заводские можно командой:

AT+RESTORE

Задать скорость UART :

AT+CIOBAUD=9600

OK

Перезагрузить модуль :

AT+RST

OK
?)⸮⸮⸮@H

<⸮⸮⸮⸮@H⸮⸮!`̌⸮
⸮K⸮ZHRh|$ ⸮⸮ؤ⸮
Ai-Thinker Technology Co. Ltd.

ready

Команды делятся условно на три части : системные, Wi-Fi,TCP. Полный список команд можно посмотреть в datasheep. Ну а мы перейдем к командам режима TCP-сервера. На плате ESP-01 можно запустить TCP-сервер для приема-отправки данных или она может выступать TCP-клиентом для приема-отправки данных на сервер.
Для запуска TCP-сервера выполним следующие команды:

AT+CIPMODE=0

OK

0 — not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента).
1 — data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента).

Устанавливаем возможность множественных соединений:

AT+CIPMUX=1

OK

0 — single connection.
1 — multiple connection.

Запускаем сервер на порту 80:

AT+CIPSERVER=1,80 (mode,port)

OK

0 — to close server
1 — to open server

Теперь можно подключиться к ESP-01 и отправить-принять какие-нибудь данные. На потребуется telnet клиент, я использую PuTTY. При подключение модуль нам сообщает что подключился клиент и показывает нам id клиента.

0,CONNECT

+IPD,0,21:⸮⸮⸮⸮ ⸮⸮⸮⸮'⸮⸮⸮⸮⸮⸮

Посмотреть список активных подключений к ESP-01 можно командой AT+CIPSTATUS
Пример:

AT+CIPSTATUS

+CIPSTATUS:0,"TCP","192.168.0.19",57907,80,1
OK

Закрыть активное соединение мо

Мониторинг энергопотребления • ThingPulse

В этом посте я покажу вам, как вы можете контролировать энергопотребление вашего устройства с батарейным питанием (ESP8266 / ESP32). Измерение энергопотребления в течение полного цикла активности / сна — предварительное условие для оптимизации вашего кода для увеличения времени работы от батареи. Только с помощью надежного инструмента вы можете решить, какие изменения кода приведут к меньшему потреблению. В более поздней публикации мы рассмотрим некоторые настройки, которые можно применить к коду, чтобы сэкономить еще несколько дней.

Как давний профессиональный разработчик Java, я привык писать приложения, которые работают на серверах с большим количеством ресурсов: ОЗУ, дисковое пространство и потребление энергии редко являются ограничивающим фактором для программного обеспечения, которое мы пишем. Совсем другое дело — разработка ПО для встраиваемых устройств: память как для флеш-памяти, так и для кучи очень ограничена. И если вы хотите, чтобы ваше устройство работало от батареи, каждая секунда пребывания в сети засчитывается в общий счет за электроэнергию вашей батареи. В наших больших серверных приложениях мы обычно говорим, что сначала нужно написать надежный и читаемый код.

Если ваше приложение недостаточно быстрое или потребляет слишком много памяти, вы начинаете настраивать «горячие точки» своего кода, пока не получите желаемые результаты. Конечно, очень сложно превратить неудачное решение в вашей архитектуре в быстро работающее приложение. Я бы сказал, что эти правила справедливы и для встраиваемых устройств: сначала напишите надежный и читаемый код, затем приступайте к настройке. И избегайте дорогостоящих тупиков, которые впоследствии будет трудно исправить.

На мой взгляд, вы не сможете настроить систему, если у вас нет надежных измерений до и после изменения любого фактора.Так как же собрать эту информацию на встроенном устройстве? Это, конечно, зависит от того, какой аспект вы хотите улучшить: память, время работы от батареи, скорость соединения и т. Д. В этом посте я заинтересован в продлении срока службы батареи ESPaper.

Измерение энергопотребления устройства, которое потребляет несколько мкА в спящем режиме и несколько сотен мА в бодрствующем состоянии, представляет собой особую задачу: вашему обычному мультиметру может быть сложно измерить эти два диапазона. И мы хотим измерить суммарное потребление за один цикл сна / бодрствования, а не только ток, потребляемый устройством в данный момент.Вы можете выполнить такое измерение с помощью дорогих инструментов, таких как осциллографы. Но если абсолютное потребление не так важно и вас скорее интересует, окажут ли ваши изменения положительное или отрицательное влияние, тогда следующая установка будет для вас правильным инструментом.

Аппаратное обеспечение монитора мощности

Для контроля энергопотребления ESPaper я решил использовать в основном компоненты из нашего классического стартового набора: 1x NodeMCU V1.0, 1x 0,96 ″ OLED-дисплей и несколько перемычек типа «мама-мама».Кроме того, вам понадобится коммутационная плата INA219, которую вы можете купить на Banggood. Когда у вас есть все необходимые компоненты, начните подключать все, как показано на схеме ниже. Убедитесь, что вы подключили LiPo и Vin + к разъему LiPo ESPaper.

Как вы можете видеть, коммутационная плата INA219 вставлена ​​между LiPo батареей и ESPaper для измерения тока, протекающего от батареи к модулю. Затем ESP8266 считывает измеренное падение напряжения на 100 0.Нагрузка 1 Ом и рассчитывает по ней ток. Хотя эта установка хорошо работает для большего тока (50-250 мА), разрешение 0,1 мА дает небольшой шум, когда модуль ESPaper спит. Оказалось, что время, когда модуль бодрствует, потребляет гораздо больше энергии, чем когда он спит, мы можем жить с этой проблемой. Затем NodeMCU отображает измеренные значения на 0,96-дюймовом OLED-дисплее, который очень удобен для быстрого считывания значений.

Программное обеспечение Power Monitor

Сначала немного теории.Весь смысл монитора мощности состоит в том, чтобы увидеть, как изменения в коде ESPaper влияют на время, в течение которого устройство может работать от одной зарядки. В комплект ESPaper Plus Kit входит LiPo аккумулятор емкостью 600 мАч, 3,7 В. Таким образом, если бы наше устройство постоянно потребляло 20 мА, оно прослужило бы 30 часов (600 мАч / 20 мА = 30 часов). Теперь наш девайс не потребляет постоянно 20 мА. Когда он бодрствует, он потребляет около 70-250 мА, а когда он спит, менее 100 мкА. Это немного усложняет расчет.

Мы получили бы несколько более подходящие результаты, если бы измерили, как долго устройство находится в активном состоянии и сколько тока оно потребляет в течение этого времени, и сделаем то же самое, пока оно спит.Но с монитором мощности мы можем добиться еще большего! Мы можем производить выборку тока каждые несколько мс и умножать это значение на время, прошедшее с момента последней выборки. Затем суммируем все эти значения и получаем общую потребленную энергию. Давайте посмотрим на следующую диаграмму:

Красная линия представляет собой идеальную кривую тока мощности, потребляемой устройством. Красные прямоугольники — это область выборки под кривой. Как видите, время выборки определяет, насколько точно рассчитывается эта область: чем короче время выборки, тем точнее рассчитанное потребление.Конечно, в реальности красная линия не была бы такой гладкой. ESP8266 обычно потребляет пиковый ток около 250 мА после пробуждения, а затем более или менее постоянно потребляет около 70 мА, прежде чем снова перейдет в спящий режим.

Если мы хотим знать, как долго наш код длится от одного заряда батареи, мы должны посмотреть на один цикл активности и сна и затем предположить, что все последующие циклы будут вести себя одинаково. Вначале мой код требовал полного цикла (~ 20 минут 10 секунд), чтобы показывать надежные измерения.Тогда я понял, что уже после одной фазы бодрствования мы можем делать хороший прогноз: сама фаза сна очень утомительна: устройство спит 20 минут и потребляет постоянное количество в несколько микроампер.

По сравнению с огромным количеством, которое устройство потребляет во время фазы бодрствования, фаза сна имеет значение почти только в ее продолжительности. Чем короче фаза сна, тем больше бодрствует устройство, и в течение долгого времени это действительно разряжает вашу батарею. Один из параметров кода — это ожидаемое время сна.Если вы измените это в ESPaper, вам также придется изменить его в мониторе мощности. Этот небольшой трюк позволяет нам достоверно предположить, как долго устройство может работать от аккумулятора заданной емкости уже через несколько секунд.

Поскольку мы знаем, как долго устройство будет в спящем режиме, мы можем экстраполировать энергопотребление на общую фазу сна. Чтобы отслеживать фазу бодрствования и фазу сна отдельно, я использовал конечный автомат:

Когда устройство мониторинга просыпается, оно находится в состоянии NA; мы не можем делать никаких прогнозов относительно потребления.Когда ESPaper впервые просыпается, мы переключаемся в состояние ПРОБУЖДЕНИЕ. Мы можем обнаружить это, определив пороговый ток (например, 1 мА). Если измеренный ток превышает этот порог, контролируемое устройство находится в активном состоянии. В любом другом случае устройство находится в спящем режиме. Затем мы суммируем полностью потребленную энергию в состоянии бодрствования. После того, как контролируемое устройство возвращается в спящий режим, мы суммируем потребляемый ток, когда устройство находится в спящем режиме. Затем мы экстраполируем, сколько энергии будет потреблено в течение следующих 20 минут, пока устройство не проснется в следующий раз.Это означает, что нам нужно подождать всего 20-30 секунд, чтобы получить стабильную оценку того, как долго устройство будет работать!

Чтобы запустить программу мониторинга на ESP8266, пожалуйста:

Сводка и прогноз

В этом посте мы рассмотрели, как можно использовать обычный ESP8266, OLED-дисплей и коммутационную плату INA219 для мониторинга долгосрочного энергопотребления встроенного устройства. Разделив рабочий цикл отслеживаемого устройства на «интересную» фазу бодрствования и довольно утомительное состояние сна, мы можем получить хорошую оценку того, как долго устройство будет работать от одной батареи, измерив только короткое время.

В статье «5 советов по продлению времени автономной работы вашего ESPaper» мы рассмотрим, как можно изменить код, чтобы зарядить аккумулятор еще на несколько дней. Поскольку нам нужно максимально сократить время бодрствования, мы попытаемся подключиться к Wi-Fi быстрее, немного обманув. Если вы не хотите пропустить этот пост, подпишитесь на нас в Twitter @ThingPulse или подписавшись на нашу рассылку новостей.

.

ESP8266 Новый взгляд на низкое энергопотребление — возимся с технологиями

За последний год я стандартизировал ESP8266 для всех своих небольших проектов IoT. Его низкая цена, простота использования (теперь, когда доступна Arduino IDE), крошечный размер и встроенный Wi-Fi делают его привлекательным вариантом.

Использование Wi-Fi — это удобный способ связать вновь созданное устройство IoT с существующей ИТ-инфраструктурой, включая облачные сервисы, но у него также есть недостаток. Потребность Wi-Fi в электроэнергии обычно делает работу от батареи непрактичной для любого реального развертывания.Мне удалось обойти эту проблему для большинства моих проектов (например, поезд и интеллектуальная полка, описанные в этом блоге), потому что они предназначены только для демонстрационных целей, требуя, чтобы батарея прослужила не более нескольких часов.

Тем не менее, можно перевести ESP8266 в глубокий сон и периодически просыпаться для проверки и активации Wi-Fi только при необходимости. Это подойдет для сценария, в котором датчик IoT отправляет относительно нечасто односторонний трафик (то есть когда управление устройством в реальном времени не требуется).Я писал о опции глубокого сна ESP8266 более года назад, но не исследовал ее до недавнего времени, когда возник именно такой проект.

Еще одна вещь, которую я сделал за последний год, — это стандартизация использования NodeMCU (оборудования, а не программного обеспечения LUA). Особенно при развертывании нескольких небольших проектов очень удобно иметь возможность подключить устройство к USB-порту и просто запрограммировать его (автоматически, без необходимости подключать последовательные контакты, а затем получить правильные контакты, привязанные к высокому / низкому уровню для прошивки / запуска. ).Вам не нужно беспокоиться о подаче питания 3,3 В, добавлении конденсаторов для предотвращения скачков мощности ESP8266, вызывающих нестабильность, или добавлении резистора + крышки для сброса при включении. Нет необходимости уменьшать вход АЦП до 1 В или добавлять собственный тестовый светодиод… и все это в удобной для макетной платы упаковке.

Кроме того, для ясности для тех, кто, возможно, захочет продолжить, я всегда использую NodeMCU «второго поколения», известную как v2. Здесь описаны различные версии, и я согласен с этим постером — i.е. не покупайте вариант v3, потому что его больший размер означает, что он не оставляет свободных отверстий для макета с обеих сторон.

К сожалению, все это дополнительное удобство сопровождается недостатком дополнительного энергопотребления, которое сохраняется даже тогда, когда ESP8266 находится в глубоком спящем режиме.

Я измерил 18 мА на плате NodeMCU, когда ESP8266 находился в режиме глубокого сна — на несколько порядков больше потребляемой энергии, чем я ожидал.

Итак, в моем проекте iot-контейнера я стремился сохранить удобство использования NodeMCU, но устранить его недостатки в энергопотреблении, чтобы обеспечить работу от батареи.

Прочтите дальше, чтобы узнать, что я сделал.

Двумя непосредственными подозреваемыми являются регулятор мощности и UART, о чем говорилось здесь на форуме.

Первый шаг — настроить регулятор мощности. LDO AMS1117 потребляет ток покоя «обычно» 5 мА. Чтобы предотвратить это, может быть достаточно поднять только штифт 1. Однако я решил удалить весь чип, чтобы освободить место на будущее.

Вам не понадобится LDO, если вы подаете собственное питание непосредственно на вывод 3.3V NodeMCU.Я часто использую одноэлементный литий-ионный аккумулятор с капельным диодом 1N4001. Обратите внимание, что с этого момента вам необходимо будет подавать это питание, даже если для программирования / мониторинга подключен USB-кабель.

Нанесите небольшое количество флюса и припоя на штыри, начиная с большой бирки, и она должна легко подняться. Затем удалите оставшиеся 3 штифта. Без LDO я измерил экономию в 3 мА.

Теперь о самой большой экономии — отключить USB UART. Это можно сделать со ссылкой на схему NodeMCU, отключив питание контактов 6 и 7.

На практике это означает вырезание дорожки ножом X-Acto под наилучшим увеличением, которое вы можете найти, и твердыми руками. Также соскребите защитное покрытие с правой стороны разреза:

Поздравляем! Теперь вы снизите энергопотребление примерно в 360 раз до примерно 50 мкА 20 мкА [Обновлено 28 января 2017 года, когда я питал только NodeMCU, без дополнительных схем].

Ранее я упоминал об использовании OTA для программирования вашего устройства.Если вы уже установили код OTA перед обрезкой дорожки, теоретически вы можете закончить на этом этапе и навсегда отказаться от использования порта USB. В реальной жизни все идет не так, и полезно иметь возможность вернуться к последовательному порту.

Вариант 1: Добавить переключатель или перемычку

Первый (и более простой) вариант — установить переключатель в положение, ранее занимаемое регулятором, и прикрепить его к двум точкам, показанным ниже:

После этого вы можете повторно включить порт USB для программирования или отладки через последовательный монитор.

Примечание для неосторожных: в первый раз, когда я попробовал это, я приклеил переключатель эпоксидной смолой. Проблема в том, что, если вы не будете более осторожны, чем я, капля эпоксидной смолы внезапно станет ОГРОМНОЙ при таком увеличении. Клей просочился в коммутатор, не давая ему работать, и NodeMCU оказался в корзине. Во второй раз с большим успехом применил суперклей.

[Обновление от 4 сентября 2016 г.]: Я заменил переключатель на более простое и надежное решение: перемычку.

Вариант 2: питание UART от USB (переключение не требуется)

[Обновление от 28 января 2017 г.]: Спасибо Виллему Янсену за предложение этого подхода в комментариях ниже.Оказывается, что cp2102 UART имеет свой собственный внутренний регулятор от 5 до 3,3 В, который по умолчанию не используется схемой NodeMCU, вероятно, потому что он не будет надежно обеспечивать пиковые токи, требуемые ESP8266 (плюс любые связанные схемы, которые пользователь может добавить вокруг NodeMCU).

Как объяснено в разделе 10 таблицы данных cp2102, cp2102 может быть «сконфигурирован как устройство с питанием от шины USB или устройство с автономным питанием от USB». Чтобы перенастроить микросхему для использования питания от USB, необходимо изолировать вывод VDD (разрыв на X1) в дополнение к разрыву X2, описанному ранее, с последующим постоянным подключением вывода Regin к USB 5V (Wire3).

Справа вы видите, как это выглядит. Дополнительный разрыв печатной платы действительно усложняет задачу даже при 10-кратном увеличении.

После завершения UART будет потреблять питание только тогда, когда USB подключен для программирования / отладки. Безусловно, это более элегантное решение и удобство использования — это компенсируется дополнительными затратами времени и усилий, необходимых для создания мода. В зависимости от того, как часто вы планируете обновлять прошивку или отладку, определите, какой подход будет оптимальным — решать вам!

Я должен предупредить вас, что после того, как я реализовал вариант 2, я обнаружил, что периодически ESP8266 не загружается после подачи питания .Спасибо Марио Валентино — в комментариях ниже — который обнаружил, что отключенный UART может опустить контакт ESP8266 TX на низкий уровень, вызывая периодические проблемы с загрузкой (как указано в разделе «Желаемый уровень при включении» на: http://microchip.ua/ esp8266 / ESP8266_Module% 20Application% 20Design% 20Guide.pdf). Что мне кажется странным, так это то, что теоретически это должно быть так и для варианта 1, но я этого не испытал.

Решение состоит в том, чтобы поместить резистор между TX и 3,3 В, как показано справа.К сожалению, это немного тратит силы. Выбор 1 МОм сводит это к минимуму до дополнительных 3 мкА, в результате чего общее потребление тока в режиме глубокого сна NodeMCU составляет 22–23 мкА.

Какой вариант выбрать? Я предпочитаю вариант 1. Вы экономите 5% энергии по сравнению с вариантом 2, и сделать мод проще. Если вы используете OTA для обновления прошивки (или редко обновляете прошивку), вам не очень часто, если вообще нужно будет заменять перемычку для повторного включения последовательного порта. Конечно, вариант 1 не такой «элегантный»…

Чтобы иметь возможность измерять малые токи, я использовал превосходный μCurrent Gold.

Вы можете правильно указать, что 50 мкА все еще в несколько раз выше, чем то, что должно быть достигнуто с помощью одного только ESP8266. Но для того, что я делаю, этого достаточно: (теоретически, по крайней мере, вы могли бы получить около 10 000 часов от небольшого литий-ионного элемента емкостью 500 мАч, конечно, в зависимости от того, что вы делаете во время пробуждения, и желательно лишь изредка с использованием Wi-Fi. -Fi.

[Обновление от 28 января 2017 г.]: при тестировании варианта 2, описанного выше, я включал только NodeMCU (т.е. без дополнительной схемы HX711, используемой ранее).Я измерил ток глубокого сна на уровне 20 мкА!

В моем следующем посте я применю это на практике с полным кодом.

Измерение потребления тока 45 мкА с использованием uCurrent Gold установлено на 1 мВ / 1 мкА

Блокировщик спама

Нравится:

Нравится Загрузка …

Связанные

.

Взгляд на спящие режимы ESP32 и их энергопотребление

Нет никаких сомнений в том, что ESP32 является достойным конкурентом многим WiFi / MCU SoC, часто превосходя их как по производительности, так и по цене. Но, в зависимости от того, в каком состоянии он находится, ESP32 может быть относительно энергоемким устройством .

Когда ваш проект Интернета вещей питается от розетки, вы, как правило, не слишком заботитесь об энергопотреблении. Но если вы собираетесь питать свой проект от батареек, на счету каждый мА.

Решением здесь является сокращение энергопотребления ESP32 за счет использования одного из его спящих режимов . Это действительно отличная стратегия для значительного увеличения времени автономной работы проекта, которому не нужно быть постоянно активным.

Что такое спящий режим ESP32?

ESP32 Спящий режим — это энергосберегающее состояние, в которое ESP32 может переходить, когда он не используется. Состояние ESP32 сохраняется в ОЗУ. Когда ESP32 переходит в спящий режим, отключается питание всех ненужных цифровых периферийных устройств, в то время как оперативная память получает достаточно энергии, чтобы позволить ей сохранять свои данные.

Внутри микросхемы ESP32

Чтобы понять, как ESP32 обеспечивает энергосбережение, нам нужно знать, что находится внутри микросхемы. На следующем рисунке показана функциональная блок-схема микросхемы ESP32.

ESP32 Internal Functional Block Diagram ESP32 Internal Functional Block Diagram

В основе микросхемы ESP32 лежит двухъядерный 32-разрядный микропроцессор с 448 КБ ПЗУ, 520 КБ SRAM и 4 МБ флэш-памяти.

Он также содержит модуль WiFi, модуль Bluetooth, криптографический ускоритель (сопроцессор, специально разработанный для выполнения криптографических операций), модуль RTC и множество периферийных устройств.

ESP32 Power Modes

Благодаря расширенному управлению питанием ESP32 предлагает 5 настраиваемых режимов питания . В соответствии с требованиями к питанию, чип может переключаться между различными режимами питания. Доступны следующие режимы:

  • Активный режим
  • Спящий режим модема
  • Легкий спящий режим
  • Глубокий спящий режим
  • Спящий режим

Каждый режим имеет свои особенности и возможности энергосбережения. Давайте посмотрим на них по очереди.

Активный режим ESP32

Нормальный режим также известен как Активный режим . В этом режиме активны все функции чипа.

Поскольку в активном режиме все (особенно модуль WiFi, ядра обработки и модуль Bluetooth) постоянно включены, чипу для работы требуется ток более 240 мА. Также мы заметили, что при одновременном использовании функций Wi-Fi и Bluetooth иногда возникают всплески большой мощности (самый большой был 790 мА).

ESP32 Active Mode Functional Block Diagram & Current Consumption ESP32 Active Mode Functional Block Diagram & Current Consumption

Если вы посмотрите на таблицу данных ESP32, энергопотребление в режиме активной мощности при работе RF выглядит следующим образом:

Очевидно, что это самый неэффективный режим, и он потребляет наибольший ток.Итак, если мы хотим сэкономить энергию, мы должны отключить их (используя один из других режимов мощности), когда они не используются.

ESP32 Modem Sleep

В режиме ожидания модема все активно, в то время как только WiFi, Bluetooth и радио отключены. ЦП также находится в рабочем состоянии, и часы можно настраивать.

В этом режиме микросхема потребляет около 3 мА на низкой скорости и 20 мА на высокой скорости.

ESP32 Modem Sleep Functional Block Diagram & Current Consumption ESP32 Modem Sleep Functional Block Diagram & Current Consumption

Чтобы поддерживать соединения Wi-Fi / Bluetooth, ЦП, Wi-Fi, Bluetooth и радио активируются через заданные промежутки времени.Он известен как Ассоциация режима сна .

Во время этого режима ожидания режим питания переключается между активным режимом и режимом ожидания модема.

ESP32 может перейти в спящий режим модема, только если он подключается к маршрутизатору в режиме станции. ESP32 остается подключенным к маршрутизатору через маячковый механизм DTIM .

В целях экономии энергии ESP32 отключает модуль Wi-Fi между двумя интервалами сигналов DTIM Beacon и автоматически выходит из спящего режима перед прибытием следующего сигнала Beacon.

Время ожидания определяется интервалом времени DTIM Beacon маршрутизатора, который обычно составляет от 100 мс до 1000 мс.

Что такое механизм маяка DTIM?

DTIM — это аббревиатура от Delivery Traffic Indication Message.

DTIM-Beacon DTIM-Beacon

В этом механизме точка доступа (AP) / маршрутизатор периодически передает кадры маяка. Каждый фрейм содержит всю информацию о сети. Он используется для объявления о наличии беспроводной сети и синхронизации всех подключенных участников.

ESP32 Light Sleep

Рабочий режим легкого сна аналогичен режиму сна модема. Чип также следует шаблону сна ассоциации.

Разница в том, что во время легкого спящего режима цифровые периферийные устройства, большая часть ОЗУ и ЦП имеют синхронизацию.

Что такое стробирование часов?

Стробирование часов — это метод снижения динамического энергопотребления.

Он отключает части схемы, отключая тактовые импульсы, так что триггеры в них не должны переключать состояния.Поскольку коммутируемые состояния потребляют энергию, когда они не переключаются, потребление энергии падает до нуля.

Во время легкого спящего режима ЦП приостанавливается путем отключения своих тактовых импульсов, в то время как RTC и ULP-сопроцессор остаются активными. Это приводит к меньшему потреблению энергии, чем в спящем режиме модема, который составляет около 0,8 мА.

ESP32 Light Sleep Functional Block Diagram & Current Consumption ESP32 Light Sleep Functional Block Diagram & Current Consumption

Перед переходом в легкий спящий режим ESP32 сохраняет свое внутреннее состояние и возобновляет работу после выхода из спящего режима. Известно Full RAM Retention .

esp_light_sleep_start () Функция может использоваться для перехода в режим легкого сна после настройки источников пробуждения.

ESP32 Deep Sleep

В режиме глубокого сна ЦП, большая часть ОЗУ и все цифровые периферийные устройства отключены. Единственные части микросхемы, которые остаются включенными, это: контроллер RTC, периферийные устройства RTC (включая сопроцессор ULP) и память RTC (медленная и быстрая).

Чип потребляет от 0,15 мА (если сопроцессор ULP включен) до 10 мкА.

ESP32 Deep Sleep Functional Block Diagram & Current Consumption ESP32 Deep Sleep Functional Block Diagram & Current Consumption

В режиме глубокого сна главный ЦП отключается, в то время как сопроцессор ULP выполняет измерения датчиков и пробуждает основную систему на основе данных измерений с датчиков. Этот режим сна известен как шаблон , контролируемый датчиком ULP, .

Вместе с процессором отключена и основная память микросхемы. Таким образом, все, что хранится в этой памяти, стирается и становится недоступным.

Однако память RTC остается включенной. Таким образом, его содержимое сохраняется во время глубокого сна и может быть извлечено после того, как мы разбудим чип.По этой причине чип сохраняет данные о подключении Wi-Fi и Bluetooth в памяти RTC перед их отключением.

Итак, если вы хотите использовать данные при перезагрузке, сохраните их в памяти RTC, определив глобальную переменную с атрибутом RTC_DATA_ATTR . Например, RTC_DATA_ATTR int bootCount = 0;

В режиме глубокого сна отключается питание всего чипа, кроме модуля RTC. Таким образом, любые данные, которых нет в памяти восстановления RTC, будут потеряны, и, таким образом, чип перезапустится со сбросом.Это означает, что выполнение программы снова начинается с начала.

СОВЕТ

ESP32 поддерживает запуск заглушки глубокого сна и пробуждения при выходе из глубокого сна. Эта функция запускается сразу же, как только чип просыпается — перед любой нормальной инициализацией выполняется код загрузчика. После запуска пробуждения чип может снова перейти в спящий режим или продолжить нормальный запуск.

В отличие от других режимов сна, система не может автоматически перейти в режим глубокого сна. esp_deep_sleep_start () Функция может использоваться для немедленного перехода в режим глубокого сна после настройки источников пробуждения.

По умолчанию ESP32 автоматически отключает периферийные устройства, которые не нужны источнику пробуждения. Но при желании вы можете решить, какие периферийные устройства выключить / оставить. Дополнительные сведения см. В документации по API.

Чтобы узнать больше о ESP32 Deep Sleep и его источниках пробуждения, посетите нижеприведенное руководство.

Tutorial For ESP32 Deep Sleep Wakeup Sources Tutorial For ESP32 Deep Sleep Wakeup Sources

ESP32 Режим гибернации

В отличие от режима глубокого сна, в режиме гибернации чип отключает внутренний осциллятор 8 МГц и ULP-сопроцессор.Память восстановления RTC также отключена, что означает, что мы не сможем сохранить какие-либо данные в режиме гибернации.

Все остальное отключено, кроме только одного таймера RTC на медленных часах и некоторых RTC GPIO активны. Они отвечают за выведение чипа из режима гибернации.

Это еще больше снижает потребление энергии. Чип потребляет около 2,5 мкА только в режиме гибернации.

ESP32 Hibernation Mode Functional Block Diagram & Current Consumption ESP32 Hibernation Mode Functional Block Diagram & Current Consumption.

Введение и начало работы с WiFi-приемопередатчиком ESP8266

Интернет вещей и домашняя автоматизация в последнее время стали очень популярной темой. Самостоятельно создавать что-то, что может обмениваться данными с World Wide Web и к которому можно получить доступ из любой точки мира, действительно звучит круто, не так ли?

Но подождите !!! Это тоже звучит сложно ??? ….

Я тоже. Я думал, что потребуется огромное количество времени и навыков, чтобы создать вещи, которые могут взаимодействовать с Интернетом.НЕТ, я был совершенно неправ, благодаря этому фантастическому модулю под названием ESP8266 от Espressif Systems. Теперь вы можете легко открыть свои двери для проектов Интернета вещей с помощью этого модуля. Этот недорогой модуль небольшого размера может творить чудеса, он действительно прост и удобен в использовании, если мы будем следовать правильным шагам.

Это руководство направлено на то, чтобы познакомить вас с этим модулем ESP8266-01 и помочь вам начать работу с ним . Возможно, вы уже принесли свой модуль и застряли при попытке его использовать.Тогда вы не одиноки, не волнуйтесь, многим людям очень трудно начать работу с модулем, потому что для этого модуля нет надлежащего руководства или документации. Это причина создания этого урока. Следуйте приведенным здесь инструкциям, и вы сможете запустить и запустить свой модуль ESP8266-01 в кратчайшие сроки. Здесь мы будем использовать FTDI USB to TTL Serial Adapter Module для программирования ESP8266. Посмотрите подробное видео в конце Учебного пособия.

Прежде чем перейти к теме, давайте рассмотрим некоторые основы модуля ESP8266-01.

Что такое ESP8266?

Большинство людей называют ESP8266 модулем WIFI, но на самом деле это микроконтроллер. ESP8266 — это название микроконтроллера, разработанного компанией Espressif Systems из Шанхая. Этот микроконтроллер имеет возможность выполнять действия, связанные с WIFI, поэтому он широко используется как модуль WIFI .

ESP8266-wifi-module

Доступно множество типов модулей ESP8266, от ESP8266-01 до ESP8266-12.В этом руководстве мы используем ESP8266-01, потому что он самый дешевый и легко доступный. Однако все модули ESP имеют только один тип процессора ESP, который отличается только типом используемой платы прорыва. Коммутационная плата ESP8266-01 будет иметь только 2 контакта GPIO, тогда как на других платах он будет выше.

Полная спецификация модуля приведена в таблице ниже

Напряжение

3,3 В

Потребление тока

10 мкА-170 мА

Максимальное потребление тока при перепрошивке

800 мА

Флэш-память

16 МБ (512 КБ нормально)

Процессор

Tensilica L106 32 бит

Скорость процессора

80-160 МГц

RAM

32 000 + 80 000

GPIO

17 (но большинство из них мультиплексированы)

Аналого-цифровой преобразователь

1 (10 бит)

Максимальное количество TCP-соединений

5

Ладно, некоторые вещи, которые могли бы вас удивить в спецификации, заключаются в том, что ДА, модуль ESP8266 поставляется с преобразователем АЦП и потребляет очень высокий ток 0.8A во время перепрошивки вашего устройства.

Также ознакомьтесь с нашими различными интересными проектами Интернета вещей на базе ESP8266.

Основы теории WiFi:

Протокол управления передачей (TCP), Интернет-протокол (IP), Протокол дейтаграмм пользователя (UDP), Точка доступа (AP), Станция (Sta), Идентификатор набора услуг (SSID), Интерфейс прикладного программирования (API), Веб-сервер … ..

Все ли приведенные выше термины имеют для вас смысл?

Если да. Затем, BINGO, вы можете перепрыгнуть через эту часть и перейти к следующему разделу.

Если, то нет. Тогда вы должны быть одним из многих студентов-электриков, которые просто моргнули через большинство этих терминов, как и я, когда меня впервые познакомили со всем этим. Итак, давайте быстро пройдемся по всем этим условиям, потому что только тогда мы сможем войти в мир IOT.

Протокол управления передачей (TCP):

Большинство из нас знает, что это значит. Да, это набор правил, по которым работает Интернет. Поскольку ESP8266 имеет возможность настраивать соединения WIFI.На высоком уровне Wi-Fi — это возможность участвовать в соединениях TCP / IP по беспроводной связи. Вы можете настроить ESP для работы по протоколу TCP / IP или UDP.

Протокол дейтаграмм пользователя (UDP):

UDP — это еще один тип интернет-протокола. Этот тип связи быстрее, чем TCP, но менее точен. Причина в том, что TCP использует подтверждение во время связи, а UDP — нет. TCP в основном используется в сетях, где требуется высокая надежность.UDP используется там, где скорость имеет больший приоритет, чем надежность. Например, UDP используется в видеоконференцсвязи, потому что даже если некоторые пиксели не передаются, это не сильно повлияет на качество видео, но скорость очень важна.

Большинство проектов и кодов ESP8266 работают вокруг TCP / IP, UDP будет меньше всего беспокоиться.

Точка доступа (AP) и станция (STA):

Как только вы начнете работать с модулем ESP, вы будете часто сталкиваться с этими двумя терминами.Допустим, вы и ваш друг хотели бы выходить в Интернет на своих смартфонах, но поскольку у него нет активного подключения к Интернету, вы решаете включить точку доступа, и ваш друг подключается к ней. Здесь ваш телефон, обеспечивающий подключение к Интернету, является точкой доступа (AP), а телефон вашего друга, который использует Интернет, называется станцией (STA).

Модуль

ESP8266 может использоваться в трех режимах: режиме AP, режиме STA или как в режиме STA, так и в режиме AP (комбинированном).

Идентификатор набора услуг (SSID):

Это довольно простой термин.Почти все мы использовали WIFI. Имя сети Wi-Fi называется ее SSID. Когда у нас есть несколько точек доступа для подключения станции, станция должна знать, к какой точке доступа она должна подключиться, поэтому каждой точке доступа (AP) дается идентификатор, который называется SSID.

Интерфейс прикладного программирования (API):

Проще говоря, API — это мессенджер, который принимает ваши запросы, обрабатывает их и возвращает вашей системе желаемый результат.Большинство действий, которые мы делаем в Интернете, использует API, например, когда вы бронируете рейс, делаете онлайн-покупку и т. Д. Каждый веб-сайт связывает вас с API, где некоторая часть работы, такая как регистрация, оплата и т. Д., Выполняется за вас. там.

ESP8266 использует API для общения с миром Интернета. Например, если он хочет знать время, климат или что-то еще, что он должен запросить в форме API для соответствующего веб-сайта. Этот веб-сайт получит запрос и вернет желаемый результат нашему модулю ESP.

Веб-сервер:

Веб-сервер — это то, что отвечает за отображение содержимого веб-сайта. Все содержимое этого конкретного веб-сайта будет загружено на его веб-сервер. Есть выделенные компьютеры, работа которых состоит только в том, чтобы действовать как веб-сервер. Мы также можем запрограммировать наш ESP8266 для работы в качестве веб-сервера и подключаться к нему из любой точки мира.

Ладно, нам достаточно для начала. Теперь, , позвольте нам получить оборудование .

Типы программирования с ESP8266:

Есть два способа работы с вашим модулем ESP8266. Это руководство поможет вам начать работу с обоими. Один из способов — использовать AT-команды. Другой способ — использовать Arduino IDE . Давайте разберемся, что это значит.

Во все модули ESP8266, поставляемые с завода, будет загружена прошивка по умолчанию (SDK + API). Эта прошивка поможет вам запрограммировать модуль ESP8266 с помощью AT-команд.

Другой способ — напрямую программировать модуль ESP8266 с помощью Arduino IDE (плата не требуется) и ее библиотек. Все проекты могут быть выполнены обоими способами. Но если вы начнете использовать Arduino IDE для программирования ESP8266, возможно, вы не сможете использовать AT-команды, потому что SDK по умолчанию мог быть поврежден. В этом случае вам нужно прошить ESP с настройками по умолчанию. Мы рассмотрим это в другом уроке.

Оборудование для программирования ESP8266 Модуль:

ESP8266 — это 8-контактный модуль.Вывод такой же показан ниже.

ESP8266-wifi-module

ESP8266-module-pinout-diagram

К сожалению, этот модуль не поддерживает макетную плату, поэтому мы не можем установить его непосредственно на макетную плату. Также , в отличие от Arduino, не имеет встроенного драйвера USB to Serial; следовательно, мы должны использовать «FTDI USB to TTL Serial Adapter Module» для связи с ним . Убедитесь, что плата FTDI может работать и от 3,3 В; тот, который мы используем в этом уроке, показан ниже.

Теперь, как мы знаем, мы должны включить ESP8266 с 3.3В. Но потребление тока составляет 0,8 А, поэтому при питании от нашей коммутационной платы FTDI он может работать не так, как ожидалось. Следовательно, мы должны построить свою собственную схему питания. Здесь мы использовали LM317 для питания; подробности изготовления всего оборудования приведены в последующих разделах.

Необходимые материалы:

  • Перфорированная плита
  • ESP8266-01
  • Коммутационная плата FTDI
  • LM317
  • Конденсатор 0,1 мкФ
  • 10 мкФ конденсатор
  • Домкрат для ствола
  • Bergstik мужской и женский
  • Кнопка
  • Соединительные провода
  • 12V Адаптер для питания платы.

Описание цепи:

Схема платы показана ниже

Programming-ESP8266-using-FTDI-module-circuit-diagram

Кто-то, возможно, попытался запитать ваш ESP напрямую от FTDI, и он заработал, но следующие причин для создания собственной платы с несколькими дополнительными компонентами:

  1. Только несколько плат FTDI могут обеспечить ток, достаточный для модуля ESP. Некоторые модули ESP могут потреблять больший ток, чем другие, во время прошивки.Следовательно, всегда безопасно, чтобы у был собственный источник питания , и будет проще интегрировать схему питания на Dot Board вместо макета.
  2. Мы всегда должны перезагружать модуль ESP перед загрузкой кода, создание собственной платы поможет нам легко сбросить модуль. Мы использовали кнопку для сброса ESP8266 .
  3. Вывод GPIO0 должен быть заземлен при программировании с использованием Arduino и должен оставаться свободным при использовании AT-команд, это можно легко переключить, если мы создадим свою собственную плату.Мы использовали перемычку для переключения между режимом AT-команд и режимом программирования Arduino IDE .
  4. Все программирование выполняется с использованием последовательной связи , если вы используете макетную плату, некоторые незакрепленные клеммы могут вызвать ошибку на полпути и вынудить нас перепрограммировать модуль для работы снова.

При этом вы можете выбирать между использованием макетной платы и созданием собственной платы для программирования модуля. Если вы все еще хотите использовать макетную плату, ту же схему, показанную выше, можно построить с помощью вашей макетной платы.Будет отличаться только внешний вид, все остальные инструкции в этом руководстве будут применяться так же.

Строительная плата

для программирования ESP8266:

Итак, здесь мы создаем плату для программирования модуля ESP8266, который имеет свою собственную цепь питания для питания ESP8266.

Как уже говорилось, нашему модулю потребуется около 800 мА при программировании. Поэтому мы сконструировали собственный силовой модуль с помощью регулятора переменного напряжения LM317, так как ток источника LM317 почти равен 1.2А. Входное напряжение LM317 будет составлять 12 В, которое будет подаваться с помощью адаптера для настенного монтажа 12 В 2 А. Выход LM317 будет постоянно регулироваться до 3,3 В с помощью резисторов 220 Ом и 360 Ом. Также проверьте нашу схему зарядного устройства с использованием LM317, чтобы узнать больше о LM317.

Формулы для расчета выходного напряжения LM317 приведены ниже:

Выход = 1,25 * (1+ (R2 / R1))

Где R1 — 220 Ом, а R2 — 360 Ом.

Модуль ESP8266 подключается в соответствии с контактами, указанными в таблице ниже.

Контактный №

Название вывода ESP

Подключено к

1

Земля

Земля модуля FTDI

2

GPIO2

Свободен слева или подключен к палке Берга для будущего использования

3

GPIO0

Переключение между режимами программирования

4

Rx

Передача модуля FTDI

5

Tx

Rx модуля FTDI

6

CH_PH

3.3 В от LM317

7

Сброс

Кнопка для сброса модуля

8

Vcc

3,3 В от LM317

Для простого переключения между режимом AT-команд и режимом программирования Arduino. я поместил переключатель (перемычку), который будет тянуть GPIO 0 на землю при использовании Arduino IDE и оставлять его плавающим при использовании AT-команд.

Имеется кнопка , при нажатии которой происходит сброс модуля ESP . Для этого просто подключите контакт RST модуля ESP к шине заземления с помощью кнопки. Каждый раз перед программированием нашего модуля ESP мы должны сбрасывать его.

После того, как вы собрали схему, она должна выглядеть примерно так, как показано ниже.

building-board-to-program-ESP8266-wifi-module-1

Я использовал плату Perf, но вы также можете использовать макетную плату, если вам интересно (как обсуждалось выше).Полная сборка и объяснение показаны в видео ниже .

После подключения. Включите плату без плат ESP и FTDI и проверьте, правильно ли мы получаем 3,3 В на клеммах Vcc и Ground модуля ESP. Теперь убедитесь, что ваша плата FTDI находится в режиме 3,3 В, и подключите к ней модули FTDI и ESP.

Включите адаптер и подключите его к плате, модуль ESP должен загореться красным цветом.

building-board-to-program-ESP8266-wifi-module-2

Затем подключите плату FTDI к компьютеру с помощью кабеля mini-USB — USB и перейдите в Диспетчер устройств на своем компьютере, и вы должны найти плату FTDI, подключенную к вашему COM-порту, как показано ниже:

FTDI-module-connected-with-computer-USB-port

Теперь пора заняться программированием нашего модуля ESP8266.Вы можете начать с использования AT-команд, а затем перейти к использованию Arduino IDE. Не забудьте ознакомиться с другими нашими проектами на базе ESP8266.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *