Курмаев Р.А.
Гр.218
Тема
«Радиосеть управления освещением с использованием технологии Wifi (esp8266)»
Часть 2.
Обзор ESP8266
Wi-Fi модуль ESP8266 разработан китайской
компанией Espressif в 2013
году.
Главным отличим данного модуля от конкурентов, является высокая степень интеграции самого чипа. Типовая обвязка ESP82266(рис.1) достаточная простая и состоит всего из 7 элементов. Этот факт положительно сказывается на стоимости конечных устройств.
Особенности esp8266 [1]:
Поддержка спецификаций
802.11b/g/n;
Поддержка Wi-Fi Direct (P2P), поддержка режима AP на программном уровне;
Встроенный стек
протоколов TCP/IP;
Встроенный контроллер мощности
излучаемого сигнала;
Встроенный контроллер
энергопотребления;
Мощность излучения
+19.5 dBm в режиме 802.11b;
Встроенный процессор
разрядностью 32 бита (может быть использован для запуска приложений);
Поддержка интерфейсов SDIO
2.0, SPI, UART;
Поддержка схем MIMO 1x1 и 2x1;
Энергопотребление в
режиме ожидания <1.0mW;
Выход из режима
ожидания < 2 ms.
Важной характеристикой устройств
для Интернета Вещей является малое
энергопотребление, и здесь ESP8266 показывает себя на хорошем уровне (Таб.1).
MРежим |
TПотребляемый
ток |
Единицы
измерения |
Передача 802.11b, CCK 1Mbps, POUT=+19.5dBm |
215 |
mA |
Передача 802.11b, CCK 11Mbps, POUT=+18.5dBm |
197 |
mA |
Передача 802.11g, OFDM 54Mbps, POUT =+16dBm |
145 |
mA |
Передача 802.11n, MCS7, POUT=+14dBm |
135 |
mA |
Прием 802.11b, packet length=1024 byte,
-80dBm |
60 |
mA |
Прием 802.11g, packet length=1024 byte, -70dBm |
60 |
mA |
Прием 802.11n,
packet length=1024 byte, -65dBm |
62 |
mA |
Режим ожидания |
0.9 |
mA |
Глубокий сон |
10 |
uA |
Энергосбережение DTIM 1 |
1.2 |
mA |
Энергосбережение DTIM 3 |
0.86 |
mA |
Полное выключение устройства |
0.5 |
uA |
Таблица 1. Потребление тока esp8266.
С 2013 года вышло довольно
много модификаций этого модуля (Рис.2):
ESP-01, ESP-02, ESP-03, ESP-04, ESP-05, ESP-06, ESP-07, ESP-08, ESP-09, ESP-10, ESP-11, ESP-12, ESD-12, ESP-13, WROOM,
WROOM-02.
Рисунок 2. Модификации ESP8266.
Модификации отличаются [2] :
Размером;
Видом антенны;
Количеством flash памяти;
Количеством выведенных контактов;
Положением контактов;
Наличием разъема внешней антенны.
Стоит заметить, что существует много «клонов» данных
модулей. Они отличаются ценой и качеством исполнения. Стоимость модулей в китайских магазинах от 2$ до 5$.
Рассмотренные модули легко подключить к ПК, через USB to TTL Converter используя,
схему подключения:
ESP VCC к USB/UART VCC (+3.3В);
ESP GND к USB/UART GND;
ESP URXD к USB/UART TXD;
ESP UTXD к USB/UART RXD;
ESP CH_PD к USB/UART VCC (+3.3В).
Так же для прошивки
модуля необходимо подключить ESP GPIO0 к USB/UART GND. По завершению прошивки
отключить.
Так же можно без проблем подключить плату Arduino или любой микроконтроллер с UART и выполнять отправку-прием данных через Wi-Fi сеть между контроллерами или ПК.
Рассмотренные модули,
расширяют возможности уже существующего
устройства, например на базе Аrduino.
Для разработки
устройств на базе esp 8266 больше
подходят Dev kit’ы (рис.3) [3].
Рисунок
3. NodeMCU DevKit v0.9
Данная платформа для разработки имеет ряд преимуществ
по сравнению с обычным esp
8266:
Разведены все возможные вводы/выводы;
Встроенный
USB to TTL Converter;
Reset и Flash выполнены в виде кнопок ;
Встроенный преобразователь напряжения с 3,7 В -20 В до 3.3В;
Расширенная память для хранения программ;
Ножки платы расположены на стандартном расстоянии
2,54 мм, поэтому модуль легко установить на макетной плате.
ESP8266 NodeMCU v3
Для разработки нашего устройства управления
освещением мы будем использовать платформу ESP8266 NodeMCU v3 [4] (рис.4)
разработанную компанией LoLin.
Данная платформа построена на базе чипа ESP-12e, имеет встроенный USB to TTL Converter(СH340G) и преобразователь напряжения в 3.3В. Отдельно
стоит отметить расширенную память для хранения программ 4МБ.
Рисунок 4. ESP8266 NodeMCU v3.
Назначение каждой из ножек платы представлены на
следующем рисунке (рис.5)
Рисунок 5. Назначение ножек платы ESP8266 NodeMCU v3.
Модуль имеет 11 портов ввода-вывода общего
назначения.
Некоторые из портов имеют дополнительные функции:
D9, D10 — UART;
D1, D2 — I²C/TWI;
D5–D8 — SPI ;
D1–D10 — выходы с ШИМ (PWM);
A0 — аналоговый вход с АЦП.
Работа
с
ESP8266
NodeMCU
v3.
Первое что нужно сделать для работы с платой это
установить драйвер USB to TTL Converter’a. Плата при этом должна быть отключена от ПК!
После этого можно приступить
к обновлению прошивки.
Первоначально на плате установлена прошивка для работы с китайский облачным сервисом. Необходимо заменить ее на NodeMCU. Для этого скачиваем ESP8266Flasher [5] для 64 / 32 битных систем.
Подключаем плату к ПК через USB кабель. Если плата моргнёт светодиодом, значит все сделано правильно.
Запускаем программу (рис.6) с правами Администратора.
Рисунок 6. Интерфейс программы ESP8266Flasher
Проверяем в диспетчере устройств Windows номер
СOM
порта
(рис.7) .
Рисунок.7 Отображение СH340 в диспетчере устройств Windows.
Если все верно нажимаем кнопку Flash в
программе, после чего кнопку Flash на плате.
Начнется процесс прошивки (занимает около 2х
минут)(рис.8).
Рисунок 8. Процесс прошивки ESP8266 NodeMCU v3.
Если прошивка прошла успешно, то окно программы
примет вид (рис.9).
Рисунок 9. Успешное завершение прошивки.
После завершения
прошивки переподключите плату к ПК.
Если в ходе прошивки
возникли ошибки или прошивка длиться дольше 30 минут проверьте выполнение
следующих условий:
1. К
ножкам платы ничего не подключено;
2. USB кабель
вставлен в материнскую плату ПК без использования Хабов удлинителей и пр. ;
3. USB кабель корректно работает с другими устройствами(например мобильным телефоном) а не только выполняет функции зарядки;
Выбор
среды разработки(IDE):
Для работы с прошивкой NodeMCU возможны
два варианта IDE:
1. Arduino IDE;
2. ESPlorer.
ArArduino IDE подойдет тем, кто уже занимался разработкой на платформе Arduino. Подробнее об установке и настройке Arduino IDE написано тут.
Мы остановимся на ESPlorer[6]. Эта среда
разработки существенно отличается от других:
Работает на множестве платформ;
Поддержка нескольких
открытых файлов;
Подсветка кода LUA,
python;
Undo/Redo;
Цветовые темы редактора: dark, Eclipse, IDEA, Visual Studio;
Автозавершение кода по
CTRL+Space;
Умная» отправка файлов,
с ожиданием ответа;
Поддержка нескольких
прошивок одновременно: NodeMCU, AT, MicroPython, Frankenshtein (в разработке).
Для работы ESPlorer требуется установленная Java (jdk).
Установка
ESPlorer
Установка этой среды
разработки довольно проста:
1.
Установить Java (по завершении установки
перезагрузить ПК);
2. Скачать ESPlorer ;
3.
Распаковать архив в любой удобный
каталог;
4.
Запустить ESPlorer.bat.
Если все сделано
правильно запуститься командная строка Windows, после чего откроется
окно программы (рис.10) (закрытие командной строки приведет к завершению
программы).
Рисунок
10. GUI
программы
ESPlorer
Проверка
работоспособности платы:
1. Подключаем
плату к ПК;
2. Запускаем
ESPlorer;
3.
Выбираем COM порт
и скорость 9600;
4.
Нажимаем OPEN;
ESPlorer автоматически
определить тип прошивки (NodeMCU firmware detected) и объем свободной
оперативной памяти (=node.heap(); 13768).
5.
Проверим объем памяти для хранения
программ. Commands ->
List files.
В моем случае доступно 3441461
байт (3.44 МБ) что вполне достаточно для реализации терминала управления
освещением.
Используемая литература:
1
.
Специфкация esp8266:
https://nurdspace.nl/images/e/e0/ESP8266_Specifications_English.pdf;
2. Распиновка
ESP8266, различные модификации модулей на базе ESP8266:
http://esp8266.ru/modules-esp8266/;
1. 3. Модуль NodeMCU DevKit v0.9:
http://www.chipdip.ru/news/nodemcu-devkit-v0.9-module/;
2. 4.Comparison of ESP8266 NodeMCU development boards:
http://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/
3. 5.NodeMCU Flasher:
https://github.com/nodemcu/nodemcu-flasher
4. 6.ESPlorer — IDE для ESP8266:
http://esp8266.ru/esplorer-ide-esp8266/