Прошивка esp8266 по воздуху: ESP8266 «Обновление по воздуху» OTA (Over the Air)

Содержание

Прошивка и запуск модуля ESP8266

Определение размера памяти по вкладке ip_adr/debug:

Вкладка debug содержит разную полезную информацию, в том числе и реальный размер чипа флеш памяти в строке Flash real size, а так же размер памяти, установленный в прошивающей программе Flash set size, который важен для правильной поддержки OTA.

Если вы не зарегистрированы в конструкторе, то вы можете скачать собранные прошивки на главной странице, где доступны 2 облегченных варианта прошивки:

-Вариант с поддержкой OTA с объемом памяти чипа 1мбайт и выше.  Необходимо обязательно выбирать в прошивающей программе размер памяти 1мбайт !! Модули с размером flash памяти 512кб не поддерживаются  режимом OTA !!

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

Возможность дальнейшего обновления прошивки по OTA доступна только у кого есть активированные ключи !

Если у вас имеются проблемы со стартом прошивки, то обязательно смотрим ниже абзац про решение проблем с прошивкой !

Сборка прошивки в конструкторе

Конструктор позволяет собрать прошивку под свои требования, включив в прошивку только те функции и датчики, которые нужны.

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

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

При первоначальной сборке прошивки рекомендуется воспользоваться опцией OTA , чтобы следующее обновление было возможно через интернет без использования подключения программатора. С опцией OTA количество опций можно включить больше, но требуется чтобы память на модуле была не меньше 1 мегабайта !!

Кроме OTA так же рекомендуется включать опции NVS настройки 2 и Экспорт/Импорт настроек.

При сборке прошивки можно выбирать разный SDK. Рекомендуемая версия SDK 1.3.0.  В новых версиях замечена проблема с режимом точки доступа (Safe Mode)(???) , но нет проблем с надежностью связи с роутером. SDK — это набор библиотек и функций от производителя чипа для работы устройства.

После нажатия кнопки «скомпилировать» через некоторое время конструктор прошивки выдаст ссылки для скачивания:

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

В режиме OTA достаточно залить прошивку одним файлом. Но 0x81000.bin может потребоваться, если вы хотите обновить прошивку по кабелю после использования OTA, когда загружен файл user2.bin(отображается в debug) — в этом случае обновление прошивки одним файлом не обновит активную прошивку.

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

Для прошивки ESP8266 необходим USB-UART переходник или Arduino. ESP8266 необходимо обеспечить напряжение питания 3.3в и током 200..300мА. Питание 3.3в от ARDUINO или от USB-UART подключать не рекомендуется — модуль может работать не стабильно из-за нехватки тока. Рекомендуется использовать стабилизатор вида 1117.

Подключение ESP8266 к USB-UART: Необходимо подключить общие выводы GND(минус). RX у USB-UART на TX ESP, TX у USB-UART на RX ESP. Подключаем так же источник питания 3.3в.

Подключение ESP8266 к Arduino: Необходимо подключить общие выводы GND(минус).RX у Arduino на RX ESP, TX у Arduino на TX ESP. Подключаем так же источник питания 3.3в. RESET у Arduina необходимо подключить к GND.

На модуле ESP8266 вывод CH_EN необходимо подключить к +3.3в для того, чтобы включить чип.

GPIO 0 на время программирования, перед включением питания необходимо подключить к GND(земля). После успешной прошивки GPIO 0 нужно отключить от GND. Если на модуле выведен GPIO 15, то его необходимо подключить на GND через резистор 10кОм на постоянной основе !!

Если у вас модуль esp8266 имеет уже на борту USB-UART (например Wemos, NodeMCU) , то указанные выше действия проводить не требуется.

Прошивка модуля

Для начала необходимо установить драйвера для вашего USB-UART переходника или Arduinы.

Прошивка через Nodemcu Flasher: Устанавливаем на вкладке Advanced Параметр Flash size в соответствии выбранным размером flash памяти (в байтах). Режим работы flash ставим QIO (при использовании GPIO 9/10 — DIO). Остальные параметры не трогаем. Указываем на вкладке Config путь на файл прошивки с адресом 0x0000. На вкладке Operation выбираем COM порт и жмем кнопку FLASH.

Прошивка через Flash download tool: Действия аналогичны.

Прошивка через Flasher for WiFi-IoT.com http://files.wifi-iot.com/flasher/ . Программа имеет русскоязычный интерфейс и поддерживается как Windows, так и Linux системы. На данный  момент прошивка идет только по 0x0000 адресу файла «Скачать одним файлом (0x00000)». При установленном API ключе возможна автоматическая загрузка заранее собранной прошивки напрямую из конструктора(только с режимом OTA). Для очистки памяти вместо бланка можно использовать опцию «стереть чип перед прошивкой».

Для модулей ESP8285 и модулях с памятью PN25F08B требуется установка режима памяти DOUT !!

Прошивка через esptool. Пример команды esptool.py —port /dev/ttyUSB0 write_flash -fs 8m 0x00000 esp8266.bin . где -fs 8m параметр нужен только для указания размера при одномегабайтовой прошивке.

Скорость COM порта рекомендуется ставить не выше 115200.

Перед первой прошивкой рекомендуется залить в модуль blank по адресу 0x0000 , особенно, если в модуле до этого использовалась какая либо другая прошивка.

Прошивка файла ESP INIT DATA

Рекомендуется прошить в модуль файл esp_init_data_default.bin с калибровками по умолчанию, эти настройки влияют на работу wifi и adc. В большинстве случаев модули работают корректно без этого файла. Последние SDK могут вообще не запускаться без данного файла.

Адрес прошивки файла зависит от установленного размера flash памяти:

0x7c000 для 512 kB.

0xfc000 для 1 MB.

0x3fc000 для 4 MB.

0xffc000 для 16 MB.

Так же данные настройки можно загрузить подав GET команду

http://[IP]/configinit?def=1 , последние SDK сами прописывают данные настройки.

Запуск модуля

При первом включении модуль включается в режим safe mode автоматически так как не содержит имени точки доступа. В режиме safe mode в эфире появится точка с именем WiFi-IoT (в прошивках до 12.10.16 homessmart) , к которой можно подключится используя смартфон или ноутбук.

В режим safe mode еще можно попасть, замкнув между собой RX и TX и перезапустив модуль или нажать 3 раза подрят (с интервалом нажатия около секунды) кнопку RESET на ESP8266. 

Далее возможны два варианта подключения к модулю:

1. Используя Captive Portal мобильное устройство выведет уведомление о подключении, при нажатии на которое происходит автоматическое открытие главной веб страницы модуля. Можно так же зайти в модуль введя в браузере адрес

iot.local (или любое другое, например iot.ru). Captive Portal не поддерживается если прошивка собрана на SDK 0.9.5 !

2. После успешного коннекта заходим вручную по адресу http://192.168.4.1 используя веб браузер. 

Далее настраиваем подключение на свой роутер на вкладке main веб интерфейса.Необходимо вбить в поля WiFi options данные своей точки доступа. Для подключения к роутеру выбираем режим «Station mode». После нажатия кнопки set ниже появится IP адрес, на который можно заходить внутри своей беспроводной сети.

Далее обновляем страницу и видим внизу IP адрес, на который уже можно будет заходить внутри Вашей локальной сети.

Тут же вы можете установить свой логин и пароль на странички настроек веб интерфейса. Длинна логина и пароля не более 8 символов. Пароль затребуется на все вкладки настроек. А при установленной опции «Full Security» и на все GET запросы управления. В режиме safe mode пароль не запрашивается !

На данной вкладке можно задать имя модулю, которое будет отображаться на главной и в системе flymon, а так же в топике на MQTT сервере.

Указанные выше действия выполнять не требуется, если прошивка была собрана с опцией Настройки по умолчанию , где были заранее прописаны параметры роутера и IP адрес. После успешной прошивки и перезагрузки сразу можно заходить на указанный IP адрес модуля внутри своей wi-fi сети.

Решение проблем с прошивкой

Иногда, после сторонних прошивок или мусора модуль может не запустится и необходимо выполнить дополнительные действия. Необходимо затереть flash память пустым бланком по адресу 0x00000. Далее уже прошиваем саму прошивку снова.

У некоторых пользователей даже после зачистки бланком модуль не стартует или стартует только при установленном режиме 512 кб или 4мб, возможно это связано с низким качеством flash памяти или частичной её несовместимостью с чипом ESP8266. По некоторым сведениям от пользователей помогает замена чипа памяти.

Если на главной странице модуля выводится сообщение «Error flash size ! (code 0x1)», то это значит была прошита прошивка 1мегабайт в режиме 512кб. При этом включается режим Safe Mode и возможны сбои в работе модуля из-за таких неверных настроек. Убедитесь, что на модуле установлен необходимый размер памяти — это видно на веб вкладке ИП_АДРЕС/debug в строке Flash real size. Режим объема памяти указывается в прошивающей программе.

Если на главной странице модуля выводится сообщение «Error flash size ! (code 0x2)», то это модуль имеет всего 512кб flash памяти и это значит, что необходимо использовать прошивку без включенного режима 1 мегабайт или не использовать OTA. Можно так же перепаять микросхему flash памяти на более ёмкую.

ВАЖНО !!  Если модуль не может получить IP адрес. Висит постоянно статус connect , то рекомендуется вписать IP адрес вручную ниже. Для этого необходимо выбрать режим Static IP и вписать IP модуля и IP шлюза(IP роутера). После этого можно заходить на модуль уже внутри сети по IP адресу, который указали в настройках..

Иногда статус connect может висеть, если тип шифрования на роутере включен, который не поддерживается чипом ESP8266.

Сохранение настроек в файл

Этот метод является устаревшим, рекомендуется воспользоваться опцией Экспорт/Импорт настроек.

Настройки модуля можно сохранить в файл, исключая настройки WI-FI, состояния GPIO, список датчиков DS18B20. Файл необходимо скачать по адресу ИП_АДРЕС/configsave.bin . Записывается обратно в модуль через программатор по адресу 0x3C000 для 512кб прошивки, 0x7C000 — для 1мб. Настройки можно скачать и через esptool.py используя пример ниже подставив нужный адрес. 

Скачать настройки WI-FI можно по адресу ИП_АДРЕС/configsave.bin?pg=66 для 512кб, ИП_АДРЕС/configsave.bin?pg=130 для 1 мег. Скачать через esptool.py можно командой esptool.py read_flash 0x7E000 4096 mywifi_settings.bin для 512 кб (Для 1024кб адрес будет 0xfe000).

Полезные ссылки:

Видеоинструкция по настройке от Umka.

Видеоинструкция по настройке от Genia1no_prosto

Видеоинструкция по настройке от Sergiy (ArmoR)

Обновление прошивки Wi-Fi модуля ESP8266

Добавлено 21 августа 2017 в 03:20

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

Цели и причины

Это вторая статья автора об интегральной микросхеме ESP8266, содержащей полнофункциональный 32-битный RISC микроконтроллер и встроенную Wi-Fi схему 802.11 b/g/n. Первая статья описывала использование Arduino IDE для программирования ESP8266 и содержит важную информацию, которая здесь повторяться не будет. Если вы не читали её, то рекомендуем сделать это.

В интернете нет недостатка в информации об ESP8266; на самом деле, может быть из неё слишком много… неправильной. Разработчики микросхемы, Espressif, по-видимому, решили не только не заниматься производством на стороне, но и избегать непосредственного участия в разработке линейки модулей ESP, которые используют микросхему ESP8266. Вместо этого, они предлагают информацию и услуги поддержки через форум для тех, кто готов с упорством и терпением ходить по лабиринту. Добавление к путанице – это существование другого форума, который, несмотря на то, что назван esp8266.com, не управляется компанией Espressif. Кроме того, существует множество перепродавцов, видеоблоггеров, и писателей, которые также предлагают информацию от качественной до спутанной настолько, что она может быть полностью неправильной.

ESP модули доступны в различных источниках, а прошивки, содержащиеся в чипах ESP8266 на модулях, почти всегда являются устаревшими и часто вызывают подозрения относительно их происхождения. Также иногда подозрительны «обновления» и инструменты, которые доступны в тех же источниках. Следовательно, целью этой статьи является документирование процедуры загрузки последней доступной прошивки непосредственно от Espressif и её установка с использованием инструмента программирования, предоставляемого Espressif.

Подключение оборудования

Чтобы обновить прошивку на любом ESP8266, необходимо правильно подать на него питание и подключить его к компьютеру. Кроме того, необходимо добавить средства сброса микросхемы и перевода её в режим загрузки. На приведенной ниже схеме и фотографии показано рекомендуемое подключение; обратите внимание, что цвета проводов на схеме соответствуют цветам на фотографии. Как вы видите, я буду обновлять прошивку на модуле ESP-01, но ти же самые соединения будут работать и с другими модулями, если используются те же входы/выходы ESP8266, как показано на схеме. Дополнительные сведения смотрите в этой статье.

Более надежная схема прошивки приведена в этой статье.

Схема подключения модуля ESP-01 к компьютеруСборка макета подключения ESP-01 к компьютеру

Программа терминала PuTTY

Когда подключение оборудования завершено, следующий шаг – включить ESP8266 и попытаться связаться с ним. Для этого требуется простая терминальная программа; мы будем использовать PuTTY, бесплатную программу, доступную здесь. Вы можете использовать другую терминальную программу, но вам придется учесть различия между ней и PuTTY.

Откройте PuTTY и нажмите на переключатель Serial. Введите номер COM порта (который должен быть меньше 10) и скорость передачи (скорее всего, это будет 115200 или 9600).

В маленьком окне Saved Sessions (Сохраненные сеансы) введите ESP8266 и нажмите кнопку Save (Сохранить). Окно PuTTY должно быть похоже на изображение ниже.

Настройка сеанса PuTTY

Нажмите кнопку Open (Открыть), после чего должно открыться окно сеанса терминала PuTTY.

Включите Caps Lock у себя на компьютере и введите AT, но не нажимайте Enter. Вы должны увидеть AT в окне терминала PuTTY. Если этого не произошло, вы, возможно, выбрали не тот COM порт или неправильную скорость передачи. Закройте PuTTY и начните этот подраздел статье с самого начала. Допустимые скорости передачи: 9600, 19200, 38400, 74880, 115200, 230400, 460800 и 921600; попробуйте по очереди каждую из них, пока не найдете ту, с которой всё заработает.

