Здравствуйте друзья. Столкнулся я с проблемой использования модуля ESP-01 Далее мы будем говорить только об этом модуле. и называть его будем ESP. Меня настигли следующие проблемы:
- что это такое и не что он способен?
- как запрограммировать?
- как залить прошивку?
- среда разработки ПО
Ну а теперь давайте по порядку.
Что это такое?
По сути, чип ESP8266 представляет собой миниатюрный микроконтроллер с Wi-Fi передатчиком, который может функционировать в условиях полной автономии, без дополнительной платы Arduino. С помощью модуля ESP-01 можно передавать данные о температуре, влажности, включать реле и так далее. Для удобства использования чипа ESP8266, производитель изготовил серию модулей от ESP-01 по ESP-14. Первый в этой серии, это модуль ESP-01 (существует еще ESP-01S, о нем чуть позже), являющийся одним из известным, из-за свой цены и небольшими размерами, всего 14,3 мм на 24,8 мм. Но в нем, есть два недостатка, это ограниченное количество программированных выводов GPIO и их неудобное расположение (неудобно макетировать). Модуль ESP-01 представляет собой небольшую плату, черного цвета, на которой расположены два основных чипа, это микроконтроллером ESP8266 и flash память на 1 Мб. Рядом расположен кварцитовый резонатор и напечатанная антенна. На плате установлены два светодиода, красный и голубой. Красный светодиод, светится когда на модуле есть питание, а синий мигает при выполнении команд (в NSP-01S удален красный светодиод, из-за постоянного потребления электроэнергии). Для подключения модуля ESP-01, предусмотрено восемь выводов (два ряда по четыре вывода, шагом 2.54 мм), два из готовых являются цифровым входами-выходом, поддерживающие широтно импульсную модуляцию. Хотя модуль имеет по умолчанию два вывода GPIO, можно использовать другие доступные контакты, если у вас есть необходимый инструмент для пайки.
Назначение выводов
GND: «-» питание модуля
GPIO2: (Digital I / O программируемый)
GPIO0: (Digital I / O программируемый, также используется для режимов загрузки)
RX: UART прием
TX: UART передача
CH_PD: (включение / отключение питания, должны быть выведены на 3.3 В непосредственно или через резистор)
RST: сброс, необходимо потянуть к 3.3В
VCC: «3.3В» питание модуля
Внимание! ESP-01 очень капризные к питанию, необходимо использовать внешний стабилизатор напряжения на 3.3В, в качестве первого примера буду использовать адаптер USB
Как запрограммировать
Перед использованием модуля ESP его память необходимо форматировать. Скажу вам, что мне подошла только одна программа: Esptool. Утилита Esptool поможет считать и записать на платформу с чипом ESP8266EX прошивку в формате *.bin. Но для записи или обновления прошивки я использую программу nodemcu-flasher, о ней будем говорить чуть позже. И так давайте скачаем и установим Esptool. Переходим по ссылке и скачиваем последнюю версию интерпретатора с официального сайта Python.
При установке поставьте галочку в пункте “Add python.exe to PTH”
Далее открываем командную строку Пуск>выполнить>cmd
Проверьте установленную версию Python. Введите в командной строке:
1 |
python --version |
Установите через менеджер пакетов pip утилиту esptool. Проверьте версию программы.
1 |
pip install esptool |
1 |
esptool.py version |
Вы должны получить у себя на компьютере примерно такое же окно.
Теперь перейдём непосредственно к стиранию памяти. Нам необходимо ввести строку со следующими параметрами:
1 |
esptool.py --port COM1 erase_flash |
кратко опишу команды:
esptool.py
– запуск утилиты;
–-port COM1
– номер COM-порта устройства. Узнайте ваш номер в диспетчере задач;
erase_flash – очищает полностью память ESP
В моём случае преобразователь COM порта был установлен на COM1. Вы у себя измените номер порта если в этом есть необходимость.
Теперь нам нужны файлы для прошивания памяти ESP.
Скачаем необходимый SDK с официального сайта Espressif. Тут читаем что такое SDK. В случае модуля ESP-01, мы, скорее всего не сможем воспользоваться третьей версией SDK, так как в ней нет прошивки, пригодной для схемы 512+512. Наши методы прошивания подойдут не только для модулей ESP-01, а и для любых других модулей, где установлен контроллер ESP8266, поэтому вполне можно и воспользоваться SDK3. Но в нашем случае мы скачаем последнюю на данный момент SDK 2.2.1 отсюда. Комплект нужен именно NONOS (без использования операционной системы). Попытаюсь дать прямую ссылку на архив ESP8266 NONOS SDK V2.2.1
Распакуем архив. Из него нам нужны будут для прошивания boot_v1.X.bin, версию подбираем, обычно последняя, файл esp_init_data_default_vXX.bin, я прошивал версию 05, файл blank.bin (если прошиваем неочищенную полностью память) из папки bin, а также файл userX.1024.new.2.bin из папки bin\at\512+512.
Ещё раз уточним, что и с какого адреса прошивать, открыв мануал по AT командам. А тут можно ознакомиться с AT командами на русском языке. Только там далеко не полный список.
Как залить прошивку
Теперь запустим nodemcu-flasher и подключим файлы новой прошивки, прописав соответствующие адреса в разделе Config, заодно также подключим и файл blank.bin, который прошивается по трём адресам, но отмечать для прошивания мы его не будем, так как у нас память уже полностью очищена. Я пытался провернуть процедуру с файлом blank.bin но у меня ни как не обновлялась прошивка в ESP пока я не запускал утилиту Esptool и не форматировал память. У меня получилось вот так:
Переводим модуль в режим прошивки, переходим в программе nodemcu-flasher в раздел Operation и жмём кнопку Flash(F). Начнётся процесс заливки прошивки в FLASH-память модуля
После того как прошивка корректно запишется в память ESP мы увидим примерно такое окно с галочкой в зелёном круге:
На этом этапе мы прошили новую прошивку в ESP. Теперь давайте проверим состояние прошивки. Запустим ESPlorer, настроим порт и перезагрузим наш контроллер. Если у нас всё прошилось удачно, мы увидим приблизительно вот это
Тут мы видим версию SDK 2.2.1 Чего мы и добивались.
Среда разработки ПО
Давайте поговорим о IDE для ESP8266. Я как и большинство выбрал именно ESPlorer, так как тут очень много удобностей. Я на данной стадии почти не умею ничего программировать для ESP, так только поиграться можно но зная язык Lua, который к стати довольно таки и не сложный, можно писать программы.
На этом месте я закончу свой рассказ так как далее я буду познавать превращение данной платки ESP-01 в дистанционный переключатель. Всем спасибо за внимание.
Ссылки которые помогли в написании этой статьи.