Курмаев Р.А.

Гр.218

 

Тема «Радиосеть управления освещением с использованием технологии Wifi (esp8266)»

Часть 2.

Ссылка на первую часть.

Обзор ESP8266

Wi-Fi модуль ESP8266 разработан китайской компанией Espressif в 2013 году.

Главным отличим данного модуля от конкурентов, является высокая степень интеграции самого чипа.  Типовая обвязка ESP82266(рис.1) достаточная простая и состоит всего из 7 элементов. Этот факт положительно сказывается на стоимости конечных устройств.

 Рисунок 1. Типовая обвязка esp8266

Особенности 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 ConverterH340G) и преобразователь напряжения в 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 Convertera. Плата при этом должна быть отключена от ПК!

После этого можно приступить к обновлению прошивки.

Первоначально на плате установлена прошивка для работы с китайский облачным сервисом. Необходимо заменить ее на 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/