Когда вы увидите AT в окне терминала PuTTY, удерживая клавишу Ctrl, нажмите клавишу M, а затем J. Отпустите клавишу Ctrl. Вы должны увидеть OK в окне терминала PuTTY, как показано на рисунке ниже.

Отклик ESP8266 в окне терминала PuTTY

Обратите внимание, что если вы делаете ошибку при вводе в окне сеанса терминала, возможно, исправить эту ошибку не удастся. Вместо того, чтобы пытаться отредактировать и исправить ошибку, часто лучше просто удерживать клавишу Ctrl и нажимать сначала клавишу M, а затем J, что сгенерирует сообщение об ошибке. Затем вы можете начать снова и ввести правильный текст.

Когда вы увидите первое сообщение OK, это значит, что вы преодолели большое препятствие. Теперь вы знаете, что оборудование подключено правильно, модуль ESP работает, и вы правильно выбрали COM порт и скорость передачи. Закройте окно сеанса терминала PuTTY и нажмите OK, когда PuTTY спросит, уверены ли вы.

Теперь снова запустите PuTTY, выберите сохраненный сеанс ESP8266 и нажмите кнопку Load (Загрузить). Это должно поместить ранее выбранные вами настройки COM порта и скорости передачи в соответствующие окна. Нажмите Open (Открыть), и откроется новое окно сеанса терминала PuTTY.

Включите Caps Lock у себя на компьютере и введите AT, но не нажимайте Enter. Вы должны увидеть AT в окне терминала PuTTY. Введите символ +, а затем GMR. Когда вы увидите AT+GMR в окне терминала PuTTY, удерживая клавишу Ctrl, нажимите сначала клавишу M, а затем J. Отпустите клавишу Ctrl. В окне терминала PuTTY вы должны увидеть информацию о прошивке ESP8266, аналогичную показанной ниже.

Вывод информации о прошивке ESP8266 в окне терминала PuTTY

В первой строке выше вы видите команду AT+GMR, которую вы набрали. Как вы, возможно, знаете или догадались, схема команд, которую мы используем для связи с ESP8266, называется «набор AT команд», потому что все команды начинаются с букв «AT».

К сожалению, существует множество версий наборов AT команд; все они содержат некоторое количество одинаковых команд, но есть много AT команд, которые не являются стандартными для всех наборов AT команд. Даже в сообществе ESP8266 существует несколько версий. Вторая строка указывает, что это конкретное устройство 8266 запрограммировано прошивкой, которая использует версию 0.25.0.0 AT команд. Где-то есть документ, который определяет команды, которые включены в версию 0.25.0.0, но и без этого документа вы можете использовать метод проб и ошибок для определения поддерживаемых AT команд. В лучшем случае это будет очень утомительный процесс, но, к счастью, есть решение, которое будет объяснено в чуть позже.

Третья строка определяет версию программного обеспечения (SDK), которая использовалась для данного конкретного ESP8266, как версия 1.1.1. Каждый SDK также включает в себя набор AT команд, который является частью прошивки, и подходит для управления этой прошивкой. Очевидно, версия 0.25.0.0 AT команд работает с версией 1.1.1 SDK. Но всё же нужен документ, который описывает AT версию 0.25.0.0, чтобы узнать, какие команды включены. Существует лучший способ, описанный в следующем разделе этой статьи, но перед тем, как перейти к нему, попробуем еще одну AT команду и посмотрим, что произойдет.

Включите Caps Lock у себя на компьютере и введите AT+CWLAP. Когда вы увидите AT+CWLAP в окне терминала PuTTY, удерживая клавишу Ctrl, нажмите сначала клавишу M, а затем J. Отпустите клавишу Ctrl. Через несколько секунд окно терминала должно выглядеть так, как показано на скриншоте ниже.

Результаты вывода команды AT+CWLAP для ESP8266

AT+CWLAP заставляет ESP8266 перечислить все доступные Wi-Fi точки доступа. В приведенном выше случае были найдены две точки доступа: одна называется «ATT936», а вторая – «tracecom 2.4». Разумеется, ваши результаты будут отличаться и должны включать вашу собственную Wi-Fi сеть, а также сети ваших соседей.

Закройте окно сеанса терминала PuTTY и нажмите OK, когда PuTTY спросит, уверены ли вы.

ESP Flash Download Tool

Хотя это редко упоминается в интернете, Espressif, разработчики микросхемы ESP8266, создали некоторую часть программного обеспечения для обновления прошивки в своих чипах. Это ESP Flash Download Tool, и этот инструмент доступен здесь. Скачайте, разархивируйте и установите последнюю версию на вашем компьютере; на момент написания статьи это FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar.

Запустите инструмент, и вы должны будете увидеть два открывшихся окна: окно графического интерфейса (GUI) с полями ввода информации и терминальное окно, в котором ведется лог выполненных действий.

Окно графического интерфейса (GUI) ESP Flash Download ToolТерминальное окно ESP Flash Download Tool

Стоит отметить несколько вещей, но нет поводов для беспокойства:

  • окно (GUI) идентифицируется как V2.3, в то время как окно журнала идентифицируется как V2.4. По-видимому, окно GUI отмечено неправильно;
  • поля выбора COM порта и скорости передачи в окне GUI могут уже содержать данные;
  • поля ввода адресов в окне GUI могут уже содержать данные;
  • окно лога уже может содержать данные.

Получение последней прошивки

У Espressif есть страница, на которой размещается последняя версия прошивки. Перейдите на страницу bbs.espressif.com, нажмите на запись SDKs в списке Downloads, а затем кликните на «latest release» в разделе Announcements. На момент написания статьи на этой странице можно было увидеть следующее:

Страница с последней версией прошивки ESP8266

Последняя версия Non-OS SDK (Software Development Kit) – это то, что нам нужно, и, похоже, что, если вы кликните на «Latest Version: 1.4.0«, то получите последнюю версию. Но это не совсем так; обратите внимание, что имеется доступный патч, указанный как esp_iot_sdk_v1.4.1_15_10_22. Это не патч; это исправленная версия прошивки версии 1.4.0. Нам нужен он и bin файлы AT_v0.50. Кликните по очереди на каждом из них и загрузите файлы.

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

Возможно, вы заметили, что есть раздел для скачивания документов. Все они содержат качественную информацию, но иногда существенная её часть теряется при переводе с китайского на английский. На данный момен не забудьте получить последние версии ESP8266 AT Instruction Set и Espressif IOT SDK User Manual.

Установка прошивки

Запустите ESP flash download tool и убедитесь, что ни в одном чекбоксе в левом верхнем углу окна GUI не поставлена галка. Введите COM порт, который вы используете, и скорость передачи 115200 в полях ввода в нижней части окна. Обратите внимание, что при вводе данных они записываются в окне журнала.

Подайте питание на свою сборку для программирования ESP и подключите её к компьютеру. Нажмите и удерживайте кнопку Reset, а затем нажмите и удерживайте кнопку Flash. Отпустите кнопку Reset, а затем отпустите кнопку Flash. Нажмите кнопку START окне GUI инструмента прошивки ESP. Программа загрузки флэш-памяти должна проверить ESP8266 в вашей сборке и создать отчет, похожий на тот, что приведен ниже. Нажмите и отпустите кнопку Reset на вашем макете, чтобы выйти из режима прошивки ESP8266 и возобновить нормальную работу.

Окно графического интерфейса ESP Flash Download Tool. Вывод информации о микросхеме ESP8266Терминальное окно ESP Flash Download Tool. Вывод информации о микросхеме ESP8266

Обратите внимание, что теперь окно GUI содержит информацию об ESP8266, включая размер флэш-памяти (в примере 8 Мбит), тактовую частоту (в примере 26 МГц) и два MAC-адреса для чипа. Такая же информация содержится в окне журнала.

Затем кликните в окне GUI по чекбоксу с надписью «SpiAutoSet«, что заставит инструмент загрузки автоматически выбрать правильные размер флэш-памяти и тактовую частоту.

Теперь нам нужно выбрать файлы для установки в ESP8266 и установить начальный адрес памяти для каждого файла. Чтобы обновить ESP чип, необходимо правильно установить четыре файла. Откройте «Руководство пользователя Espressif IOT SDK» и найдите раздел о записи образов во флэш-память. В версии 1.4 руководства он начинается со страницы 20. Затем найдите подраздел, который описывает версию поддерживаемую Cloud Update (FOTA), и в этом подразделе найдите таблицу о размере флэш-памяти в вашем ESP8266. В этом примере размер флэш-памяти составляет 8 Мбит, что равно 1024 килобайт, следовательно, в таблице 2 на странице 25 руководства содержится информация, необходимая для примера. Посмотрим на рисунок ниже.

Таблица адресов флэш-памяти для загрузки файлов прошивки ESP8266

Необходимы эти четыре файла: esp_init_data_default.bin, blank.bin, boot.bin и user1.bin. Адрес, по которому должен быть установлен каждый из файлов, отображается рядом с именем файла. Первые три из необходимых файлов находятся в каталоге esp_iot_sdk_v1.4.1_15_10_22, ранее скачанном с bbs.espressif.com, а четвертый расположен в AT_v0.50 bin files. Перейдите туда, где находятся эти загруженные файлы, и скопируйте пути к ним в поля ввода в верхней части окна GUI программы Flash Download Tool; введите правильный адрес для каждого файла в поле рядом с именем файла. Выполните следующие шаги для каждого файла:

  • кликните внутри поля ввода «set firmware path«;
  • кликните по кнопке справа от поля ввода;
  • перейдите к месту хранения файла и кликните по файлу. GUI автоматически введет путь к файлу в поле ввода;
  • введите правильный адрес (из таблицы) для каждого файла.

Обратите внимание, что файлы, которые должны быть загружены, могут быть не такими, как те, что указаны в таблице в этом примере, но будут близки к ним.

Теперь кликните на четыре флажка слева от имени каждого из файлов. Окно графического интерфейса программы Flash Download Tool должно быть похоже на рисунок ниже. Дважды проверьте адреса по таблице.

Настройка параметров прошивки ESP8266 в программе Flash Download Tool

На своем макете прошивки ESP нажмите и удерживайте кнопку Reset, а затем нажмите и удерживайте кнопку Flash. Отпустите кнопку Reset, а затем отпустите кнопку Flash. Нажмите кнопку START окне GUI инструмента прошивки ESP. Должна начаться загрузка, и её прогресс должен быть показан в окне графического интерфейса и окне журнала Flash Download Tool, как показано ниже.

Отображение процесса загрузки прошивки ESP8266 в терминальном окне Flash Download Tool

Как показано выше, успешная операция прошивки флэш-памяти приведет к тому, что все файлы будут отправлены в ESP8266, а COM порт будет закрыт.

Проверка успешности прошивки

Когда операция прошивки будет завершена, закройте программу Flash Download Tool. Снимите питание с макета программирования ESP, а затем снова подключите питание.

Снова запустите PuTTY, выберите сохраненный сеанс ESP8266 и нажмите кнопку Load (Загрузить). Это должно поместить ранее выбранные вами настройки COM порта и скорости передачи в соответствующие окна. Нажмите Open (Открыть), и откроется новое окно сеанса терминала PuTTY.

Включите Caps Lock у себя на компьютере и введите AT, но не нажимайте Enter. Вы должны увидеть AT в окне терминала PuTTY. Введите символ +, а затем GMR. Когда вы увидите AT+GMR в окне терминала PuTTY, удерживая клавишу Ctrl, нажимите сначала клавишу M, а затем J. Отпустите клавишу Ctrl. В окне терминала PuTTY вы должны увидеть информацию о прошивке ESP8266, аналогичную показанной ниже.

Вывод информации о прошивке ESP8266 в окне терминала PuTTY

Как вы можете видеть, в ESP8266 очевидно установлена новая прошивка. Она была обновлена с SDK версии 1.1.1 на SDK версии 1.4.0. Кроме того, также была установлена соответствующая версия 0.50.0.0 набора AT команд.

Закройте окно сеанса терминала PuTTY и нажмите OK, когда PuTTY спросит, уверены ли вы.

И напоследок

Пара тренировок, и весь процесс обновления прошивки займет гораздо меньшее время, чем требуется для прочтения данной статьи. Как только вы сделаете это, то будете уверены в том, что находится внутри вашего ESP8266 и сможете сосредоточиться на своем Wi-Fi проекте, вместо угадывания прошивки ESP и надежды на поддержку необходимого набора AT команд.

Оригинал статьи:

Теги

802.11ESP-01ESP8266Firmware / прошивкаMCUPuTTYWi-FiWi-Fi модульМикроконтроллерПреобразователь USB–TTL

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

подключение и обновление прошивки – esp8266

Модуль esp8266 подключен USB-TTL на 3,3 вольта

ESP8266 — быстрый старт для начинающих

Как проверить ESP8266

Как быстро подключить ESP8266

Как правильно подключить ESP8266

Как подключить ESP8266 через Arduino

Как подключить ESP8266 через RaspberryPi

Как настроить ESP8266

Как обновить прошивку ESP8266

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

Как проверить ESP8266

Для проверки ESP8266, который вы только что  приобрели, потребуется источник стабилизированного напряжения на 3,3 вольта.

Внимание! Допустимый диапазон напряжения питания модуля ESP8266 от 3,0 до 3,6 вольт. Подача повышенного напряжения питания на модуль гарантированно приведет к выходу ESP8266 из строя.

Чтобы проверить ESP8266 ESP-01 достаточно подключить три пина: VCC и CH_PD (chip enable) к питанию 3,3 вольт, а GND к земле. Если у вас не ESP-01, а другой модуль и на нем выведен GPIO15, то дополнительно еще потребуется подключить GPIO15 к земле.

При успешном старте заводской прошивки на модуле ESP8266 загорится красный светодиод (индикатор питания, на некоторых версиях модуля, например ESP-12, может отсутствовать) и пару раз мигнет синий (это индикатор передачи данных от модуля к терминалу по линии TX-RX, может иметь другой цвет) и в вашей беспроводной сети должна появится новая точка доступа с именем «ESP_XXXX», которую вы сможете увидеть с любого WiFi устройства. название точки доступа зависит от производителя прошивки и может быть другим, например AI-THINKER_AXXXXC. Если точка доступа появилась, то можно продолжить эксперименты далее, если нет, то еще раз проверьте питание, CH_PD, GND и если все подключено правильно то, скорее всего, у вас неисправный модуль, но есть надежда, что прошивка в модуле с нестандартными настройками и, возможно, вам поможет перепрошивка.

Как быстро подключить ESP8266

В минимальный набор для подключения и прошивки модуля ESP8266 входит:

