Как файл бин залить в есп 8266
Начальная прошивка ESP8266 с WiFi
Сегодня на базе чипа ESP8266 выпускается большое количество модулей, о них мы писали в отдельной статье, посвященной этому микроконтроллеру. Заводские ESP8266 идут со стандартной прошивкой от компании Espressif. Этот софт позволяет работать с модулем вай-фай как с обычным модемом, то есть посредством AT команд, которые подаются на последовательный порт. Таким образом, вы можете использовать модули «из коробки» как внешнее WiFi устройство (в зависимости от режима работы это может быть и точка доступа, и ретранслятор).
Но огромным преимуществом ESP8266 является возможность использовать его как микроконтроллер, подключая вешние устройства и программируя логику систему через прошивку. Вот об этом мы и поговорим.
Как прошить ESP8266
Стандартная микропрограмма внутри ESP8266 не только ограничивает наши возможности, но и обладает определенными недостатками (к примеру, медленный интерфейс обмена данными с контроллером), что может быть критично для некоторых проектов. Если мы захотим использовать ESP8266 как полноценный контроллер, нам надо будет записать туда свою программу или интерпретатор, который будет выполнять поступающие из вне команды. Можно выделить несколько основных способов перепрошивки ESP8266:
Прошивка ESP 8266 в Arduino IDE
Почему для прошивки ESP 8266 многие предпочитают использовать Arduino IDE? Есть целый ряд причин, которые оправдывают использование именно данной среды разработки. Во-первых, она очень проста. Скетчи в Arduino IDE пишутся на языке, который в плане синтаксиса напоминает С/С++. Большинство функций, которые используются для программирования платы Ардуино, можно применять для написания прошивки к ESP8826 (к примеру, pinMode(), digitalRead() и пр.). Поэтому если вы писали скетчи для платы Arduino, то проблем с написание прошивки возникнуть не должно.
Во-вторых, Arduino IDE поддерживает множество различных библиотек, которые значительно облегчают процесс программирования. Некоторые из них можно использовать для того, чтобы писать прошивку для ESP8266. К примеру, при создании софта наверняка пригодятся такие модули, как:
- WiFi ESP8266. Объемная библиотека для работы с беспроводной сетью. Позволяет получать IP и MAC адрес в различных режимах (клиент, точка доступа), выводить диагностическую информацию, создавать открытую точку доступа и пр.
- Программный модуль, с помощью которого можно выполнять различные операции через заданное количество времени.
- Библиотека используется для работы с ПЗУ.
- Программный модуль, которые обеспечивает поддержку нескольких, специфических для ESP 8266 функций. К примеру, библиотека позволяет активировать режим глубокого сна и управлять сторожевым таймером. Кроме этого, в состав программного модуля входят функции для перезагрузки девайса, определения размера свободной памяти и т.д.
И это лишь верхушка айсберга. У Arduino IDE есть еще несколько менее значимых преимуществ.
Чтобы использовать среду разработки Ардуино с ESP8266, для начала необходимо произвести предварительную настройку. Именно о ней мы сейчас и поговорим.
Подготовка Arduino IDE
Возвращаемся к списку плат. После инсталляции программного модуля там появилось несколько новых пунктов, которые соответствуют рассматриваемому микроконтроллеру. Надо выбрать вариант Generic ESP8266 Module. Затем следует определить входящий пункт, через уже знакомый раздел Инструменты. Там же следует задать параметры модуля (частота, объем flash-паммяти). На этом настройка программной среды завершена.
Подключение ESP8266
Для подключения ESP8266 не потребуется много коннекторов, так как рассматриваемый аппаратный модуль использует всего несколько пинов. Выходы TX/RX и землю нужно подключить к конвертору TTL-USB (его, в свою очередь, надо подключить к USB). Далее следует подсоединить питание в 3.3В к пину VCC.
Важно! Не стоит использовать питание от USB-TTL конвертера, так как это может привести к нестабильной работе аппаратного модуля. Лучше используйте внешний источник питания.Чтобы иметь возможность загружать на микроконтроллер прошивку, необходимо подсоединить GPIO0 к земле. При таком подключении аппаратный модуль загружает прошивку во flash-память. Запуск программы происходит сразу же, без отсоединения от GPIO.
Важно! Перед загрузкой прошивки для ESP8266 необходимо перезагрузить модуль. Сделать это можно, передёрнув питание или же подав землю на RESET.Последовательность действий при загрузке скетча
Процесс загрузки скетча элементарен. В самой программе необходимо заполнить SSID, а также указать пароль вай-фай. После этого следует клацнуть на кнопочку компиляции и загрузить скетч на устройство.
Важно! Если аппаратный модуль был подключен без автопрошивки, то надо отсоединить пин GPIO0 от земли и передернуть питание.Далее следует перейти в Инструменты > Монитор последовательного порта. Надо выбрать скорость 115200. После этого стоит обратить внимание на терминал. Если модуль подключен к сети, то в таком случае на мониторе должны появится соответствующие надписи. Внизу будет расположен IP адрес аппаратного модуля.
В этом материале мы установим программное обеспечение платы ESP8266 на Arduino IDE, установим драйвер устройства для коммуникационного чипа платы и загрузим эскиз Arduino, который подключается к домашней беспроводной сети Wi-Fi.
Для начала работы понадобятся:
- Компьютер с программным обеспечением Arduino IDE (бесплатно, доступно для Mac/Windows/Linux, к сожалению, в настоящее время веб-редактор не поддерживает ESP8266)
- Плата ESP8266 (Adafruit Feather HUZZAH ESP8266, WiFi со встроенной зарядкой аккумулятора)
- Кабель для программирования (micro USB для Adafruit Feather Huzzah, но для некоторых других требуется программирующее устройство FTDI 3 В)
- Беспроводное подключение к Интернету (не ограничено веб-входом в систему / порталом авторизации или межсетевым экраном) с именем сети и паролем (если применимо)
Добавление поддержки платы ESP8266 в программное обеспечение Arduino
Скачайте и установите последнюю версию программного обеспечения Arduino IDE (скачать) на свой компьютер, если вы этого еще не сделали. Откройте приложение Arduino и перейдите к пункту меню:
Arduino -> Настройки (Arduino -> Preferences)
По умолчанию приложение Arduino поддерживает чипы, используемые на официальных платах Arduino, но не ESP8266.
Эти платы могут быть запрограммированы «из коробки», потому что приложение Arduino уже знает о каждой и ее свойствах. Одна из замечательных особенностей Arduino заключается в том, что вы можете добавить поддержку других плат, и все, что вам нужно сделать, это сообщить Arduino, где можно найти их свойства.
Первым шагом этого процесса является предоставление URL-адреса менеджеру дополнительных плат. В текстовое поле в нижней части окна настроек (см. фото выше) вставьте именно этот текст:
Если поле не было пустым, когда вы открыли окно настроек, возможно, у вас уже установлены некоторые другие платы. Если это так, добавьте содержимое текстового поля к указанному выше URL-адресу, используя запятую для разделения нескольких URL-адресов.
Чтобы получить конкретную информацию, перейдите в пункт меню:
Инструменты -> Плата: (название платы) -> Диспетчер плат (Tools -> Board:(board name) -> Boards Manager)
Подождите некоторое время, пока менеджер плат загрузит содержимое, а затем начните вводить «ESP8266» в строку поиска.
Когда вы увидите «esp8266 от сообщества ESP8266» (англ. - esp8266 by ESP8266 Community), вы можете перестать вводить в поиске и нажать «Установить» (Install), чтобы получить последний пакет для платы, установленный внутри вашего приложения Arduino.
В Feather Huzzah имеется удобный USB-коммуникационный чип, но для его нормальной работы требуется бесплатный драйвер. Без него ваша плата не будет отображаться в списке доступных последовательных устройств. Перейдите на страницу SiLabs (Silicon Lab: CP210x USB to UART Bridge VCP Drivers) и скачайте/установите драйвер, соответствующий вашей операционной системе (доступны Mac/Windows/Linux).
Всё получилось? Отлично, давайте протестируем всё на следующем шаге.
Подключение к Wi-Fi
Пришло время добавить код на плату. Откройте новый эскиз Arduino:
Файл -> Создать (File -> New)
Удалите его содержимое по умолчанию. Скопируйте блок кода и вставьте его в пустой эскиз:
Рекомендуем изучить справочник программиста Ардуино, который подробно описывает различные блоки кода, переменные и другие особенности кода для плат.
Многие использовали этот блок кода в самый первый день знакомства с Arduino. Скажем так, на самом деле мы говорим "Привет, мир!" еще раз, но на этот раз, мигая встроенным светодиодом платы Adafruit Feather Huzzah (подключенного к контакту 0).
Этот код устанавливает переменную для вывода, подключенного к светодиоду, устанавливает этот вывод в качестве выхода, а затем в цикле повторяет схему включения/выключения.
Подключите плату к компьютеру с помощью USB-кабеля и проверьте свои настройки в меню "Сервис" (Tools).
- Плата: (Adafruit Huzzah ESP8266) (или название вашей платы, выберите из списка)
- Размер памяти: "4M (3M SPIFFS)"
- Частота процессора: "80 МГц"
- Скорость загрузки: "115200"
- Порт должен соответствовать вашему последовательному устройству (COMx в Windows, /dev/cu.SLAB_USBtoUART в Mac / Linux), которое будет отображаться только после подключения
- Программер: USBtinyISP
В английской версии программы выглядеть всё будет так:
- Board: Adafruit Huzzah ESP8266
- Flash Size: "4M (3M SPIFFS)"
- CPU Frequency: "80 MHz"
- Upload Speed: "115200"
- Port: COMx
- Programmer: USBtinyISP
Чтобы запрограммировать вашу плату с помощью эскиза мигающего светодиода, нажмите кнопку «Загрузить» (Upload, круглая кнопка в левом верхнем углу со значком стрелки).
Кнопка станет желтой, и текст строки состояния внизу окна сообщит вам о том, что происходит. С помощью ползунка отрегулируйте размер черной консоли отладки под строкой состояния и просмотрите обновления в списке, поскольку приложение компилирует ваш код и загружает его на вашу плату.
Этот процесс будет казаться медленнее, чем вы привыкли, по сравнению с другими Arduino-совместимыми платами. Следите за баром (точки) состояния и терпеливо подтверждайте, что в строке состояния отображается текст «Готово к загрузке» (Done Uploading).
- В меню Arduino -> Настройки (Arduino -> Preferences), есть ли какие-либо случайные символы или ошибки в URL внешних плат?
- Вы видите пакет платы ESP8266 в менеджере плат?
- Если вы используете Feather Huzzah, успешно ли вы закончили установку драйвера SiLabs?
- Если вы используете другую плату, например, с кабелем программирования FTDI, изучали ли вы необходимые шаги установки/настройки? (Некоторые платы требуют комбинации нажатий кнопок для входа в режим загрузчика)
- Ваш кабель USB data + power или только питание?
Если все идет хорошо, красный светодиод на плате должен мигать. Если вы используете другую плату, ваш светодиод может быть подключен к другому выводу или его может не существовать вообще. Код все равно будет успешно загружен, но может не привести к желаемому результату. Благодаря следующему эскизу, который вы загрузите, ваша плата будет подключена к сети Wi-Fi.
Следующий пример кода поставляется с пакетом плат ESP8266 и уже доступен в вашем программном обеспечении Arduino. Получите доступ к нему, перейдя в:
Файл -> Примеры -> ESP8266WiFi -> WifiClientBasic
File -> Examples -> ESP8266WiFi -> WifiClientBasic
Кроме того, вы можете скачать файл ниже и открыть его с помощью программного обеспечения Arduino. Однако, если вы не видите скетч в меню вашего программного обеспечения, вам, вероятно, также не хватает необходимых библиотек для его компиляции - вернитесь к шагу настройки программного обеспечения и дважды проверьте, что вы установили необходимый пакет.
Отредактируйте переменные, описывающие имя (имена) и пароль (пароли) беспроводной сети («SSID» и «passpasspass»). Если в вашей сети нет пароля, оставьте аргумент пароля пустым (""), но не опускайте его. Сохраните эскиз и загрузите его на свою плату.
Поскольку 192.168.1.1 является локальной сетью, которая может существовать или не существовать, соединение, скорее всего, не будет установлено.
Обновите переменную хоста для любого понравившегося вам сайта, например "google.com", просто чтобы проверить ваше соединение. Загрузите новый эскиз на свою плату и откройте Serial Monitor, чтобы увидеть другой результат. Поздравляю, ваша плата только что пообщалась с интернетом.
Установка дополнительных библиотек
Теперь, когда у вас есть базовая настройка ESP8266, давайте установим несколько дополнительных библиотек Arduino, которые будут использоваться для последующих уроков. В вашем программном обеспечении Arduino перейдите в:
Sketch-> Включить библиотеку -> Управление библиотеками
Sketch-> Include Library -> Manage Libraries
Затем найдите и установите последние версии следующих библиотек:
Вы также можете установить библиотеки вручную, скачав их и поместив в папку с библиотеками Arduino. Узнайте больше о библиотеках Arduino в нашем разделе Библиотеки и в статье Установка и подключение библиотек в Arduino IDE.
В конце нам необходимо создать бесплатные учетные записи на двух веб-сайтах облачных сервисов: Adafruit IO и IFTTT.
Adafruit IO - это облачная служба данных, которая позволяет вам настраивать потоки данных, называемые каналами, для сбора информации, поступающей от ваших проектов в области электроники. Вы можете визуализировать и использовать эти каналы в Adafruit IO или расширить его функции, связав его с IFTTT.
IFTTT - это сайт, который объединяет и предоставляет интерфейс для множества приложений и поэтому называется шлюзом API.
Я настоятельно рекомендую включить двухфакторную аутентификацию в вашей учетной записи IFTTT, так как вы, скорее всего, захотите связать ее с другими вашими личными учетными записями, такими как Twitter, Instagram, Fitbit и т.д.
Защитите свои учетные записи от хакеров и спам-ботов! Вам также нужно будет связать свои аккаунты Adafruit и IFTTT, что вы можете сделать через любой сайт. Пока вы на нем, установите приложение IFTTT, если у вас есть устройство iOS или Android.
Теперь, когда ваше программное обеспечение настроено, мы сможем в следующих материалах углубиться в аппаратное обеспечение.
ESP8266 — китайский микроконтроллер (далее МК) от производителя Espressif с поддержкой WiFi-интерфейса. Управлять всем этим можно не только с браузера, но и из приложений на Android/iOS/Desktop. Если МК будет применяться там, куда не достаёт WiFi-сеть, то ESP8266 может работать в режиме точки доступа.
Примечание В этой статье не будут рассмотрены практические примеры применения ESP8266. Речь пойдёт об основных преимуществах и возможностях этого МК.
Содержание:
Микроконтроллер ESP8266 работает с внешней flash-памятью по интерфейсу SPI. Её объём варьируется от 512 Кбайт до 4 Мбайт. При желании и умении микросхему памяти можно будет перепаять на версию до 32 Мбайт.
Разновидности МК серии ESP и их плат
Существует около полутора десятка версий МК серии ESP и огромное количество плат с ними. Рассмотрим самые популярные из них.
Микроконтроллеры ESP8266
ESP-01
- Имеет 8 разведённых контактов (VCC, GND, UTXD, URXD, CH_PD, GPIO0, GPIO2, GPIO6) и PCB-антенну (печатный проводник на самой плате).
- Из разведённых выводов тут присутствуют только 3 GPIO, но не стоит видеть в этом одни минусы. Если нужно будет управлять одним реле или получать данные с датчика температуры, вам не понадобятся все выводы МК, достаточно будет лишь пары. К тому же, существуют платы и шилды с возможностью простой коммутации именно к этой версии МК. Например такая:
ESP-03
- Здесь появляется керамическая антенна. Она считается немного эффективней своего печатного собрата.
- Также на плате разведены все доступные выводы GPIO. В этой статье описана разница между типами антенн для микроконтроллеров ESP8266.
ESP-07
- В этой версии в глаза сразу бросается металлический экран (который перед этим появляется на ESP-06).
- На борту керамическая антенна и разъём для внешней антенны.
ESP-12
Разные варианты микроконтроллера ESP-12. Источник
В свою очередь, существует несколько вариантов этой версии: ESP-12S, ESP-12F, ESP-12E. Вторая и третья версии имеют на торце дополнительно 6 разведённых контактов.
Платы
WeMos D1 mini
Плата WeMos D1 mini. Источник
- Имеет распайку девяти GPIO-контактов.
- На плате имеется небезызвестный мост CH34x (такие часто ставят на клоны Arduino).
- Установлен МК с 4 Мбайт flash-памяти.
- Недостаток для некоторых — придётся самому паять контакты на плату (идут в комплекте).
- Конструкционно совместима с различными выпускаемыми шилдами реле/датчиками.
NodeMCU v0.9/v1
Плата NodeMCU v0.9. Источник
Первое поколение плат серии NodeMCU. На ней распаяны все 11 GPIO-портов. Некоторые из них обладают дополнительными функциями (UART, I2C, SPI, PWM, ADC). Хотя на плате впаяны контакты, она занимает всю ширину беспаечной макетной платы, что затрудняет работу на ней. МК имеет 4 Мбайт flash-памяти. Также имеется мост CH340.
NodeMCU v3
Плата NodeMCU v3. Источник
Финальная версия платы этой серии. Существует и v2 «Amica», которая меньше по габаритам. v3 носит название «LoLin» и отличается от предыдущей версии только размерами и незначительными деталями (например дополнительной распайкой шины питания). Кроме традиционного моста CH340/CH341 на платы ставят чип CP2102, так что внимательней с выбором драйвера на них.
Характеристики
Все эти (и не только эти) платы выполнены на чипсете микроконтроллера ESP8266EX, а следовательно, характеристики у них одинаковые:
Как работать с микроконтроллером ESP8266?
Есть два способа работы с ним:
- управление через AT-команды и автономная работа со своей прошивкой. В первом случае ESP8266 работает только в паре с другими МК, во втором — может работать независимо (хотя никто не запрещает присоединить её к другому МК).
- «Из коробки» МК поставляется с прошивкой для работы через AT-команды. Для этого ESP8266 подключается к любому другому МК по UART-интерфейсу. Для демонстрации работы AT-команд ESP8266 можно подключить к компьютеру через USB-UART переходник и запустить монитор последовательного порта (например из Arduino IDE). Про то, как работать с этими командами, можно прочитать в этой статье.
Прошивка
В большинстве случаев намного удобней прошивать МК и работать с ним со своей прошивкой. Однако тут тоже есть свои нюансы. Вот 3 варианта событий:
В чём прошивается?
Например NodeMCU Flasher (которая подходит не только для плат NodeMCU) или ESPTool (необходим Python).
Однако в этой статье работа с МК и процесс прошивки будут рассмотрены в Arduino IDE.
Потом открываем Инструменты → Плата → Менеджер плат и в открывшемся списке в самом низу находим плату «esp8266 by ESP8266 Community» (если с этим возникли трудности — используем поиск вверху окна). Устанавливаем последнюю версию платы (около 150 Мбайт).
Старт 22 ноября, 4 месяца, Онлайн, От 35 000 до 100 000 ₽
После установки в списке плат появится немалое количество плат. Если не нашли свою плату или не знаете её названия — выбирайте Generic ESP8266 Module. Теперь можно выбрать свой МК в списке COM-портов.
У ESP8266 две скорости передачи: основная — её вы указываете при инициализации последовательного порта, и скорость, на которой передаётся отладочная информация. Она передаётся сразу после подачи питания на МК. Обычно это скорости 115200 бод и 74800 бод 0 соответственно.
Основы
Если вы не владеете базовыми знаниями работы с платформой Arduino, наверстать упущенное можно в нашей статье про основы использования Arduino.
После скачивания платы ESP8266 с помощью менеджера, в примерах появится большое количество скетчей. Рассмотрим один из них (Файл → Примеры → ESP8266WebServer → HelloServer):
Что делает этот скетч? МК подключается к вашей WiFi-сети и запускает сервер. В монитор последовательного порта выведется локальный IP-адрес (к примеру, 192.168.0.105 ). Вбиваем этот IP в адресную строку браузера, после чего в нём должна отобразиться строка «Привет от ESP8266!». Таким же образом можно проверить адрес /inline .
Ознакомиться с API МК можно в их официальном репозитории.
Распределение памяти
Внешняя память распределена на следующие разделы:
- скетчи (память для прошивки);
- файловая система SPIFFS;
- OTA-Update (прошивка, переданная «по воздуху»);
- EEPROM (да-да, её у МК тоже нет, поэтому она имитируется на flash-памяти);
- конфигурация WiFi.
Файловая система SPIFFS
Один из плюсов внешней flash-памяти — файловая система. В неё можно с лёгкостью записать файлы (веб-странички, медиа-файлы и прочее) на микроконтроллеры ESP8266. На аппаратном уровне это можно было бы реализовать подключив к МК модуль SD-карт. Однако это решение требует свободных портов.
Размер файловой системы (от 32 Кбайт до 15 Мбайт) зависит от самого объема flash-памяти и от конфигурации, выставленной в Инстурменты → Flash size. Например, конфигурация 4M (2M SPIFFS) предназначена для МК с общим объёмом flash-памяти 4 Мбайт, 2 Мбайт из которых будут выделены под файловую систему.
SPIFFS не работает с папками — она содержит только список файлов. Соответственно, если загрузить в неё папку style, в которой будет файл header.css, то в файловую систему систему запишется файл с именем /style/header.css. Об этом стоит помнить, потому что длина файлового имени не должна превышать 31 символ (читается 32, но символ с кодом 0 отведён под завершение строки).
Для загрузки файлов потребуется инструмент ESP8266FS, интегрирующийся в Arduino IDE. Инструкция по установке:
Как работать с SPIFFS и файлами в ней, можно узнать в этой статье.
Энергонезависимая память EEPROM
Работа с внешней памятью немного отличается от стандартной.
Прошивка «по воздуху» OTA-Update
Для этого вам потребуется установленный Python.
После этого достаточно в метод loop() добавить строку: ArduinoOTA.handle() .
Прошиваем МК по проводу. В случае успешной загрузки в списке портов появится новый хост с именем «esp8266-xxxxxx», где esp8266 — указанное выше имя хоста, а xxxxxx — локальный IP-адрес МК. Выбираем его.
Это вторая статья автора об интегральной микросхеме ESP8266, содержащей полнофункциональный 32-битный RISC микроконтроллер и встроенную Wi-Fi схему 802.11 b/g/n. Первая статья описывала использование Arduino IDE для программирования ESP8266 и содержит важную информацию, которая здесь повторяться не будет. Если вы не читали её, то рекомендуем сделать это.
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
Включите 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
Теперь снова запустите 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 могут уже содержать данные;
- окно лога уже может содержать данные.
Получение последней прошивки
Последняя версия 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 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
- кликните внутри поля ввода " set firmware path ";
- кликните по кнопке . справа от поля ввода;
- перейдите к месту хранения файла и кликните по файлу. GUI автоматически введет путь к файлу в поле ввода;
- введите правильный адрес (из таблицы) для каждого файла.
Обратите внимание, что файлы, которые должны быть загружены, могут быть не такими, как те, что указаны в таблице в этом примере, но будут близки к ним.
Теперь кликните на четыре флажка слева от имени каждого из файлов. Окно графического интерфейса программы Flash Download Tool должно быть похоже на рисунок ниже. Дважды проверьте адреса по таблице.
Настройка параметров прошивки ESP8266 в программе 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 команд.
Читайте также: