ESP8266. Меняем прошивку.

 

5411cf703e8741baa30126207935f9b8         В прошлой статье я описал как управлять модулем при помощи AT команд. Но для такого способа управления необходимо использование дополнительного контроллерного модуля. Благодаря наличию на борту ESP8266 полноценного контроллера, он может работать автономно. Что это дает? Во-первых, мы можем снизить энергопотребление убрав лишний модуль и используя режим глубокого сна модуля. Во-вторых, миниатюрное исполнение модуля позволяет изготовить удобный и малогабаритный корпус для своего устройства.

Для автономного использования модуля есть 2 пути. Первый, и наиболее простой для разработчика, — установка альтернативной прошивки, позволяющей исполнять пользовательские скрипты. Данный способ аналогичен экспериментам с различными wi-fi роутерами, перепрошивка которых превращает их в Linux компьютеры. Второй способ более сложный – это корректировка исходников оригинальной прошивки под свои нужды и компиляция (сборка) прошивки.

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

Начнем эксперименты с первого способа. После длительного серфинга в Интернет мое внимание привлекла прошивка NodeMcu.  Она позволяет заливать пользовательские скрипты на набирающем популярность скриптовом языке Lua. Функционал впечатляет: работа как полноценный wifi клиент или как точка доступа, управление GPIO, управление файловой структурой во флеш памяти, управление пользовательским таймером, управление режимом глубокого сна, WathDog, АЦП, ШИМ, Web Serwer. Многие из этих функций не поддерживаются в АТ командах.

Прядок прошивки следующий:

  1. Качаем прошивку NodeMCU  или на моей странице загрузки Скачать
  2. Качаем софт для смены прошивки ЗДЕСЬ  или на моей странице загрузки Скачать
  3. Подключение – через преобразователь USB-COM. GPIO0 должен быть подтянут к GND !!! Это важно!!! (картинка не моя, но точно отражает схему подключения)7a8534
  4. Запускаем XTCOM_UTILITY, в меню Tools выбираем Config Device. Выбираем СОМ порт и скорость 115200. Обратите внимание, что программатор поддерживает максимально СОМ6. Если у вас преобразователь определился как СОМ9 или 8, то надо его заменить в Диспетчере устройств. Диспетчер устройств – Параметры порта – Дополнительно. Далее жмем Open — в результате должны получить следующее:

2

  1. Теперь в API TEST(A) выбираем (4)Flash Image Download. Указываем путь к файлу прошивки, адрес оставляем 0х00000, жмем Download и наслаждаемся процессом прошивки.

3

4

  1. Теперь отключим GPIO0 от GND. Перегрузим модуль питанием.

Можно работать с модулем в новой прошивке.

5

Структуру новой прошивки и принципы написания скриптов рассмотрим в следующий раз.

 

 

Посмотрите так же...
4 комментария
  1. Dreambox:

    Странно, а у меня не показывает IP адрес :((((

  2. admin:

    Ничего странного. У Вас скорее всего чистый модуль, а я еще в экспериментах с АТ командами настройки прописал.

  3. KrisRa:

    Пробовал так прошить два модуля — не фига… Не откликаются ни в какую. Какие могут быть подводные камни? Вариант с неисправностью обоих оставим на крайний случай.

  4. После обновления до версии 0018000902 изменится дефолтная скорость COM-порта с 57600 на 9600, но эту скорость в новой прошивке теперь можно задать командой AT+CIOBAUD.

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

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