1. Собственно сам модуль ESP8266

2. Беспаечная макетная плата

3. Набор проводов папа-мама для макетной платы или DUPONT M-F кабель

4. USB-TTL конвертер (ищите с переключателем на 5 и 3,3 вольт, либо версия на 3,3 вольта) на базе FTDI, PL2303 или аналогичном чипе. Идеальным будет вариант, когда на USB-TTL адаптере будут выведены DTR и RTS — это позволит быстро загружать прошивку из Arduino IDE, UDK, Sming без ручного переключения GPIO0 на землю.

В случае если у вас USB-TTL конвертер на 5 вольт, то вам дополнительно потребуется стабилизатор питания на чипе 1117 или аналогичном (ток не менее 300 мА, желательно с конденсаторной обвязкой в виде готового модуля, но сойдет и просто микросхема) и источник питания (для 1117 отлично подойдет пятивольтовая зарядка от смартфона). Вообще, лучше не питать ESP8266 от USB-TTL конвертера или Arduino, а использовать отдельный источник питания — это избавит вас от множества проблем.

В расширенный набор для постоянной и комфортной работы с модулем ESP8266 вам дополнительно потребуются разъемы питания, DIP переключатели, резисторы и светодиоды. Я также использую недорогой USB монитор (Charger Doctor — листайте список  дальше, ищите в белом корпусе), который позволяет видеть потребляемый ток (с китайской точностью) и немного защищает шину USB от короткого замыкания по питанию (при КЗ дисплей монитора начинает мигать)

1. Модулей ESP8266 достаточно много и первое, что вам потребуется, это идентифицировать ваш модуль и определить его распиновку. На нашем сайте есть замечательная таблица с фотографиями модулей и их распиновкой. Далее в этом кратком пособии для начинающих, мы будем подразумевать, что работаем с модулем ESP8266 ESP-01 V090. Если у вас другой модуль (например, ESP-07 или ESP-12) и на нем выведен пин GPIO15 (MTDO, HSPICS), то этот пин необходимо притянуть к земле как для обычного старта модуля, так и для режима прошивки.

2. Убедиться два раза, что питающее напряжение для модуля составляет 3,3 вольта.

Внимание! Допустимый диапазон напряжения питания модуля ESP8266 от 3,0 до 3,6 вольт. Подача повышенного напряжения питания на модуль гарантированно приведет к выходу ESP8266 из строя. Питающее напряжение может быть и существенно ниже 3 вольт, заявленных в документации

3. Если вы счастливый обладатель USB-TTL конвертера на 3,3 вольта то подключите модуль, как на рисунке ниже (левая часть). Если у вас только пятивольтовый USB-TTL, то используйте в качестве инструкции правую часть рисунка.

На первый взгляд схема справа может показаться «лучше» из-за использования отдельного источника питания, но это не совсем так — при использовании USB-TTL конвертера на 5 вольт желательно добавить делитель на резисторах для согласования пятивольтовых и трехвольтовых уровней логики либо модуль преобразования уровней.

Внимание! На правом рисунке подключение UTXD (TX) и URXD (RX) модуля ESP8266 к пятивольтовой TTL логике вы осуществляете на свой страх и риск! Документация на SoC ESP8266 сообщает, что модуль толерантен только к 3.3 вольтовой логике. В большинстве случаев подключение ESP8266 к пятивольтовой логике НЕ ПРИВОДИТ к выходу из строя ESP8266, однако именно вашему модулю может не повезти. Для исключение риска выхода модуля ESP8266 из строя рекомендуется использовать USB-TTL конвертер на 3,3 вольта, либо TTL 5v-3.3v конвертеры либо делитель на резисторах (на рисунке не показан). Более подробно о согласовании логических уровней можете прочитать здесь. Рисковые гики, вроде меня, подключают ESP8266 к пятивольтовой TTL логике напрямую и не заморачиваются.

Внимание! На правом рисунке показано подключение стабилизатора питания 1117 без дополнительной обвязки.  Это работает, но все же, мы рекомендуем использовать схему подключения 1117 с конденсаторной обвязкой — сверьте схему подключения с даташитом на ваш стабилизатор либо используйте готовый модуль на базе 1117.

ESP8266 — подключение

Красный — питание 3,3в

Черный — GND

Желтый — на стороне ESP8266 — RX, на стороне USB-TTL — TX

Зеленый  — на стороне ESP8266 — TX, на стороне USB-TTL — RX

Оранжевый — CH_PD (CHIP ENABLE) — должен быть всегда подтянут к питанию

Синий — GPIO0 — подключен через выключатель к земле для включения режима перепрошивки модуля. Для обычного старта модуля GPIO0 можно оставить никуда не подключенным.

Розовый на правой схеме — нестабилизированное питание 5-8 вольт

4. Для старта модуля разорвите цепь GPIO0 — GND и можете подавать питание (причем именно в таком порядке: сначала убеждаемся, что GPIO0 «висит в воздухе», затем подаем питание на VCC и CH_PD)

Внимание! В вышеприведенных, реально работающих, примерах подключения ESP8266 используется подключение выводов ESP8266 «напрямую» к земле и питанию, либо «висячее в воздухе», как у нас никуда не подключен RESET, что является абсолютно неправильным и пригодно только для пары первых экспериментов, хотя и вполне работоспособно на подавляющем большинстве модулей. «Напрямую» к питанию подключается только вывод VCC, остальные выводы: CH_PD, RESET, GPIO0, GPIO2, должны быть подтянуты (pullup) к питанию (VCC) через резистор от 4,7 до 50 кОм. «Напрямую», к минусу (общему проводу) питания подключаем только GND, а GPIO0 подтягиваем (pulldown) тоже через резистор до 10k к GND для перевода модуль в режим загрузки прошивки. Если вы планируете и дальше экспериментировать с ESP8266, то сделайте грамотное подключение, впрочем так же как и для любых других микроконтроллеров. Детальное описание pullup и pulldown выходит за рамки данной статьи, но вы сможете легко нагуглить описание правильного подключения портов ввода-вывода. «Правильное» подключение позволит вам избежать множества «чудес» и проблем и будет неизбежно необходимым при возникновении затруднений с запуском или перепрошивкой модуля ESP8266.

Как правильно подключить ESP8266

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

Схема подключения ESP8266 (без автозагрузки прошивки, прошиваемся предварительно установив перемычку BURN и перезагрузив модуль)

Схема подключения с поддержкой автозагрузки прошивки из Arduino IDE, UDK, Sming. Для Flash Download Tool и XTCOM_UTIL, возможно, потребуется отключение RTS/DTR. Если RTS и DTR вам отключать неудобно, то можно добавить в схему перемычки

На этих схемах не показано подключение ADC и свободных GPIO — их подключение будет зависеть от того, что вы захотите реализовать, но если хотите стабильности, то не забудьте притянуть все GPIO к питанию (pullup), а ADC к земле (pulldown) через подтягивающие резисторы.

Резисторы на 10k могут заменены на другие от 4,7k до 50k, за исключением GPIO15 — его номинал должен быть до 10k. Номинал конденсатора, который сглаживает высокочастотные пульсации, может быть другим.

Соединение RESET и GPIO16 через резистор deep sleep на 470 Ом вам потребуется, если вы будете использовать режим deep sleep: для выхода из режима глубокого сна модуль перезагружает сам себя, подавая низкий уровень на GPIO16. Без этого соединения глубокий сон будет вечным для вашего модуля.

На первый взгляд на этих схемах кажется, что GPIO0, GPIO2, GPIO15, GPIO1 (TX), GPIO3 (RX) заняты и вы не можете их использовать для своих целей, но это не так. Высокий уровень на GPIO0 и GPIO2, низкий на GPIO15 требуются только для старта модуля, а в последующем вы можете использовать их по своему усмотрению, только не забудьте обеспечить требуемые уровни до перезагрузки модуля.

Можно использовать и TX, RX как GPIO1 и GPIO3 соответственно, не забывая о том, что при старте модуля любая прошивка будет дергать TX, отправляя отладочную информацию в UART0 на скорости 74480, но после успешной загрузки вы можете использовать их не только как UART0 для обмена данными с другим устройством, но и как обычные GPIO.

Для модулей, имеющих меньшее количество разведенных пинов, как например, ESP-01 подключение неразведенных пинов не требуется, т.е. на ESP-01 разведены только: VCC, GND, GPIO0, GPIO2, CH_PD и RESET — вот только их и подтягиваете. Нет никакой необходимости припаиваться прямо к микросхеме ESP8266EX и притягивать неразведенные пины, только если вам это действительно необходимо.

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

Внимание! Даже эти схемы нельзя назвать «идеальными». Совершенству нет предела: удобно подключить второй USB-TTL к UART1 (c ESP8266 можно взять только GND и UTXD1, т.е. GPIO2) для подключения отладочного терминала (потребуется второй USB-TTL конвертер) — тогда можно будет прошивать модуль ESP8266 через UART0 без отключения терминала отладки на UART1. Неплохо будет подключить резисторы малого номинала к выводам обоих UART, поставить диод в линию RTS, добавить конденсатор в линию питания для гашения низкочастотных импульсов и т.д. Очень удобно, например, сделано в этой отладочной плате: на все GPIO подключены светодиоды, на ADC подключен фоторезистор, но жаль, что нет кнопки RESET и перемычка только одна на GPIO0.

Правильным будет сказать вам, что не существует идеальной и в тоже время универсальной схемы подключения ESP8266. Все дело в том, что очень многое зависит от прошивки, которую вы собираетесь туда залить. Вышеприведенные схемы рассчитаны на новичков, которые только начинают осваивать ESP8266, для экспериментов. Для реальных проектов, возможно, вам придется немного изменить схему. Например, для прошивки TCP2UART нужно подключить RTS к GPIO15, а CTS к GPIO13. Также в реальных проектах рекомендую уделить особое внимание питанию.

Подключение ESP8266 через Arduino

Если у вас под рукой не оказалось USB-TTL конвертера на 3,3в, но есть Arduino со встроенным USB-TTL конвертером, то можно использовать такую схему подключения

ESP8266 подключение через Arduino

На что обратить внимание:

1. Arduino Reset подключен к GND (синий провод) чтобы не запускался микроконтроллер на Arduino, в данном виде мы используем Arduino как прозрачный USB-TTL конвертер

2. RX и TX подключены не «на перекрест», а прямо — RX — RX (зеленый), TX — TX (желтый)

3. Все остальное подключено так же, как и в предыдущих примерах

Внимание! В этой схеме также требуется согласовывать уровни TTL 5 вольт Arduino и 3.3 вольта на ESP8266, однако неплохо работает и так.

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

Существует и другая схема подключения Arduino и ESP8266 с использованием SoftSerial. В виду того, что для библиотеки SoftSerial скорость порта в 115200 является слишком большой и не гарантирует стабильную работу, мы не рекомендуем использовать такой способ подключения, хотя есть люди, у которых все стабильно работает (правда только на скорости 9600). Скетч для такой схемы подключения (спасибо nec3540A)

Подключение ESP8266 через RaspberryPi

Да, можно и «из пушки по воробьям», если под рукой нет вообще никакого USB-TTL конвертера. Подключение через малинку аналогично Arduino, но не такое удобное, т.к. дополнительно потребуется стабилизатор питания на 3,3 вольта. RX, TX, GND малинки подключаем к ESP8266, VCC и GND берем со стабилизированного источника питания на 3,3 вольта. Обратите внимание на то, что необходимо соединить GND всех устройств: малинки, стабилизатора и ESP8266. Брать 3,3 вольта питания с малинки для ESP8266 я лично не пробовал, поэтому вам предлагать такой вариант не буду. Если встроенный в вашу версию малины стабилизатор держит до 300 миллиампер дополнительной нагрузки, то подключение ESP8266 вполне возможно. Если сами захотите рискнуть — пожалуйста.

Настройка ESP8266

Итак, ESP8266 модуль к USB порту мы подключили (через USB-TTL или Arduino) теперь нужно убедится, что драйвера к вашим USB-TTL или Arduino встали корректно и в системе появился новый виртуальный последовательный порт. Вам понадобится программа — терминал последовательного порта. Можете использовать любую на ваш вкус, но она должна удовлетворять следующему требованию: каждая команда, которую вы отправляете с компьютера в последовательный порт должна завершаться символами CR+LF.

Большой популярностью пользуется программа CoolTerm (есть версии для Win/MAC/Linux).

Ваш покорный слуга является автором open-source программы ESPlorer, получившей международное признание. ESPlorer позволит вам не вводить AT команды вручную и легко работать с lua скриптами под NodeMCU (об этом в другой раз) и вы вполне можете использовать ее и как обычный терминал. Обсуждение ESPlorer на нашем форуме и на esp826.com

С подключением к последовательному порту придется немного поколдовать: в связи с разнообразием прошивок для ESP8266, подключение может осуществляться на разных скоростях. Нужную скорость можно определить путем простого перебора трех вариантов: 9600, 57600 и 115200. Как осуществить перебор? Подключаетесь в терминальной программе к вашему виртуальному последовательному порту выставив следующие параметры: 9600 8N1, затем перезагружаете модуль, отключив CH_PD (chip enable) от питания (USB-TTL при этом остается подключенным к USB) и снова включаете (т.е. просто передергиваете CH_PD, почему не передергиваем питание — читаем здесь, также можно кратковременно замкнуть RESET на землю для перезагрузки модуля) и наблюдаете данные в терминале. Во-первых, светодиоды на ESP8266 должны гореть как описано в начале статьи в разделе Проверка ESP8266. Во-вторых, в терминале вы должны увидеть «мусор» из разных символов, оканчивающийся строкой «ready». Если «ready» мы не видим, то переподключаемся терминалом на другой скорости и снова перезагружаем модуль.

На одном из вариантов скорости «ready» вы все-таки увидите — поздравляем, ваш модуль готов к работе.  Если нет, то добро пожаловать к нам на форум — мы постараемся помочь, но предварительно почитайте эту тему.

Немного подробнее о «мусоре». Дело в том, что при старте прошивки, UART модуля ESP8266 переключается на скорость передачи 74 880 (вот такие забавные эти китайцы) выдает в UART отладочную информацию, затем переключает скорость порта на 115200 (ну или на 9600 или 57600 в зависимости от версии прошивки), так вот эта отладочная информация и видится нам как мусор, т.к. мы подключаемся к модулю на другой скорости. Можете подключится к ESP8266 на скорости 74 880 (ESPlorer поддерживает эту скорость) и вы эту отладочную информацию увидите, будет что-то вроде этого:

wdt reset load 0x40100000, len 25052, room 16 tail 12 chksum 0x0b ho 0 tail 12 room 4 load 0x3ffe8000, len 3312, room 12 tail 4 chksum 0x53 load 0x3ffe8cf0, len 6576, room 4 tail 12 chksum 0x0d csum 0x0d

wdt reset

load 0x40100000, len 25052, room 16

tail 12

chksum 0x0b

ho 0 tail 12 room 4

load 0x3ffe8000, len 3312, room 12

tail 4

chksum 0x53

load 0x3ffe8cf0, len 6576, room 4

tail 12

chksum 0x0d

csum 0x0d

НО! не увидите «ready» и не сможете управлять модулем, пока не переподключитесь на ту скорость, на которой работает прошивка.

Что делать дальше

Если у вас новый модуль, то, скорее всего, в нем прошита одна из старых кастомных AT прошивок. Скорее всего это какой-нибудь AI-THINKER AT v0.16 SDK v0.9.2. Проверить версию прошивку вы можете командой «AT+GMR», т.е. прямо в терминальной программе набираете AT+GMR без кавычек и жмете Enter. Модуль должен ответить «OK» и выдать версию прошивки (например, «0016000092» — в разных версиях AT прошивок формат вывода версии отличается). Управление модулем ESP8266 AT командами заслуживает отдельной статьи, однако вы легко сможете разобраться с этим и сами, воспользовавшись одним из наших справочников по AT командам:

На момент написания этой статьи актуальная версия прошивки для ESP8266:

версия AT команд v0.21, версия SDK v0.9.5

Обновление прошивки ESP8266

Модуль ESP8266 замечателен тем, что не требует специального программатора — обновление прошивки производится на том же железе, на котором вы подключаете модуль ESP8266 к компьютеру, т.е. тоже через USB-TTL конвертер (ну или Arduino или RPi). Для обновление прошивки на модуле ESP8266 проделайте следующее:

 1. Скачайте новую версию прошивки с нашего сайта из раздела ESP8266 прошивки (вот ссылка на последнюю версию прошивки AT 0.21 SDK 0.9.5 на момент написания этой статьи)

2. Скачайте одну из утилит для прошивки ESP8266 в зависимости от вашей операционной системы из раздела ESP8266 Утилиты с нашего сайта

для Win систем подойдет XTCOM UTIL (удобно работать, если прошивка состоит из одного файла), мультиплатформенный esptool (требуется python, нужно указывать параметры в командной строке),  FLASH DOWNLOAD TOOL (много настроек, удобно прошивать прошивки, состоящие из нескольких файлов, позволяет «собрать» прошивку в один файл из нескольких). Также вы найдете и другие программы для прошивки ESP8266 — попробуйте разные и пользуйтесь той, которая вам больше понравится.

3. Отключите от последовательного порта вашу терминальную программу

4. Отключите CH_PD от питания, подключите GPIO0 модуля к GND, подключите обратно CH_PD модуля.

5. Запускайте программу для прошивки модуля и загружайте новую прошивку в модуль ESP8266.

Загрузка прошивки в модуль обычно осуществляется на скорости 115200, но режим прошивки модуля поддерживает автоопределение скорости и прошивка может быть осуществлена на скорости от 9600 и выше. Максимальная скорость зависит от многих факторов (вашего USB-TTL конвертера, длины проводов и прочего) и может быть определена экспериментально на конфигурации именно вашего оборудования.

Все последние версии прошивок загружаются с нулевого адреса (0x00000).

Обсуждение этой статьи на нашем форуме

Обсуждение проблем при подключении ESP8266 на нашем форуме

В статье Обновление прошивки ESP8266 подробно описана загрузки прошивки в модуль с помощью программы XTCOM_UTIL.

Использованная литература

ESP8266 Datasheet — Specifications V4.1 — 08.09.2014 English

ESP8266 Datasheet — Beginners Guide V0.4.1 — 17.09.2014 English

ESP8266 AT Instruction Set v0.21 23.01.2015

ESP8266 Datasheet — Module Application Design Guide — 20.08.2014 English

Xtensa Instruction Set Architecture (ISA) Reference Manual

Описание, загрузка и настройка ESPEasy

Готовая прошивка «ESP Easy» позволит легко превратить любой модуль на базе ESP в многофункциональный сенсор или модуль для умного дома под управлением таких систем, как OpenHab и Domoticz. ESP Easy является отличным инструментом для изучения протокола MQTT.

Всё что вам необходимо сделать — это один раз загрузить прошивку ESP Easy на ваш модуль ESP, а дальше все настройки системы происходят в браузере с помощью удобного веб-интерфейса. Для ежедневной работы с модулем не нужны никакие дополнительные программы.

Последней стабильной версией прошивки ESP Easy является R120. Она хорошо подходит не только для домашних экспериментов, но и для производственных прототипов. Модуль с ESP Easy на борту может выступать в роли низкоуровневого управляющего устройства, но этот функционал в системе еще не полностью стабилен. Полный список возможных подключаемых дачиков, устройств ввода-вывода, реле и дисплеев можно посмотреть здесь.

Прошивка ESP Easy может быть установлена практически на любые платы на базе ESP8266. Вы можете прошить как самые простые модули типа ESP-01 или ESP-12, так и устройства типа NodeMCU development board, Wemos D1 и практически все устройства от производителя Sonoff. После прошивки вы сможете работать с GPIO 0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, A0. Пин номер 9 не рекумендуется использовать из-за нестабильной работы. На модулях Sonoff будут доступны пины 0 (кнопка), 12 (Реле), 13 (Светодиод) и, возможно, еще несколько в зависимости от конкретной модели устройства.

Поддерживаются следующие протоколы для передачи данных и работы с системами умных домов: OpenHAB MQTT, Domoticz HTTP и MQTT, PiDome MQTT, ThingSpeak, EmonCMS, протокол HTTP и другие. Подробнее про работу с ними будет написано в разделе с примера использования.

С чего начать?

В большинстве случаев модули ESP продаются с предустановленными прошивками AT firmware или NodeMCU LUA firmware. Начать делать сенсоры на базе ESPEasy легко: нужно просто заменить стандартную прошивку на ESPEasy, и можно приступать к работе. Это можно сделать с помощью программы flashtool (к сожалению, она доступна только на Windows) или с помощью Arduino IDE. Во время установки мы будем действовать по следующей схеме:

1. С официального сайта скачать стабильную прошивку
В архиве также будет программа flash tool для прошивки

2. Подключить модуль ESP к компьютеру 
Используем USB/UART переходник для простых плат типа ESP-01 или просто подключаем Micro-USB к платам типа NodeMCU dev board. 

3. Загружаем ESPEasy на плату с помощью flash tool или Arduino IDE
Обратите внимание на то, что GPIO должен быть соединен с GND при включении для запуска режима прошивки на плате. 

4. Перезапускаем модуль ESP. Появляется WiFi сеть с названием  «ESP_Easy_0». Подключаемся к ней
(в версии прошивки 2.0 точка доступа будет называться ESP_0) 
Если страница настройки не открылась автометически, необходимо набрать 192.168.4.1 в вашем браузере

5. В появившемся окне настраиваем подключение к вашей домашей WiFi сети и нажимаем Connect

6. Модуль ESP перезагрузится и подключится к вашей домашней сети

7. Откройте в браузере новый IP адрес платы ESP и начинайте собирать данные с сенсоров

Поздравляем, всё настроено, и вы можете начать работать с ESPEasy!

Скачиваем прошивку

Скачиваем стабильную версию прошивки с официального сайта — ESPEasy R120.

Подключаем модуль ESP к компьютеру

Для всех, кто только начинает разбираться с EPS, MQTT и умными домами, мы рекомендуем обратить внимание на модуль NodeMCU ESP8266 (он же NodeMCU dev board). У него есть ряд плюсов: встроенный преходник USB/UART, большое количество GPIO, аналоговый пин A0, не нужно подключать GPIO к GND для прошивки, наличие питания 5 и 3.3 вольта. Просто подключаете плату к компьютеру с помощью Micro-USB кабеля и начинаете работать. NodeMCU dev board позволит вам сэкономить большое количество времени! При программировании обратите внимание, что номер ножки не соответствует номеру GPIO.

Также встроенный переходник USB/UART есть на плате Wemos D1 Mini:

Если у вас плата без переходника, например, ESP-01 или ESP-12, или вы хотите прошить модули Sonoff, то вам понадобится переходник USB/TTL.

В обоих случаях дополнительно вам понадобится установить на компьютер драйвер для вашего встроенного или внешнего переходника USB/TTL.

Загрузка прошивки ESPEasy с помощью Flash Tool

Данный способ подходит только для компьютеров с Windows, но он самый простой! Сначала необходимо проверить к какому порту компьютера подключен наш ESP помуль. Подключаем модуль к компьютеру по USB. Открываем «Диспетчер устройвств», смотрим вкладку «Порты (COM и LPT)» и видим нашу плату. В моем случае порт COM4. Если ваше устройство не отображается в списке портов — значит вы не поставили драйвер для USB/TTL переходника.

Обратите нимание, что перед прошивкой модулей с внешнем адаптером USB/TTL их необходимо перевести в режим загрузки программного обеспечения. Для этого необходимо соединить GPIO0 на плате ESP с GND, воткнуть переходник в плату, а потом уже в USB. Если у вас NodeMCU или Wemos, то этого делать не нужно.

Распаковываем скаченный архив ESPEasy_R120.zip в папку ESPEasy_R120 и запускаем файл flash.cmd. Откроется черное окно, в котором необходимо будет ответить на несколько вопросов.

1 вопрос: Comport (example 3,4…) — необходимо ввести номер порта, к которому подключен модуль ESP и нажать Enter. Я ввожу 4. Enter.

2 вопрос:  Flash size (example 512, 1024 or 4096) — необходимо ввести количество памяти, которое доступно на нашей плате. Сколько памяти на вашей плате вы можете посмотреть в этой таблице. Для платы NodeMCU dev board вводим 4096. Enter.

3 вопрос: Build — необходимо ввести номер версии прошивки, которую вы загружаете. В нашем случае вводим 120. Enter.

В чёрном окне проскочет несколько строк с системным кодом, и начнут появляться точки, и через некоторое время система напишет, что загрузка завершена. Вы увидете такой экран:

Нажимаем любую клавишу. Прошивка ESPEasy успешно загружена на ваш модуль! Поздавляю! Переходим к пункту «Подключение и первичная настройка» в этой статье.

Возможные проблемы с Flash Tool

Если вы не видите своё устройство в диспетчере устройств, значит у вас не установлен драйвер переходника USB/TTL.

Если файлы не распаковать в папку, а просто запустить из архива, то после вопросов система выдаст ошибку, т.к. не сможет работать с файлом esptool.exe. Просто распакуйте архив в папку и заново запустите flash.cmd.

Если вам так и не удалось прошить модуль ESP с помощью flash.cmd, но плата видна в системе, то вы можете сделать прошивку программой ESPEasy Flasher. В ней надо будет только выбрать порт и соответствующую прошивку. В скаченной папке с прошивками будет 3 разных файла прошивок для плат с разным размером памяти.

Если у вас не получилось сделать загрузку ни одним из этих способов — вы можете попробовать сделать загрузку через Arduino IDE.

Загрузка прошивки ESPEasy с помощью Arduino IDE

Данный способ отлично подходит, если вы уже загружали свои собственные скетчи на плату через Arduino IDE и сейчас хотите попробовать поработать с ESPEasy. Если же вы раньше просто программировали ardunino и ни разу не прошивали esp8266, то предварительно вам необходимо подготовить Arduino IDE. Подробную инструкцию вы можете найти в нашей статье. Через Arduino IDE вы можете сделать загрузку как на Windows, так и на Mac OS.

В папке, которую вы скачали с официального сайта, кроме файлов последней прошивки и программы для загрузки также есть папка Source. В ней находятся два папки: в одной — необходимые библиотеки, во второй — файлы нашей прошивки. Копируете библиотеки из папки librares в папку с библиотеками ArduinoIDE на вашем компьютере.

На компьютерах Windows эта папка обычно: C:\Users\USERNAME\Documents\Arduino\librares — в папке с вашими документами.

На Mac OS: \Users\USERNAME\Documents\Arduino\librares — в папке с вашими документами.

Дальше заходим во вторую папку из скаченного архива (\Source\ESPEasy)  и запускаем оттуда файл ESPEasy.ino. Откроется Arduino IDE.

Теперь в меню «Инструменты» необходимо выбрать порт, тип платы, размер памяти. Какие параметры выбирать для разных плат и как настраивать Arduino IDE для работы с ESP вы может прочитать в нашей отдельной статье.

Для NodeMCU dev board выбираем параметры как на картинке + выбираем свой порт.

Заходим в меню «Скетч» и выбираем «Загрузка»

В Arduino IDE внизу в чёрной консоли пробежит несколько строчек системных сообщений, потом появится несколько строчек с точками и программа напишет, что загрузка прошла успешно. Если программа выдаёт строчки с оранжевыми ошибками, то скорее всего у вас проблемы с подключение платы к компьютеру.

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

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

Теперь на своём компьютере откройте список доступных Wi-Fi сетей — в списке должна появиться сеть ESP_0 (В некоторых версиях прошивки возможно будет Esp_Easy_0). Подключитесь к ней (стандартный пароль configesp).

Если ваш браузер не открыл автоматически страницу настройки EspEasy, то в адресной строке браузера наберите 192.168.4.1. В появившемся окне необходимо выбрать вашу домашнюю wi-fi, ввести пароль от нее в поле password и нажать кнопку Connect.

Вы увидите сообщение о том, что система перезагружается.

После этого ваш компьютер отключится от сети Esp и подключится обратно к вашей домашнией Wi-Fi сети. В браузере покажется ip адрес вашего esp. В адресной строке вашего браузера введите ip esp модуля (например, 192.168.1.65). Откроется окно с основный информацией о модуле esp, на котором вы можете посмотреть: беспрырывное время работы модуля, уровень сигнала, ip адрес модуля и точки доступа, версию прошивки, MAC адреса, информация о свободной памяти и список других esp модулей в сети.

Вверху расположено меню для перехода в разделы системы. Зайдите во вкладку Config. Здесь находятся основные настройки системы, рассмотрим их подробнее.

1. Name — имя вашего ESP модуля. Оно используется как сетевое имя, а также для идентификации каналов при работе по MQTT протоколу.

2. Admin Password используется для установки пароля на настройки. По умолчанию пароля нет, но если его установить, то при открытии ip адреса вашего esp модуля необходимо будет ввести пароль. Только в этом случае вы сможете редактировать настройки. Это очень удобно, если вы используете свои модули в публичных местах.

3. SSID, WPA Key — используется для подключения к вашей домашней Wi-Fi сети.

4. WPA AP Mode Key — данный пароль используется в том случае, если ваш esp модуль работает в режиме точки доступа.

5. Unit nr — это номер машего модуля в сети. Для корректной работы системы он должен быть уникальным для каждого esp модуля.

6. Protocol и следующие за ним поля отвечают за выбор и настройку сетевого протокола, по которому ваш esp модуль взаимодействует с сервером умного дома или облачным сервером сбора данных. Мы можем выбрать OpenHAB MQTT, Domoticz MQTT, PiDome MQTT и ThingSpeak и другие менее популярные варианты.

7. Sensor Delay отвечает за то, как часто данные с модуля ESP отправляются на сервер. Значение необходимо писать в секундах.

8. Sleep Mode используется для перевода устройства в режим глубокого сна. Используйте этот параметр только после полной настройки вашего устройста.

В разделе Hardware вы можете выбрать какой светодиод на плате будет отвечать за состояние Wi-Fi подключения, а также выставить дефолтные состояния пинов. Во вкладке Rules можно настроить простые правила автоматизации. Обратите внимание, что по умолчанию данная вкладка не отображается. В разделе Devices происходит добавление и настройка датчиков и управляемых девайсов. В разделе Tools находятся более тонкие настройки, а также есть поле для выполнения команд. 

В данной статье мы рассказали вам о том, что из себя представляет готовая прошивка EspEasy, для чего ее можно использовать, как прошить ее ваш ESP модуль, а также как провести первичные настройки. В следующих статьях мы подробно расскажем о том, как использовать EspEasy в ваших проектах. Поключим к плате ESP самые популярные датчики, поробуем передавать данные с них в облачный сервер ThingSpeak и построить по ним графики. Также мы подключить ESP модуль к умному дому на базе OpenHAB по протоколу MQTT — будем собирать данные с датчиков и управлять светодиодами.

Обновление прошивки ESP8266

Для работы с RemoteXY модуль ESP8266 должен иметь версию прошивки с поддержкой AT команд не ниже v0.40. Для проверки версии модуля, а так же для изменения прошивки в случае необходимости, подключите модуль к компьютеру через последовательный порт. Модуль можно подключить через плату Arduino или через USB-UART адаптер.

Подключение через плату Arduino

При использовании Arduino основной чип ATmega переводится в режим сброса, активным остается только встроенный USB-UART преобразователь. Для этого контакт RESET соединяется с землей. Контакты RX и TX подключаются к ESP8266 напрямую, а не крест накрест, как если бы они подключались для работы с контроллером.


Подключение через USB-UART адаптер

Преобразователь должен иметь выход источника 3.3V для питания ESP8266. Так же этот источник должен обеспечить необходимый ток не менее 200мА.

Контакт CPIO0 определяет режим работы модуля. При не подключенном контакте модуль работает в штатном режиме и выполняет AT команды. При замыкании контакта на землю, модуль переводится в режим обновления встроенной прошивки. Перевод модуля в режим прошивки требует, что бы контакт CPIO0 был подключен к «земле» в момент подачи питания на модуль. Если замыкать контакт при работающем модуле, перевод модуля в режим обновления прошивки не произойдет.

Проверка текущей версии

Для отправки AT команд и просмотра ответов необходимо использовать любую программу монитора последовательного порта. Очень хорошо подходит терминальная программа из Arduino IDE. В программе необходимо установить режим отправки команд с завершающим символом перевода строки и возвратом каретки. Скорость работы модуля по умолчанию 115200 бит/сек. Для работы модуля в штатном режиме контакт CPIO0 должен быть отключен.

Проверить текущую версию прошивки можно выполнив AT команду: AT+GMR. Пример ответа модуля:


AT+GMR 

AT version:0.40.0.0(Aug 8 2015 14:45:58) 
SDK version:1.3.0 
Ai-Thinker Technology Co.,Ltd. 
Build:1.3.0.2 Sep 11 2015 11:48:04 
OK  

Так же стоит узнать размер флеш памяти вашего модуля, от этого зависят настройки адресов загрузки данных при обновлении прошивки. В данной инструкции описана прошивка модуля с размером флеш памяти 8Mbit(512KB+512KB) или 16Mbit(1024KB+1024KB), как наиболее распространенных. Размер флеш памяти можно узнать, выполнив AT команду сброса модуля: AT+RST.


AT+RST

OK

 ets Jan  8 2013,rst cause:2, boot mode:(3,1)

load 0x40100000, len 1396, room 16 
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4 
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4 
tail 8
chksum 0xc0
csum 0xc0

2nd boot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : DIO
  SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

#т#n't use rtc mem data
slЏ‚rlМя
Ai-Thinker Technology Co.,Ltd.

ready

Программа для прошивки

Для обновлении прошивки необходимо скачать программу для прошивки и саму прошивку. Программа для прошивки ESP8266 будем использовать Flash Download Tools v2.4 с официального сайта Espressif Systems. Ссылка на страницу загрузки на официальном сайте: http://espressif.com/en/products/hardware/esp8266ex/resources. Необходимо перейти в раздел «Tools».

Ссылка на программу в нашем файловом хранилище: FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar

Прошивка

Прошивку так же можно скачать с официального сайта. Ссылка на страницу загрузки на официальном сайте: http://espressif.com/en/products/hardware/esp8266ex/resources. Необходимо перейти в раздел «SDKs & Demos» и загрузить прошивку ESP8266 NONOS SDK версии не менее v1.3.0. Именно с этой версии прошивки реализована поддержка AT команд v0.40 и более.

Ссылка на прошивку в нашем файловом хранилище: esp8266_nonos_sdk_v1.4.0_15_09_18_0.rar

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

Настройка

Запускаем программу прошивки Flash Download Tools v2.4 (одноименный .exe файл). В открывшемся окне необходимо правильно указать загружаемые файлы и настройку соединения.

Загружаемые файлы располагаются в каталоге bin архива с прошивкой. Для каждого файла необходимо указать правильный адрес загрузки. Используйте следующую таблицу для выбора файлов и назначения адресов:

Файл в каталоге bin Флеш 8Mbit (512KB+512KB) Флеш 16Mbit (1024KB+1024KB)
esp_init_data_default.bin 0xFC000 0x1FC000
blank.bin 0xFE000 0x1FE000
boot_v1.4(b1).bin или старшей версии 0x00000 0x00000
user1.1024.new.2.bin (в подкаталоге at) 0x01000 0x01000
user2.1024.new.2.bin (в подкаталоге at) 0x81000 0x81000

Установите следующие параметры настройки:

  • SPIAutoSet — установлен;
  • CrystalFreq — 26M;
  • FLASH SIZE – 8Mbit или 16Mbit в зависимости от размера флеш-памяти;
  • COM PORT – выберите порт, к которому подключена ESP;
  • BAUDRATE – 115200

Для старта прошивки необходимо нажать кнопку «START».

Последовательность шагов для прошивки ESP8266

1. Подключите модуль к компьютеру согласно схеме подключения в этой статье.

2. Запустите монитор последовательного порта. Выполните AT команды AT+RST и AT+GMR для определения текущей версии прошивки и размера памяти модуля. Этот шаг так же позволяет проверить правильность подключения модуля.

3. Запустите программу прошивки Flash Download Tools, правильно настройте загружаемые файлы, установите настройки.

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

5. Соедините контакт CPIO0 на землю.

6. Подайте питание на модуль ESP8266.

7. Нажмите в программе прошивки кнопку START

8. Дождитесь окончания прошивки модуля. По окончании прошивки появится надпись FINISH зеленого цвета.

9. Отсоедините питание модуля ESP8266. Отсоедините землю с контакта CPIO0.

10. Включите модуль, запустите монитор последовательного порта. Убедитесь в работоспособности модуля и новой версии прошивки выполнив AT команду AT+GMR.

Перепрошивка ESP-8266 | Жизнь, бизнес и IT

ESP-8266 — интересный Wi-Fi чип для разработки устройств IoT. При приобретении его на Aliexpress прошивка на нем, нередко, достаточно старая. Прошивка устройства много где описана, но нередко упускаются из виду очень критичные моменты. Постараюсь воссоздать всю цепочку.

Для начала рекомендую распаять чип на белую платку-адаптер для ESP-07, ESP-12. На ней уже распаяны необходимые подтягивающие резисторы, кроме того, минимизируется риск повреждения контактов модуля ESP-8266.

Обычно в комплекте с платой не идет XC-6206A на 3,3 V. В принципе, он не нужен для работы при подаче напряжения 3,3 V.

Схема белой платы-адаптера (ESP-12 white mounting breakout board scematics) для ESP-07, ESP-12 следующая:

  • Приницпиальная схема платы-адаптера для ESP-07, ESP-12 (ESP-8266)

Емкости на плате отсутствуют. Вход EN обозначен как CH_PD.

Для программирования использовал аксессуары:

  • Arduino UNO R3 запитанный от блока питания, а не от USB порта. Мощности USB порта может оказаться недостаточно для питания Arduino UNO и ESP-8266. Arduino использовал только как блок питания на 3,3 V. Естественно, лучше использовать блок питания на 3,3 V.
  • RS-232 to UART конвертер. Можно использовать недорогой бескорпусный вариант. Я использовал корпусный вариант.
  • ESP-12 модуль (ESP-8266).
  • Белая плата-адаптер для ESP-8266 модулей.
  • Набор Dupont проводов.

Замечательно если есть беспаячная монтажная плата. У меня не было под руками, поэтому коммутацию выполнял напрямую проводами обжатыми Dupont разъемами.

Далее по тексту ESP-8266 — это модуль распаянный на белую плату-адаптер.

Коммутация:

ESP-8266
RS-232
converter
Arduino UNO
или БП 3,3 V
Комментарий
TXDRXDТеоретически, можно использовать Arduino TX/RD с небольшим скетчем. Однако, по-умолчанию, для ESP-8266 задана скорость порта 115200. Arduino UNO/Nano работают нестабильно на этой скорости, поэтому сначала придется подключится напрямую, чтобы установить скорость 9600.
RXDTXD
GNDGNDGND
VCC3,3 VArduino запитываем не от USB порта ПК!!!
GPIO0GNDДля переключения в режим обновления.

Проверка собранной схемы

Перед тем как переводить ESP-8266 в режим отновления прошивки, проверим работу собранной схемы:

  • Убедимся, что GIO0 отключена от GND. Иначе AT команды отправить в модуль нельзя.
  • Включим питание модуля.
  • Подключим USB-to-RS232 конвертер к ПК.
  • Зайдем в Control Panel -> System -> Device manager -> Ports (COM & LPT).
  • Если устройство Prolific USB-to-Serial Comm Port работает с ошибкой — нужно установить fix.
  • Если USB конвертер работает без ошибок — смоттри на каком COM порту он работает.
  • Запускаем ESPlorer и выставляем в настройках правильный COM порт и скорость. Жмем «Open».
  • Переходим на закладку «AT-based» и жмем кнопку «AT». Отправится команда AT, в ответ должна прийти «ОК». Хначит устрйоство работает нормально. То-же самое можно сделать любой терминальной программой работающей с последовательным портом, вроде PuTTY.
  • Далее жмем кнопку»RST». Отправится команда AT+RST для рестарта модуля.
  • Отправка команды AT+RST в ESP-8266.
AT+RST
AT+RST

OK
WIFI DISCONNECT

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 1396, room 16 
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4 
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4 
tail 8
chksum 0xc0
csum 0xc0

2nd boot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : DIO
  SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

тn't use rtc mem data
rlЋ‚rlМя
Ai-Thinker Technology Co.,Ltd.

ready
WIFI CONNECTED
WIFI GOT IP
  • Сохраним полученные параметры чипа. Они могут пригодится в дальнейшем.
  • Отправим AT+GMR для получения информации о текущей версии прошивки ESP-8266.
  • Отправка команды AT+GMR в ESP-8266

Получили следующую информацию о чипе:

  • SPI Speed : 40MHz
  • SPI Mode : DIO
  • SPI Flash Size & Map: 8Mbit(512KB+512KB)
  • AT version:0.40.0.0(Aug 8 2015 14:45:58)
  • SDK version:1.3.0
  • Build:1.3.0.2 Sep 11 2015 11:48:04

Софт для прошивки ESP-8266

Для прошивки нужно скачать следующее ПО от разработчика чипа, компании Espressif:

Перевод ESP-8266 в режим загрузки обновления

Для перевода ESP-8266 в режим загрузки прошивки нужно:

  • Отключить питание модуля и извлечь из USB порта USB-to-RS-232 конвертер.
  • Замкнуть PIN GPIO0 на GND. Я использовал Dupont кабель. Кнопку нет смысла использовать. Вот здесь есть тонкий момент. На некоторых схемах используют две кнопки Flash и Reset и нажимают их попеременно для ввода в режим заливки обновления. В официальной документации дан вариант, который я описал. Но при этом я брикнул ESP8266 и пока не нашел способа восстановить.
  • Включить питание модуля.
  • Немного подождать и подключить USB-to-RS-232 конвертер.

Если нарушить последовательность, то программатор не найдет ESP-8266 модуль!

  • Запускаем ESP8266 Flash Download Tool.
  • Выбираем ESP8266 и задаем правильный порт и скорость.
  • Ничего не вводим и нажимаем Start
  • Если ESP 8266 корректно переведен в режиме скачивания прошивки, то практически мгновенно будет выдан статус Finish. И в «detected info» отобразится информация:
    • flash vendor: E0h : N/A
    • flash devID: 4016h
    • QUAD;
    • 32Mbit crystal;
    • 26 Mhz

Прошивка

В некоторых случаях брикнутые ESP 8266 удается восстановить с использованием инстурмента XTCOM_UTIL. Статья на эту тему.

Но здесь есть такой момент. Прошивки подходящие под эту утилиту неофициальные (специально сделанные) и очень древние. Хотя, можно «лить» и официальные, указав правильные адреса. Я не пробовал, но в статье пример.

У меня была ситуация, когда не мог залить официальную прошивку на купленный на Aliexpress ESP 8266 модуль. Но после того как залил древнюю прошивку через XTCOM_UTIL, залилась и прошивка через официальный ESP8266 Download Tool.

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

Если конвертер USB — RS-232 плохого качества, либо плохое качество соединений, то ESP8266 Download Tool может выдавать ошибку синхронизации. В Интернет рекомедуют снижать скорость до 9600, но это нельзя сделать с помощью этой утилиты. У неё минимальная скорость 115200. В этом случае можно воспользоваться консольной утилитой ESPTool от официального разработчика чипа компании Espressif. Я пробовал прошивать с помощью этой утилиты брикнутый чип, но безуспешно.

Таблицу адресов для заливки лучше брать в официальной документации, поскольку адреса завсят от чипа. Этот вопрос нужно смотреть тщательно, поскольку в Интернет адреса заданы для того чипа, который шил автор статьи. Адреса и схема распайки для программирования есть в ESP8266_SDK_Getting_Started_Guide, и адреса есть также в ESP8266_AT_Instructions_Set.

Сразу отмечу, что у меня нет достоверной информации, что если в ESP8266 Download Tool выставить флаг SpiAutoSet, то действительно производится проверка параметров чипа. Адреса точно никак не проверяются.

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

В Интернете не раз проскакивала информация, что ESP-8266 невозможно вывести из строя кривой прошивкой. Мне удавалось. 🙂 После этого чип даже при повторном переводе в режим заливки образа не откликается на запросы. Пробовал скорость и 9600 и 115200 использовать и разные другие шаманства со всеми возможными утилитами.

Troubleshooting

Если после прошивки ESP-8266 не получается подключиться к модулю на скорости 115200, нужно попробовать скорость 9600. В некоторых прошивках эта скорость выставлена по-умолчанию.

В некоторых случаях из-за качества соединений могут возникать проблемы с синхронизацией. Одно из решений — уменьшить скорость с 115200 до 9600:

  • AT+UART_DEF=<baudrate>,<databits>,<stopbits>,<parity>,<flow control>
  • AT+UART_DEF=9600,8,1,0,0
  • AT+UART_DEF=115200,8,1,0,3

В некоторых случаях при переходе на другую скорость отклики от модуля в терминальной программе становятся очень медленными. Пока не разобрался с чем это связано. Помогает сброс к заводским настройкам командой AT+RESTORE.

Статьи

Похожее

Программирование микроконтроллеров ESP8266/ESP32 написанием YAML конфиг файлов / Хабр

Будучи поклонником системы управления «умным домом» Home Assistant я недавно открыл для себя интересный инструмент, тесно с HA интегрированный и ранее на Хабре не освещенный — ESP Home (ранее ESPhomeYAML).

ESP Home представляет собой набор библиотек и инструментов, генерирующих прошивку для микроконтроллеров ESP8266 и ESP32 из созданного пользователем конфиг файла в формате YAML. Это значительно упрощает написание прошивок малого и среднего уровня сложности в особенности для тех, кто не силен в программировании под Arduino и сильно сокращает количество строк кода/конфигурации для тех, кто силен.

Для удобства настройки поддерживается обновление прошивки по воздуху.

ESP Home поддерживает устройства на базе ESP8266 и ESP32, очень популярных среди любителей домашней автоматизации и прочих самоделкиных, а также несколько десятков сенсоров и различную периферию — дисплеи, сетевые карты и т.д. Для обмена данными с запрограммированным устройством поддерживаются MQTT, UART, I2C, SPI и API, интегрированное с Home Assistant.

Ниже короткий пример установки ESP Home и простой настройки устройства на примере выключателя Sonoff T1, который представляет из себя ESP8266 с одним реле, одной кнопкой и одним управляемым светодиодом. В примере будут шаги установки одновременно для чистого Python и Docker.


Установка

Python 2.7 (из-за зависимостей Platformio)

pip2 install esphome

Docker из готового образа

docker pull esphome/esphome

Создание конфигурационного файла

ESP Home включает в себя визард, который помогает создать начальный конфигурационный файл.
Эти же шаги можно проделать в WEB интерфейсе ESP Home, про который написано в конце статьи.

Для начала нужно указать:


  • Название устройства (назовем его switch)
  • ESP8266 (в примере) или ESP32
  • Тип платы (у нас esp01_1m)
  • Назване точки доступа WiFi
  • Пароль от WiFi
  • Пароль от API Home Assistant, он же будет по умолчанию использоваться для обновления прошивки по воздуху.

Результатом работы визарда будет файл switch.yaml в текущей папке примерно такого вида:

esphome:
  name: switch
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: 'wifi_ap'
  password: 'wifi_password'

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: 'api_password'

ota:
  password: 'api_password'

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


Первая прошивка

Теперь, если подключить контроллер к компьютеру по USB (NodeMCU) или через программатор можно заливать прошивку.

Python:

esphome switch.yaml run

ESP Home проверит, что в файле конфигурации нет ошибок, скомпилирует и загрузит прошивку. Кроме того в текущей папке появится новая папка с именем вашего устройства и проектом platformio внутри.

Если программатор/устройство не подключены к компьютеру можно выполнить команду:

esphome switch.yaml compile

и скомпилированный файл прошивки появится в папке switch/.pioenvs/switch/firmware.bin

Docker
На Linux или MacOS можно добавить в —device=/dev/ttyUSB0 Docker-команду — адрес устройства программатора или серийного порта.

docker run --rm -v "${PWD}":/config --device=/dev/ttyUSB0 -it esphome/esphome switch.yaml compile

Аналогично команде esphome в результате запуска контейнера появится папка switch/.pioenvs/switch/firmware.bin

Бинарный файл прошивки можно загрузить на контроллер через Arduino IDE.

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


Настройка выключателя

Дальше можно добавлять необходимые компоненты:


Сенсоры
# Настройка сенсоров
binary_sensor:
  # Считывание нажатий кнопки
  - platform: gpio
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: True
    name: "Switch button"
    # Автоматизация, для управления реле по нажатию  кнопки 
    on_press:
      - switch.toggle: relay_1
  # Сенсор, отчитывающийся о статусе утройства
  - platform: status
    name: "Switch Status"

Реле
switch:
  # Управление реле
  - platform: gpio
    name: "Switch Relay 1"
    pin: GPIO12
    id: relay_1

Светодиоды
output:
  # Регистрация синего светодиода, как диммируемого выхода
  - platform: esp8266_pwm
    id: blue_led
    pin: GPIO13
    inverted: True

light:
  # Превращаем выход в "лампочку", которой можно управлять
  - platform: monochromatic
    name: "Switch Blue LED"
    output: blue_led
    id: blue_led_light # ID для того, чтобы обращаться к диоду в командах автоматизации

Чтобы в итоге получить:


Законченный конфиг
esphome:
  name: switch
  platform: ESP8266
  board: esp01_1m
  # Павило автоматизации, влючающее синий светодиод после запуска устройства.
  on_boot:
    # Минимальный приоритет
    priority: -10
    then:
      - light.turn_on: blue_led_light

wifi:
  ssid: 'wifi_ap'
  password: 'wifi_password'

# Модуль логирования
logger:

# Активация Home Assistant API
api:
  password: 'api_password'

# Активация прошивки по воздуху
ota:
  password: 'api_password'

# Активация web сервера
# Ест довольно много ресурсов и лучше отключать его после финальной настройки
web_server:
  port: 80

# Активация MQTT
mqtt:
  broker: 10.0.0.2
  username: mqt_user
  password: mqtt_password

# Настройка сенсоров
binary_sensor:
  # Считывание нажатий кнопки
  - platform: gpio
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: True
    name: "Switch button"
    # Автоматизация, для управления реле по нажатию  кнопки 
    on_press:
      - switch.toggle: relay_1
  # Сенсор, отчитывающийся о статусе утройства
  - platform: status
    name: "Switch Status"

switch:
  # Управление реле
  - platform: gpio
    name: "Switch Relay 1"
    pin: GPIO12
    id: relay_1

output:
  # Регистрация синего светодиода, как диммируемого выхода
  - platform: esp8266_pwm
    id: blue_led
    pin: GPIO13
    inverted: True

light:
  # Превращаем выход в "лампочку", которой можно управлять
  - platform: monochromatic
    name: "Switch Blue LED"
    output: blue_led
    id: blue_led_light # ID для того, чтобы обращаться к диоду в командах автоматизации

WEB интерфейс

Те же действия можно проделать через WEB интерфейс, который работает на Linux и MacOS.

Python

Нужно установить дополнительные зависимости:

pip2 install tornado esptool

и запустить ESP Home такой командой:

esphome config/ dashboard

Docker

В документации написано, что для работы индикаторов статуса нужно подключить контейнер к сети host такой командой:

docker run --rm --net=host -v "${PWD}":/config -it esphome/esphome

У меня она не заработала и я использовал:

docker run --rm --net=bridge -p 6052:6052 -v "${PWD}":/config -it esphome/esphome

После этого можно зайти на 127.0.0.1:6052 и работать в удобном интерфейсе:

Приятной работы.

Основы: Проект 021b Как обновить прошивку

Основы: Проект 021b

Название проекта: Как обновить прошивку — ESP8266 ESP-01 WI FI модуль

Теги: ESP, ESP8266, модуль WI FI, ESP-01, V090, обновление прошивки, Ai Thinker, AI-Cloud, SOC, GPIO, универсальный вход-выход, система на кристалле, Nodemcu flasher, IOT , Интернет вещей, FTDI232, FTDI 232, USB to TTL, программатор ESP-01, инструменты Flash, прошивка Nodemcu, прошивка Ai Thinker, прошивка Espressif, как использовать вывод DTR ESP8266, PN25F08, ESP8266 AT-command микропрограмма

В этом проекте вам понадобятся эти детали:

1.Arduino Uno R3 (также можно использовать другую версию Arduino)

2. ESP8266 ESP-01 WI FI модуль 1 шт.

3. Arduino IDE (скачать можно отсюда)

4. кабельные перемычки F-M, F-F, M-M

5. Макетная плата 1 шт.

6. Последовательный преобразователь USB в TTL 1 шт.

7. Мини-кабель USB 1 шт. (Опционально)

8. Выключатель мгновенного действия (кнопка) 2 шт.

9.Любой стабилизатор напряжения LD1117V33, AMS1117 3,3 В или 78R33 (чтобы получить 3,3 В) или 1 шт

или или

10. Преобразователь логических уровней 1 шт. (Можно резисторы — делитель напряжения)

Общие

Мы узнаем, как обновить прошивку в модуле ESP8266 ESP-01 WI FI.

Что такое преобразователь USB в TTL

Подробнее о них можно прочитать здесь.

Описание модуля ESP8266 WI FI

WiFi-модуль ESP8266 — это автономный SOC (система на кристалле) со встроенным стеком протоколов TCP / IP, который может предоставить любому микроконтроллеру доступ к вашей сети WiFi.

WiFi-модуль ESP8266 может либо размещать приложение, либо выгружать все сетевые функции Wi-Fi с другого процессора приложений.

Каждый модуль Wi-Fi ESP8266 поставляется с предварительно запрограммированной прошивкой с набором команд AT, что означает, что вы можете просто подключить его к своей плате Arduino и получить примерно столько же возможностей WiFi, сколько предлагает WiFi Shield.

WiFi-модуль ESP8266 — чрезвычайно экономичная плата. Этот модуль имеет достаточно мощные встроенные возможности обработки и хранения, что позволяет интегрировать его с датчиками и другими устройствами для конкретных приложений через GPIO (универсальный ввод-вывод) с минимальной предварительной разработкой и минимальной нагрузкой во время выполнения.Его высокая степень интеграции в кристалл позволяет использовать минимальные внешние схемы, включая интерфейсный модуль, который занимает минимальную площадь на печатной плате. ESP8266 поддерживает APSD для приложений VoIP и интерфейсов сосуществования Bluetooth, он содержит самокалиброванный радиочастотный модуль, позволяющий ему работать в любых рабочих условиях, и не требует внешних радиочастотных компонентов.

Короче говоря, модуль ESP8266 — это устройство TTL «Serial to Wireless Internet», небольшой микропроцессор со встроенным Wi-Fi. Он быстрее, чем большинство плат Arduino, имеет больше памяти, чем большинство плат Arduino, и имеет меньше контактов, чем плата Arduino.

ESP8266 выпускается в большом количестве версий (как показано на рисунке ниже).

См. Список модулей здесь.

ESP8266 AI THINKER IC (микросхема)

Спецификация:

  • 802.11 б / г / п
  • Встроенный 32-разрядный микроконтроллер со сверхнизким энергопотреблением Tensilica L106, работающий на частотах 80 МГц и 160 МГц, поддерживающий ОСРВ
  • Встроенный 10-битный высокоточный АЦП
  • Встроенный стек TCP / IP
  • Встроенный переключатель TR, балун, малошумящий усилитель, усилитель мощности и согласующая сеть
  • Встроенная ФАПЧ, регулятор напряжения и компоненты управления питанием, выходная мощность +20 дБм в стандарте 802.11b режим
  • A-MPDU, агрегация A-MSDU и защитный интервал 0,4 с
  • WiFi @ 2,4 ГГц, поддерживает режим безопасности WPA / WPA2
  • Поддержка удаленного обновления и облачного обновления OTA
  • Поддержка рабочего режима STA / AP / STA + AP
  • Поддерживает функции Smart Config (включая устройства Android и iOS)
  • HSPI, UART, I2C, I2S, ИК-пульт дистанционного управления, ШИМ, GPIO
  • Ток в режиме глубокого сна составляет 10 мкА, а ток отключения менее 5 мкА
  • Пробуждение, подключение и передача пакетов в течение 2 мс
  • Энергопотребление в режиме ожидания менее 1.0 мВт (DTIM3)
  • Диапазон рабочих температур: -40 ° C — 125 ° C

Заявка:

  • создать веб-сервер
  • отправлять HTTP-запросы
  • управляющие выходы
  • чтение входов и прерываний
  • отправить письмо
  • поста твита

КАК ЭТО РАБОТАЕТ

Модулем ESP8266 WI FI можно управлять из локальной сети Wi-Fi или из Интернета (после настройки переадресации портов на маршрутизаторе).ESP8266 связывается с Arduino через последовательный интерфейс. Он использует выводы Rx и Tx Arduino (цифровые выводы 0 и 1), подключенные к модулю ESP8266 ESP-01, для приема команд и обратной связи. Модуль имеет полную поддержку стека TCP / UDP и может быть настроен как веб-сервер. Модуль ESP-01 питает бортовой ESP8266 через 3,3 В. Вам нужно будет использовать стабилизатор напряжения AMS1117 3,3 В или аналогичный 78R33, чтобы понизить 5 В с Arduino до 3,3 В или делителя напряжения (вы можете найти некоторую информацию здесь с онлайн-таблицей расчетов), чтобы включить ESP8266.

ESP8266 не имеет разъема USB. Вам потребуется дополнительный компонент для ESP8266 для связи с ПК или ноутбуком через порт USB. Он называется последовательным адаптером USB-TTL (например, USB-адаптер для ESP8266 ESP-01, FT232RL FTDI USB to TTL Serial Adapter, CP2102 USB to TTL UART converter). Таким образом, мы можем использовать либо последовательный адаптер (преобразователь) USB в TTL, либо использовать Arduino для связи и загрузки кода в ESP8266.

Адаптеры ESP-01

ESP8266 Модуль ESP-01

В этом проекте мы будем использовать модуль ESP8266 ESP-01.Он имеет 2 контакта GPIO, которые можно запрограммировать для включения / выключения светодиода или реле через Интернет.

Модуль ESP-01 содержит микроконтроллер ESP8266 и микросхему флэш-памяти ( PN25F08 IC — 8-мегабитная (1 МБ) последовательная флэш-память. PN25F08 поддерживает стандартный последовательный периферийный интерфейс (SPI). PN25F08 может быть программируется от 1 до 256 байт за раз. Спецификацию можно прочитать здесь) или ( CFEON Q80B-104HIP IC- 8M-битная последовательная флэш-память). Есть два светодиода: красный, который указывает на то, что к модулю подключено питание, и синий, который указывает на поток данных, а также может управляться с помощью пользовательского программирования.Антенна Wi-Fi — это дорожка на печатной плате, которая покрывает верхнюю часть модуля; она называется изогнутой перевернутой F-антенной (MIFA), она на удивление эффективна и имеет лишь умеренную направленность.

Внизу модуля есть восемь контактных площадок. Обычно два 4-контактных штекерных разъема вставляются в заднюю часть модуля и припаиваются к передней. Это делает доступными входы / выходы, но не подходят для макетных плат и требуют прядей от ESP-01 к макетной плате без пайки. Этот метод работает, но он беспорядочный.

ESP8266 Модуль ESP-01 имеет три режима работы:

1. Точка доступа (AP). В AP модуль Wi-Fi действует как сеть Wi-Fi или точка доступа (отсюда и название). Это позволяет другим устройствам подключаться к нему. И устанавливает двустороннюю связь между ESP8266 и устройством, подключенным к нему через Wi-Fi.

2. Станция (STA) — В режиме STA ESP-01 может подключаться к AP (точке доступа), например к сети Wi-Fi, из вашего дома. Это позволяет любому устройству, подключенному к этой сети, связываться с модулем.

3. Оба — В этом режиме ESP-01 действует как AP, а также в режиме STA. Дополнительные сведения о AT-командах ESP8266 см. На следующем сайте.

ESP8266 Модуль ESP-01 может быть установлен в Flash режиме или UART режиме загрузки (для загрузки новой прошивки или программы) и Boot mode или Flash Boot Mode (нормальный запуск и выполнение существующей прошивки или программы) .

ESPlorer

ESPlorer — интегрированная среда разработки (IDE) для разработчиков ESP8266.

Основные многоплатформенные инструменты для любого разработчика ESP8266 от автора luatool, включая LUA для NodeMCU и MicroPython. Также поддерживаются AT-команды.

Требуется установленная JAVA (SE версии 7 и выше).

Вы можете скачать это здесь.

Поддерживаемые платформы

  • Окна (x86, x86-64)
  • Linux (x86, x86-64, ARM soft и hard float)
  • Solaris (x86, x86-64)
  • Mac OS X (x86, x86-64, PPC, PPC64)

Подробный список функций

  • Подсветка синтаксиса LUA и код Python
  • Цветовые темы редактора кода: по умолчанию, темные, Eclipse, IDEA, Visual Studio
  • Функции редактора отмены / повтора
  • Автозаполнение кода (Ctrl + Пробел)
  • Интеллектуальная отправка данных на ESP8266 (без глупой отправки с фиксированной задержкой линии), проверяйте правильный ответ от ESP8266 после каждой строки.
  • Фрагменты кода
  • Детальный журнал

В чем разница между ОСРВ и пакетом SDK без ОС?

Основные отличия перечислены ниже:

SDK без ОС

SDK не для ОС позволяет встраивать функции или события с помощью таймеров и функций обратного вызова. В связи с этим определенные функции будут срабатывать в определенных условиях. В SDK, отличном от OS, espconn используется для управления сетью. Пользователям необходимо разрабатывать программное обеспечение на основе правил использования espconn.

SDK ОСРВ

1. FreeRTOS используется в SDK RTOS, который поддерживает многозадачность. Разработанная таким образом, эта система позволяет пользователям использовать стандартный интерфейс для управления ресурсами, циклической работы, временной задержки в рамках задачи, а также доставки и синхронизации информации между задачами. Чтобы узнать о конкретных методах использования интерфейсов, обратитесь к официальному сайту freeRTOS или на ИСПОЛЬЗОВАНИЕ ЯДРА FREERTOS REAL TIME — Практическое руководство.

2. lwIP API, стандартный интерфейс, используется в RTOS SDK для управления сетью.В RTOS SDK инкапсулирован SD Socket API. Пользователи могут разрабатывать программные приложения так же, как они применяют API сокетов, или компилировать стандартные приложения Socket, которые работают на других платформах. Это помогает снизить затраты, связанные с переходом с одной платформы на другую.

3. В RTOS SDK добавлена ​​библиотека cJSON. Эта библиотека упрощает выполнение своих функций по синтаксическому анализу содержимого пакета данных JSON.

4. ОСРВ совместима с интерфейсами Wi-Fi, интерфейсами интеллектуальной конфигурации, интерфейсами, относящимися к снифферу, системными интерфейсами, интерфейсом таймера, интерфейсами FOTA и интерфейсами периферийных драйверов в SDK, отличном от ОС, но не поддерживает AT-команды.

Сигналы и ко контактов ESP8266 ESP-01 WI FI модуль

TXD ( TX, TXO или UTXD ) — вывод передачи. Подключен к пину 1 Arduino Uno

RXD ( RX, RXI или URXD ) — вывод приема. Подключен к пину 0 Arduino Uno.

VCC ( 3V3 или 3.3V ) — вывод питания (3-3.6В). Подключается к внешнему источнику питания 3,3 В постоянного тока, 1 А и более. Ток, необходимый для ESP-01 во время работы Wi-Fi, варьируется от 250 мА до 750 мА.

RST ( RESET ) — пин сброса. Для нормальной работы держите его на высоком уровне (3,3 В). Поставьте на 0V, чтобы сбросить микросхему.

CH_PD ( CHIP_EN или EN ) — Разрешение чипа. Для нормальной работы держите его на высоком уровне (3,3 В).

GND — Земля. Подключен к плате Arduino, вывод GND

GPIO0, GPIO2 ( IO0, IO2 ) — контакты ввода вывода общего назначения.GPIO0 также управляет режимом модуля (программирование или нормальная работа). В нашем случае (нормальная работа) он должен быть подключен к напряжению 3,3 В (высокое). GPIO2 в этом примере не используется.

Построить схему

Существуют различные методы обновления прошивки в модуле ESP8266 ESP-01:

1. Используя программатор ESP01 UART

Это очень просто. Просто вставьте модуль ESP8266 ESP-01 в UART программатора ESP01. Однако для перехода в режим вспышки необходимо, чтобы контакт GPIO0 был заземлен (подключен к контакту GND).Небольшая модификация на задней панели программатора ESP01 UART, которая может облегчить жизнь. Вы можете просто переставить перемычку из положения GND-GND в положение GND-GPIO0.

2. Использование преобразователя USB в TTL с контактом DTR

Если вы используете преобразователь USB в TTL, который имеет вывод DTR, загрузка будет происходить без проблем. Последовательный монитор не будет работать при этом.

Преобразователь USB в TTL -> ESP8266 Модуль ESP-01

  • Земля-> Земля
  • TX-> RX
  • RX-> TX
  • РТС-> РСТ
  • DTR-> GPIO0
  • VCC 3.3 В-> 3,3 В
  • VCC 3,3 В-> EN

3. Использование преобразователя USB в TTL без вывода DTR

Преобразователь USB в TTL -> ESP8266 Модуль ESP-01

  • земля -> земля
  • TX -> RX
  • RX -> TX
  • VCC 3,3 В-> 3,3 В
  • VCC 3,3 В-> EN
  • Кнопка сброса -> RST
  • Кнопка вспышки -> IO0

Переведите модуль ESP8266 ESP-01 в режим Flash (режим загрузки UART), нажав и удерживая кнопку Flash на макете.Удерживая нажатой кнопку Reset нажмите кнопку Download в программном обеспечении Flash Tool (загрузчик Flash), а затем отпустите кнопку Reset . Мигание начнется сейчас, если все в порядке и вы можете увидеть процент выполнения на экране. Удерживайте кнопку Flash нажатой до конца загрузки новой прошивки. По окончании загрузки отпустите кнопку Flash и нажмите кнопку Reset , чтобы перезагрузить модуль. Это может привести к ошибкам типа «Не удается подключиться» или «Недопустимая заголовок пакета» и т. Д. Это происходит в основном по двум причинам. Недостаточное питание модуля ESP или ошибка в схеме. Используйте специальный источник питания 3,3 В. для ESP. И если по-прежнему возникает ошибка, попробуйте удерживать кнопку сброса некоторое время, когда в программе Flash tool нажимается кнопка Загрузить . Это может решить проблему.

4. Использование платы Arduino

ESP8266 включается через отдельный 3.Источник питания 3 В или регулятор напряжения AMS1117 3.3 В или 78R33 или делитель напряжения. Примечание: не подключайте модуль ESP8266 ESP-01 непосредственно к контакту платы Arduino Uno 3,3 В, так как модуль ESP8266 ESP-01 может потреблять больше тока, чем может обеспечить регулятор 3,3 В на вашем Arduino, поэтому вы можете повредить Плата Arduino.

Чтобы использовать этот метод, вам необходимо удалить микросхему ATmega328P с платы Arduino. Удалив микроконтроллер, вы можете использовать встроенный интерфейс FTDI Arduino Uno для прямой связи с модулем ESP. Будьте очень осторожны, так как вы можете легко повредить контакты микросхемы ATmega328P.

ESP8266 Модуль ESP-01 -> плата Arduino Uno

  • GND -> GND (через регулятор напряжения)
  • TX -> TX
  • RX -> RX (через преобразователь логического уровня)
  • VCC-> 3,3 В (через регулятор напряжения)
  • EN -> 3,3 В (через регулятор напряжения)
  • RST–> 3,3 В (через регулятор напряжения)
  • IO0 -> GND (через регулятор напряжения)

Пошаговая инструкция

ОЧЕНЬ ВАЖНОЕ ПРИМЕЧАНИЕ:

Перед обновлением прошивки:

  • Когда вы покупаете модуль ESP8266 ESP-01, он обычно поставляется с предустановленной микропрограммой AT.Например, можно запрограммировать микросхему (микросхему) ESP8266 с другой прошивкой.
  • Помните, что AT-команды больше не будут доступны после загрузки скетча Arduino.
  • Прежде всего вам необходимо установить связь с модулем ESP8266 ESP-01 — проверить, отвечает ли он на AT-команды, это версия прошивки и производитель ESP8266 IC.
  • Резервный план. Всегда убедитесь, что у вас есть версия прошивки, чтобы вы могли восстановить предыдущую версию, если следующая версия прошивки окажется плохой.
  • Прочтите всю информацию об обновлении прошивки, доступную в Интернете.
  • Подумайте, действительно ли вам нужно это сделать (например, если ваш модуль ESP8266 ESP-01 WI FI не отвечает), так как это риск повредить модуль !!!
  • Если вы решили это сделать, убедитесь, что следующая версия прошивки, которую вы планируете загрузить, не старше существующей.
  • Убедитесь, что у вас есть Flash tools для обновления прошивки : nodemcu flasher, ESP_DOWNLOAD_TOOL, ESP8266 flash downloader, другие прошивальщики вы можете скачать здесь

Ссылки для скачивания прошивки:

1.Nodemcu (проверьте наличие более новых версий здесь)

2. Ai Thinker (новые версии ищите здесь)

Для прошивки

Ai-Thinker версии 1.0 и выше требуется не менее 1 МБ (8 Мбит) флэш-памяти. 512 КБ (4 Мбит) Flash должны использовать старую версию (v0.9.5.2).

Примечание. Поскольку для модуля флэш-памяти 1 МБ недостаточно памяти, все микропрограммы AT с AiCloud2.0 использовать нельзя, для флэш-памяти требуется> = 2 МБ. Перед обновлением с помощью команды CIUPDATE убедитесь, что флэш-память модуля> = 2 МБ!

Официальный SDK

Lexin вы можете найти здесь: NONOS, RTOS.

Модифицированная версия Lexin (некоторые изменения внесены в официальный SDK Lexin, чтобы его можно было использовать сразу после загрузки): ESP8266_NONOS_SDK_V1.5.4 ESP8266_RTOS_SDK_V1.5.0

ESP8266 Конфигурация адреса флэш-памяти описана здесь.

3. Espressif (более новую версию можно найти здесь, другие документы здесь)

Здесь описана конфигурация флэш-адреса

EP8266.

Вы можете скачать SDK NONOS и RTOS здесь.

Вы также можете загрузить последнюю версию SDK с GitHub NONOS и RTOS.

1. Использование флеш-загрузчика ESP8266

  1. Сделать электромонтаж.
  2. Скачать бинарный файл прошивки (имеет расширение .bin ).
  3. Загрузите программу flash tool (загрузчик flash) для обновления прошивки в ESP8266 IC.
  4. Подключите преобразователь USB к TTL (преобразователь UART) или плату Arduino Uno к USB-порту ПК.
  5. Откройте программу flash tool (загрузчик flash).
  6. Измените COM-порт (последовательный порт).Проверьте в диспетчере устройств -> Порты (COM и LPT) , к какому USB-порту подключен преобразователь UART / плата Arduino Uno.
  7. Нажмите кнопку Bin . Выберите только что загруженный двоичный файл.
  8. Если вы хотите обновить прошивку Nodemcu , тип 0x40000080, AiThinker , тип прошивки 0x00000 . Перед тем, как нажать кнопку Download , убедитесь, что вы заземлили вывод GPIO0 .Это требуется каждый раз при обновлении прошивки.
  9. Нажмите Скачать кнопку . Флэш-загрузчик удалит текущую прошивку и начнет установку новой.
  10. После установки прошивки вы можете отключить вывод GPIO0 от земли.
  11. Перезагрузите модуль ESP8266 ESP-01.
  12. Вы можете использовать это сейчас.

2. Использование программатора прошивки Nodemcu

  1. Сделать электромонтаж.
  2. Скачать бинарный файл прошивки (имеет расширение .bin ).
  3. Загрузите программу flash tool (загрузчик flash) для обновления прошивки в ESP8266 IC.
  4. Подключите преобразователь USB к TTL (преобразователь UART) или плату Arduino Uno к USB-порту ПК.
  5. Откройте программу flash tool (загрузчик flash).
  6. Измените COM-порт (последовательный порт) в разделе Operation . Проверьте в диспетчере устройств -> Порты (COM и LPT) , к какому USB-порту подключен преобразователь UART / плата Arduino Uno.
  7. Перейдите в раздел Config и выберите только что загруженный двоичный файл.
  8. Если вы хотите обновить прошивку Nodemcu , тип 0x40000080, AiThinker , тип прошивки 0x00000 .
  9. Перейдите в раздел Advanced и выберите скорость передачи 115200 , размер флэш-памяти 4 МБ , скорость вспышки 40 МГц , режим SPI DIO или DOUT .
  10. Перед тем, как нажать кнопку Flash в разделе «Работа», убедитесь, что вы заземлили контакт GPIO0 . Это требуется каждый раз при обновлении прошивки.
  11. Нажмите кнопку Flash . Флэш-загрузчик удалит текущую прошивку и начнет установку новой.
  12. После установки прошивки вы можете отключить вывод GPIO0 от земли.
  13. Перезагрузите модуль ESP8266 ESP-01.
  14. Вы можете использовать это сейчас.

3. Использование ESPFlashDownloadTool_v3.6.4

  1. Сделать электромонтаж.
  2. Скачать бинарный файл прошивки (имеет расширение .bin ).
  3. Загрузите программу flash tool (загрузчик flash) для обновления прошивки в ESP8266 IC.
  4. Подключите преобразователь USB к TTL (преобразователь UART) или плату Arduino Uno к USB-порту ПК.
  5. Откройте программу flash tool (загрузчик flash).
  6. Нажмите ESP8266 Загрузите инструмент кнопку.
  7. Выберите SPIDownload section.
  8. Выберите только что загруженный двоичный файл.
  9. Если вы хотите обновить прошивку Nodemcu , тип 0x40000080, AiThinker , тип прошивки 0x00000 .
  10. Проверьте настройки в поле SpiFlashConfig раздела SPIdownload .
  11. Выберите размер флэш-памяти 4 Мбит , скорость SPI 40 МГц , режим SPI DIO или DOUT, CryctalFreq 26M.
  12. Выберите скорость передачи 115200 и COM-порт (последовательный порт). Вы можете на своем ПК Диспетчер устройств -> Порты (COM и LPT) , к какому USB-порту подключен преобразователь UART / плата Arduino Uno.
  13. Перед тем, как нажать кнопку Start в разделе SPIDownload, убедитесь, что вы заземлили вывод GPIO0 . Это требуется каждый раз при обновлении прошивки.
  14. Нажмите кнопку Пуск .Флэш-загрузчик удалит текущую прошивку и начнет установку новой.
  15. После установки прошивки вы можете отключить вывод GPIO0 от земли.
  16. Нажмите кнопку Stop и закройте инструмент загрузки ESP8266.
  17. Перезагрузите модуль ESP8266 ESP-01.
  18. Вы можете использовать это сейчас.

3.1 Использование ESPFlashDownloadTool_v3.6.4

  1. Сделать электромонтаж.
  2. Скачать прошивку Espessif . Может быть SDK NONOS, SDK RTOS или bin-файл. Прошивка Espressif ESP8266 предоставляется в файлах двоичного формата (.BIN). Пользователи могут выбирать между FOTA, (беспроводная прошивка) и бинарными файлами, отличными от FOTA. Вам необходимо распаковать / распаковать файлы из загруженного пакета. В папке bin микропрограммного обеспечения хранятся скомпилированные двоичные файлы для загрузки непосредственно во флэш-память. Вам необходимо 4 файла для загрузки в модуль ESP8266 ESP-01 (адреса загрузки для флэш-памяти размером 512 КБ ): esp_init_data_default.бин 0x7C000 ; blank.bin 0x7E000 ; boot.bin 0x00000 ; user1.bin 0x01000. Файлы esp_init_data_default.bin , blank.bin , boot.bin файлы находятся в папке bin . Файл user1.bin находится в подпапке AT .
  3. Загрузите программу flash tool (загрузчик flash) для обновления прошивки в ESP8266 IC. ESP8266 FLASH DOWNLOAD TOOL — это официальный инструмент для загрузки прошивки, разработанный Espressif.
  4. Подключите преобразователь USB к TTL (преобразователь UART) или плату Arduino Uno к USB-порту ПК.
  5. Откройте программу flash tool (загрузчик flash).
  6. Нажмите ESP8266 Загрузите инструмент кнопку.
  7. Выберите SPIDownload section.
  8. Выберите 4 файла и введите их адреса — esp_init_data_default.bin 0x7C000 ; blank.bin 0x7E000 ; boot.bin 0x00000 ; пользователь1.корзина 0x01000
  9. Проверьте настройки в поле SpiFlashConfig раздела SPIdownload .
  10. Выберите размер флэш-памяти 8 Мбит , скорость SPI 40 МГц , режим SPI DIO , CryctalFreq 26M.
  11. Выберите скорость передачи 115200 и COM-порт (последовательный порт). Вы можете на своем ПК Диспетчер устройств -> Порты (COM и LPT) , к какому USB-порту подключен преобразователь UART / плата Arduino Uno.
  12. Перед тем, как нажать кнопку Start в разделе SPIDownload, убедитесь, что вы заземлили вывод GPIO0 . Это требуется каждый раз при обновлении прошивки.
  13. Нажмите кнопку Пуск . Флэш-загрузчик удалит текущую прошивку и начнет установку новой.
  14. После установки прошивки вы можете отключить вывод GPIO0 от земли.
  15. Нажмите кнопку Stop и закройте инструмент загрузки ESP8266.
  16. Перезагрузите модуль ESP8266 ESP-01.
  17. Вы можете использовать это сейчас.

Сводка

Мы узнали, как обновить прошивку в модуле ESP8266 ESP-01 WI FI.

Библиотека

  • В этом проекте библиотеки не требуются

Рисунок

  • В этом проекте эскизы не нужны
.

ESP8266 WiFi-модуль · PX4 v1.9.0 Руководство пользователя

PX4 QGroundControl QGC SDK MAVLink Документация Документы Поддержка Помогите
  • Вступление
  • Начиная
    • Основные понятия
    • Транспортные средства / Рамы
    • Контроллеры полета
    • Датчики
    • Радиосистемы
    • Режимы полета
    • Уведомления о статусе автомобиля
      • Значение светодиодов
      • Настройка / звуковые значения
      • Предполетная проверка
    • Отчетность о полетах
  • Базовая сборка
    • Установка полетного контроллера
    • Виброизоляция
    • CUAV V5 + Краткое руководство по подключению
    • CUAV V5 nano Краткое руководство по подключению
    • Pixhawk 4: руководство по подключению
    • Pixhawk 4 Mini Wiring: краткое руководство
    • Cube Wiring Quickstart
    • Краткое руководство по подключению Pixracer
    • Pixhawk Wiring Quickstart
  • Базовая конфигурация
    • Прошивка
    • Планер
    • Ориентация датчика
    • Компас
    • Гироскоп
    • Акселерометр
    • Воздушная скорость
    • Калибровка горизонта уровня
    • Настройка радио
    • Режимы полета
    • Аккумулятор
    • Безопасность
  • Конструкция корпуса
    • Справочник по планерам
    • Мультикоптеры
      • DJI F450 (CUAV v5 +)
      • DJI F450 (CUAV v5 nano)
      • QAV250 (Pixhawk4 Mini)
      • DJI F450 + RTK (Pixhawk 3 Pro)
.

Обновление прошивки ESP8266

Для работы с RemoteXY модуль ESP8266 должен иметь прошивку, поддерживающую AT-команды не ниже v0.40. Чтобы проверить версию прошивки, а также обновить прошивку, необходимо подключить модуль к компьютеру через последовательный порт. Модуль можно подключить через плату Arduino или через переходник USB-UART.

Подключение через плату Arduino

При использовании Arduino в качестве преобразователя ATmega устанавливается в режим сброса, и активен только внутренний преобразователь USB-UART.Для этого контакт RESET подключен к земле. Контакты TX и RX подключены к ESP8266 один к одному, но не крест-накрест, как если бы они были подключены к контроллеру в рабочем режиме.


Подключение через переходник USB-UART

Адаптер должен иметь выходной источник питания 3,3 В для ESP8266. Этот выход должен обеспечивать необходимый ток не менее 200 мА.

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

Проверить текущую версию прошивки

Для отправки AT-команд и просмотра ответов нужно использовать любой программный монитор последовательного порта. Очень подходит для работы с последовательным портом в Arduino IDE.Монитор последовательного порта должен быть настроен так, чтобы командная строка отправлялась с окончательными символами NL и CR. Скорость передачи по умолчанию 115200 бод.

Для использования модуля в нормальном режиме контакт CPIO0 должен быть отключен.

Проверить текущую версию прошивки можно с помощью AT-команды: AT + GMR. Пример ответа модуля:


AT + GMR

Версия AT: 0.40.0.0 (8 августа 2015 г. 14:45:58)
Версия SDK: 1.3.0
Ai-Thinker Technology Co., Ltd.
Сборка: 1.3.0.2 11 сен 2015 11:48:04
ОК

Также необходимо знать размер флеш-памяти модуля ESP, от него зависит адрес загрузки прошивки. В данном руководстве описывается обновленная прошивка модуля с объемом флэш-памяти 8 Мбит (512 КБ + 512 КБ) или 16 Мбит (1024 КБ + 1024 КБ), как наиболее распространенная. Размер флэш-памяти можно узнать, отправив AT-команду со сброса: AT + RST.


AT + RST

ОК

ets 8 января 2013 г., первая причина: 2, режим загрузки: (3,1)

нагрузка 0x40100000, лен 1396, комната 16
хвост 4
chksum 0x89
нагрузка 0x3ffe8000, лен 776, комната 4
хвост 4
chksum 0xe8
нагрузка 0x3ffe8308, лен 540, комната 4
хвост 8
chksum 0xc0
csum 0xc0

2-я версия загрузки: 1.4 (b1)
SPI Скорость: 40 МГц
Режим SPI: DIO
SPI Размер флэш-памяти и карта: 8 Мбит (512 КБ + 512 КБ)
перейти к запуску user1 @ 1000

# т # n не использовать данные rtc mem
слЏ‚rlМя
Ai-Thinker Technology Co., Ltd.

готово

Инструмент для обновления прошивки

Для обновления прошивки необходимо загрузить приложение специального инструмента и саму прошивку. Приложение для обновления прошивки ESP8266 будет использовать Flash Download Tools v2.4 с официального сайта Espressif Systems. Ссылка на страницу загрузки: http://espressif.com/en/products/hardware/esp8266ex/resources. Вам необходимо перейти в раздел «Инструменты».

Ссылка на программу в нашем файловом хранилище: FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar

Прошивка

Прошивку также можно скачать с официального сайта. Ссылка на страницу загрузки на официальном сайте: http://espressif.com/en/products/hardware/esp8266ex/resources. Вам необходимо перейти в раздел «SDKs & Demos» и загрузить прошивку ESP8266 NONOS SDK версии не ниже v1.3.0. Эта версия прошивки стала поддерживать AT-команды v0.40.

Ссылка на программу в нашем файловом хранилище: esp8266_nonos_sdk_v1.4.0_15_09_18_0.rar

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

Настройки

Запустить приложение Flash Download Tools v2.4 (одноименный EXE-файл). В открывшемся окне необходимо правильно выбрать загруженные файлы и настроить режим подключения.

Загружаемые файлы находятся в каталоге «bin» с файлами прошивки. Для каждого файла необходимо указать действующий адрес загрузки. Используйте следующую таблицу для выбора файлов и адресов назначения:

Файл в каталоге bin Флеш 8 Мбит (512 КБ + 512 КБ) Флеш 16 Мбит (1024 КБ + 1024 КБ)
esp_init_data_default.bin 0xFC000 0x1FC000
пусто.корзина 0xFE000 0x1FE000
boot_v1.4 (b1) .bin или более поздняя версия 0x00000 0x00000
user1.1024.new.2.bin (в подкаталоге «at») 0x01000 0x01000
user2.1024.new.2.bin (в подкаталоге «at») 0x81000 0x81000

Задайте следующие параметры:

  • SPIAutoSet — комплект;
  • CrystalFreq — 26M;
  • РАЗМЕР ФЛЕШ-памяти — 8 Мбит или 16 Мбит в зависимости от размера флэш-памяти;
  • COM PORT — выберите порт, к которому подключен ESP;
  • БАУДРАТ — 115200

Для запуска процесса обновления прошивки необходимо нажать кнопку «СТАРТ».

Последовательность шагов для обновления прошивки ESP8266

1. Подключите модуль ESP к компьютеру в соответствии со схемой подключения в этой статье.

2. Запустите монитор последовательного порта. Отправьте AT-команду AT + RST и AT + GMR, чтобы определить текущую версию прошивки и размер памяти модуля. Этот шаг также позволяет проверить правильность подключения модуля.

3. Запустите приложение для обновления прошивки Flash Download Tools, правильно настройте загружаемые файлы и адреса, правильно установите настройки.

4. Выключите питание модуля ESP8266.

5. Подключите контакт CPIO0 к земле.

6. Включите питание модуля ESP8266.

7. Нажмите кнопку «СТАРТ» в приложении для обновления прошивки.

8. Дождитесь окончания обновления прошивки. По окончании процесса появляется надпись FINISH зеленого цвета.

9. Отключите питание модуля ESP8266 и отсоедините заземление от контакта CPIO0.

10. Включите модуль и запустите монитор последовательного порта. Убедитесь, что модуль и новая версия прошивки работают, отправив AT-команду AT + GMR.

.

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

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