ESP8266 Урок 4 Прошиваем ESP-01 — подробная инструкция

ESP8266 Урок 4: Прошиваем ESP-01 — подробная инструкция

ESP8266 Урок 4: Прошиваем ESP-01 - подробная инструкция

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

Основы программирования ESP8266 заключаются в использовании AT-команд, которые позволяют управлять модулем через портовые строки. На данный момент существует несколько способов прошивки модуля ESP-01, но в данной инструкции мы рассмотрим один из самых простых и надежных – через USB-UART мост.

Для прошивки модуля ESP-01 с использованием USB-UART моста нам понадобятся следующие компоненты: сам модуль ESP-01, USB-UART модуль, провода для подключения и компьютер с установленным драйвером для USB-UART модуля. Начнем с того, что подключим модуль ESP-01 к USB-UART модулю.

После подключения модуля ESP-01 к USB-UART модулю, можем приступить к прошивке. Для этого нам понадобится программное обеспечение, такие как esplorer и nodemcu-flasher, a также сама прошивка, которую мы будем прошивать в flash-память модуля. Программа esplorer поможет нам проверить работу модуля и прошить модуль при необходимости, а nodemcu-flasher позволит прошить модуль без его подключения к USB-UART.

Знакомство с недорогим и функциональным микроконтроллером ESP8266

Для прошивки модуля ESP-01 вам потребуется flash-память, которая хранит прошивку и другие файлы. Прошивку можно сразу передать в flash-память с помощью USB-UART конвертера или использовать другие разновидности прошивок, такие как OTA-обновления (over-the-air). Наши файлы должны быть разложены по папкам: ota-update, tools и файла. Один из способов прошить прошивку — использовать программу nodemcu-flasher, в которой нужно указать адрес файла прошивки.

ESP8266 поддерживает различные команды, которые передаются через UART, и позволяет работать с файловой системой. При работе в режиме командной строки, вы можете использовать команды для доступа к файловой системе, подбирая нужные настройки и проверяя файлы. Источник прошивки указывается в виде строки, и процесс прошивки начинается после нажатия кнопки «Прошить».

Если вы предпочитаете прошивать ESP8266 по-старинке, то вам понадобится USB-UART конвертер. Данный конвертор подключается к ESP8266 и используется для загрузки прошивки в flash-память. По умолчанию, адрес UART для ESP8266 составляет 115200 бит/с. Для прошивки ESP8266 вам также понадобится файловая система. Для этого можно воспользоваться программой «ESPlorer», которая позволит прошивать модуль и работать с файлами.

В итоге, обладая ESP8266, вы можете свободно работать с файловой системой и прошивать модуль. Благодаря наличию встроенного Wi-Fi и большому списку доступных модулей, ESP8266 становится отличным выбором для всех типов проектов.

Прошивка и пример использования

Если вам нужно прошить ESP8266, этот модуль может быть прошит через командную строку, используя такие инструменты, как NodeMCU-Flasher и ESPlorer. При прошивке модуля энергонезависимая память EEPROM не затрагивается, поэтому данные, сохраненные в EEPROM, не будут удалены.

Одним из способов прошивки модуля является использование OTA (over-the-air) обновления. Этот метод также подходит для обновления прошивки микроконтроллера через Wi-Fi. Вы можете прочитать и записать данные в память ESP8266 с помощью функций EEPROM.read() и EEPROM.write().

Если у вас имеется файл прошивки, который вы хотите установить на ESP8266, вы можете загрузить его на устройство через программу NodeMCU-Flasher.

ESP-01 имеет небольшой объем памяти, поэтому для управления файлами на модуле используется файловая система SPIFFS (SPI Flash File System). Она позволяет хранить и управлять файлами на flash-памяти модуля. Для работы с SPIFFS в ESP8266 имеется инструмент ESPlorer, с помощью которого можно работать с файлами на модуле.

Если вам необходимо прочитать характеристики памяти модуля ESP8266, вы можете использовать метод ESP.getFlashChipSize(). Последняя прошивка ESP8266 поддерживает Wi-Fi и имеет адрес 192.168.1.1.

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

Пример использования модуля ESP8266 может быть следующим. При подключении модуля к системе, он отправляет сообщение о своем наличии и характеристиках, после чего пользователь может взаимодействовать с модулем через адрес 192.168.1.1 и управлять функциями модуля с помощью файла index.html.

Основы и характеристики

ESP-01 — это миниатюрный Wi-Fi модуль, представляющий собой микроконтроллер с встроенным Wi-Fi. Он имеет всего два контакта для подключения к внешней плате и очень ограниченный объём памяти.

Для управления ESP-01, необходимо загрузить нашу прошивку на модуль. Для этого мы можем воспользоваться различными инструментами и методами.

Первым инструментом, которым мы попробуем воспользоваться, будет программное обеспечение ESPlorer. ESPlorer — это графический интерфейс, который позволяет управлять ESP-микроконтроллером через UART (серийный интерфейс). Для подключения к модулю ESP-01 можно использовать USB-UART мост.

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

Еще одним способом прошивки ESP-01 является использование программы NodeMCU Flasher. Она позволяет загрузить прошивку на модуль без необходимости внешней платы и USB-UART моста.

ESP-01 имеет малый объём встроенной EEPROM памяти. Но этим не стоит ограничиваться — микроконтроллеры ESP8266 также имеют возможность подключения микроконтроллера к модулю с внешней EEPROM памятью.

Читайте также:  Что делать если Windows 10 не перезагружается проблемы и способы решения

Память модуля ESP-01 также подходит для прошивки методом SPIFFS (SPI Flash File System). Этот метод позволяет хранить файлы на флэш-памяти ESP8266 и обращаться к ним через HTTP протокол.

Характеристики модуля ESP-01

  • Миниатюрный Wi-Fi модуль
  • Ограниченный объем памяти
  • Два контакта для подключения

Энергонезависимая память EEPROM

В этом разделе мы рассмотрим энергонезависимую память EEPROM, которая есть на ESP8266.

На плате ESP-01 эта память имеет размер 512 байт, поэтому она используется для хранения небольших объемов данных.

Для работы с EEPROM потребуется прошивка, которую мы рассмотрели в прошлом уроке. Если вы уже прошили плату ESP-01 с помощью nodemcu-flasher, то у вас уже есть этот функционал.

ESP8266 также поддерживает один из методов обновления прошивки под названием OTA (Over-The-Air), который позволяет обновлять прошивку через Wi-Fi. Однако, для этого нужно использовать другую версию прошивки, которая называется nodemcu-ota-update или espressif-ota-update.

В данном случае мы сразу не можем управлять памятью EEPROM, но можно сделать это с помощью файла, который помещается в специальную папку в файловой системе модуля ESP8266.

Подключение EEPROM

На плате ESP-01 есть два доступных порта: GPIO0 и GPIO2. Именно они можно использовать для подключения энергонезависимой памяти EEPROM.

Адрес памяти EEPROM начинается с 0x00 и может быть использован для записи и чтения данных. Конкретный адрес данных может быть получен из строки «EEPROM.begin(address)».

Для работы с EEPROM вам потребуется программа под названием «esplorer», которую можно скачать и установить с официального сайта проекта. Она позволяет работать с памятью EEPROM и прошивать микроконтроллеры ESP8266.

В начале работы с EEPROM мы прошиваем ESP8266 с помощью esplorer и загружаем нашу прошивку в модуль ESP-01.

Работа с EEPROM

Затем мы можем использовать функции для работы с памятью EEPROM. Для этого мы должны подключить файловую систему SPIFFS к нашей плате.

Метод EEPROM.begin() позволяет использовать память EEPROM в коде прошивки. Этот метод должен быть вызван один раз в начале работы с памятью EEPROM.

Мы можем использовать функцию EEPROM.write(address, value) для записи значения value в адрес address памяти EEPROM.

Для чтения значения из памяти EEPROM мы можем использовать функцию EEPROM.read(address), которая возвращает значение по указанному адресу.

Метод EEPROM.commit() используется для сохранения изменений в памяти EEPROM.

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

Также, функция EEPROM.put(address, value) позволяет записывать данные переменной value по адресу address в памяти EEPROM, а функция EEPROM.get(address, value) считывает данные с адреса address в переменную value.

Попробуем записать и прочитать данные из памяти EEPROM:

#include 
int address = 0;
int value = 5;
void setup() {
EEPROM.begin(512);
EEPROM.write(address, value);
EEPROM.commit();
int data = EEPROM.read(address);
Serial.begin(9600);
Serial.print("Data: ");
Serial.println(data);
}
void loop() {
}

Надеюсь, данная информация поможет вам освоить работу с энергонезависимой памятью EEPROM на ESP8266.

Файловая система SPIFFS

Во время прошивки ESP-01 установка прошивки в память микроконтроллера flash позволяет управлять файлами в его внутренней памяти. Для работы с файлами используется файловая система SPIFFS (SPI Flash File System), которая основана на использовании флэш-памяти микроконтроллера.

При прошивке ESP-01 с помощью платы NodeMCU или Wemos D1 Mini, прошивается два образа: сама прошивка и файловая система SPIFFS.

Файловая система SPIFFS существует как отдельный файл, который содержит все файлы, папки и структуру файловой системы. После прошивки этот файл появляется в корневой папке ESPlorer с именем spiffs.bin.

Для работы с файловой системой мы можем использовать команды ESPlorer, однако, также существует интересный и удобный инструмент для работы с файловой системой SPIFFS, называемый макетом файловой системы (OTA-Update). Этот инструмент позволяет загружать, удалять и переименовывать файлы, добавлять и удалять папки, а также просматривать содержимое файловой системы.

Изначально OTA-Update можно увидеть только после прошивки макета файловой системы. Например, если прошить прошивку NodeMCU, то спустя некоторое время после загрузки прошивки в действующий порт должен поступить запрос на добавление этой функции в консоль ESP SDK или появиться файл соответствующей версии в папке ESP8266 для espressif.

Для загрузки макета файловой системы в память микроконтроллера flas используется программа Nodemcu-flasher, в котором есть раздел ‘SPIFFS’. Затем развернем файловую систему.

Загружать/удалять файлы в макете файловой системы можно с помощью следующих команд:

  • file.open() — открытие файла для чтения или записи
  • file.remove() — удаление файла
  • file.rename() — переименование файла
  • file.isDirectory() — проверка, является ли файл каталогом

Также можем проверить работу SPIFFS на примере ESP-12 (нормально работает файловая система SPIFFS на функциональных платах).

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

Скомпилируем исходник некой прошивки для ESP-01, переведём последнюю версию платы и выведем на экран.

ESP-12 имеет память SPI flash вместимостью 4 MB — это означает, что на этой плате вы подходите для микроконтроллера esp-12 платин, вы сразу можете использовать скрипт DNSServer, который у нас здесь также имеется.

Если вы посмотрите код FlashCity на платы с соответствующим объёмом памяти на SPI-флэш памяти, то сможете проверить и увидеть как будет работать ваша прошивка.

Также можно добавить в программу функциональный блок для чтения памяти SPI для проверки группы ESP.

Таким образом, мы можем продолжить знакомство с функциональной платой ESP и спокойно прошить наш микроконтроллер с использованием ESPFLASH Adaptation Kit SDK.

Распределение памяти и место для прошивки

При прошивке ESP-01, которая имеет всего 1 Мбайт flash-памяти, важно правильно распределить доступное место. Давайте разберемся, как это делается.

Модуль ESP-01 имеет две основные области flash-памяти: «boot» и «application». Boot область занимает первые 4096 байт и содержит код, отвечающий за загрузку и выполнение программы. Application область оставшихся байт flash-памяти может использоваться для самой прошивки.

Прошивка модуля ESP-01 может быть выполнена разными способами. Есть специальные прошивальные утилиты, которые работают через последовательный порт и управляют процессом прошивки. Это наиболее надежный метод, который не требует особых навыков и отлично подходит для начинающих.

Также существует метод прошивки через WiFi, который называется ota-update (over-the-air update). С его помощью прошивку можно производить без подключения к командной шине микроконтроллера.

В нашей статье мы воспользуемся удобным и простым способом прошивки ESP-01 с использованием специального переходника USB-TTL и прошивальной утилиты ESP8266Flasher.

Возможно, в видеоуроке вы заметили, что при прошивке двух плат ESP-01 день изишился чуть по-разному. В случае прошивки одной платы эта разница может быть значительной для нашей прошивки. Но не стоит пугаться: если прошивать плату два-три раза, к нам случайно попадется вариант максимального использования памяти.

Основые настройки прошивки находятся в файле прошивки в фориате .bin. В нем находятся два основных составляющих: файловая система и функция прошивки, отвечающая за работу модуля.

Итак, в прошивку esp-01 должны быть включены:

1. «boot» и «application».

2. Файловая система, отвечающая за хранение всех файлов на модуле.

3. Функция прошивки, отвечающая за работу модуля. Она считывает настройки из файла, переходит в нужный режим, подключается к Wi-Fi и обновляет прошивку в случае необходимости.

Когда мы прошили нашу плату, то операционка оказалась впритык даже сфшаренной файловой системой, наш ESP-01 спокойно прошилось. Вшиш запустился и в случае проблем при работе выдает сообщение «There is no AT Command to run». Но на данный момент, обновить файлы в нем будет невозможно. Однако плата также поддерживает прошивку через OTA-update через Wi-Fi.

Важно знать о е енергонезависимая память — это флэш память ф шине, работающая независимо от основного питания, чтобы, при выключении питания, информация в памяти не терялась. В usb-ttl переходнике она имеет размер 32 Мб, это все свободное место на плате модуля, которое необходимо поделить на разделы, где будет прошиться каждая часть прошивки.

Таким образом, при прошивке ESP-01 с помощью переходника USB-TTL и прошивальной утилиты ESP8266Flasher потребуется прошить модуль дважды: сначала прошить «boot», а затем «application».

В версии 1.6.2.0. утилиты ESP8266Flasher появилась расширенная версия настроек, где можно настроить объем памяти для «boot» и «application». Одножды узнав эти основные настройки, можно спокойно начинать работать.

Настройки: папку с файлами прошивки указываем в поле «Path» вверху. «SpiSize» — объем памяти для «boot» и «application». Сразу после поставим 128Кб (выполнение на собственной плате на данный момент уже не работает), что в 2 раза меньше рекомендации. Затем увеличиваем до 4096 байт, что эквивалентно 4-м килобайтам Файловые системы, и загружаем прошивку «boot_v1.7.bin», указав процессор ESP8266 и частоту 40 МГц. Прошивка прошилась удачно. Далее выполняем вторую прошивку, выбрав файл «at\1024+1024\blank.bin», устанавливаем все параметры и меняем способ записи.

Таким образом, мы разобрались с распределением памяти и местом для прошивки на плате ESP-01. Теперь мы готовы перейти к процессу прошивки.

Прошивка «по воздуху» OTA-Update

Для такой прошивки потребуется иметь wi-fi соединение и установленную последнюю версию Arduino IDE, поскольку мы будем работать с flash-памятью и использовать специальные инструменты (tools) в Arduino IDE.

В прошлом, для прошивки flash-памятью необходимо было подключать специальный программатор к плате и прошивать ее скетчами. Теперь данный метод можем применить для всех разновидностей плат esp8266 и не только. Все, что нам понадобится — это более новая версия Arduino IDE и возможность подключиться к интернету.

Важно отметить, что прошивка по воздуху работает только с flash-памятью, а не с EEPROM. Еще один момент — если вы используете одни из самых популярных модулей esp8266 — esp-12 или ESP-01, то для прошивки по воздуху потребуется дополнительная плата.

Платы, с которыми можно прошить модуль esp-01 по воздуху

В случае использования esp-01 существует несколько вариантов плат, которые подходят для прошивки по воздуху. Одна из них — это esp8266 adapter. Другой вариант — это esp8266сh340g.

Можно также использовать FTDI232, CP2102, CH2302 или любой другой USB-UART конвертер.

Как прошить esp-01 по воздуху

Для работы с esp-01 по воздуху необходимо скомпилировать новую версию скетча в режиме «Generic esp8266 module» и перевести модуль esp-01 в режим прошивки. Перевод модуля в режим прошивки можно сделать просто поменяв провода местами на плате или воспользовавшись специальным переходником.

Для прошивки esp-01 по воздуху используется метод, называемый «стандартным методом ota-update». Этот метод разработан специально для мк с flash-памятью, которая имеет функцию энергонезависимой памяти или EEPROM.

Функция оta-update позволяет управлять процессом прошивки через wi-fi. Для этого в системе создается мост между файловой системой flash-памятью и файловой системой с вашим прошиваемым скетчем при помощи функции «Update1(зарезервированная флеш или «основная» flash-память)» и функции «SteamFile(файл для программатора)».

Результаты прошивки по воздуху

Данный метод позволяет прошивать любые версии плат esp8266, включая esp-12 и esp-01.

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

Таким образом, этот метод позволяет прошить модуль esp-01 без подключения к компьютеру, только через wi-fi, а также обновить все необходимые файлы, в том числе и fiash-память.

Разновидности МК серии ESP и их плат

Разбираясь с прошивкой ESP-01, мы познакомимся с разнообразием микроконтроллеров серии ESP и их плат. В этом уроке мы будем использовать прошивку именно для ESP-01, но многие из описанных в прошлом уроке этапов будут подходить и для других разновидностей ESP микроконтроллеров.

Одна из наиболее популярных плат, основанных на микроконтроллере ESP, это плата под названием NodeMCU. Она совместима с большим количеством дополнительных модулей и имеет встроенный USB-TTL чип, что делает ее удобной для управления и программирования. Плата NodeMCU обычно используется в проектах Интернета вещей (IoT).

Еще одной популярной платой является Wemos. Она также основана на микроконтроллере ESP, но в отличие от NodeMCU, она имеет меньший размер и более компактный дизайн. Плата Wemos также подходит для различных проектов и является надежным выбором для разработчиков.

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

Флеш-память и файловая система

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

При прошивке микроконтроллера на ESP плате, мы используем файловую систему для хранения и передачи данных. Например, при прошивке с помощью инструмента nodemcu-flasher, мы передаем файлы с программой на микроконтроллер по сети.

Есть еще один способ прошить микроконтроллер, который называется OTA-обновление (OTA-update). Этот способ позволяет прошивать микроконтроллеры без проводного подключения, через Wi-Fi. Для этого необходимо настроить специальные настройки в программе и плате.

Подбираем подходящую плату

Выбор платы для проекта зависит от конкретных требований и условий использования. При выборе платы необходимо учитывать такие параметры, как количество пинов для подключения датчиков и других устройств, наличие встроенного USB-TTL чипа, наличие flash-памяти для хранения программ и данных, энергонезависимость и др.

Также необходимо учитывать возможности микроконтроллера, его скорость работы и поддерживаемые функции. Например, плата с микроконтроллером ESP может работать на частоте около 80 МГц и имеет возможность управлять Wi-Fi соединением.

Пример прошивки ESP-01

Для знакомства с процессом прошивки ESP-01 попробуем прошить ее с помощью инструмента nodemcu-flasher. Перед началом прошивки необходимо подготовить файлы, которые будут прошиваться, и папку, в которую эти файлы будут считываться для прошивки.

В прошлом уроке мы уже получили файлы для прошивки ESP-01, и в этом уроке мы будем использовать эти файлы. Откроем nodemcu-flasher и выберем папку, содержащую файлы, которые мы хотим прошить.

После выбора папки, нажмем кнопку «Flash», чтобы начать процесс прошивки. В процессе прошивки программа передает данные из файлов на микроконтроллер и показывает прогресс прошивки. После успешной прошивки можно получить сообщение об этом.

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

Как работать с микроконтроллером ESP8266

Микроконтроллеры ESP8266 изначально разработаны для работы как модуль Wi-Fi. В прошлом они использовались в основном в качестве компонента для подключения к интернету. Но сейчас они получили большую популярность благодаря своим характеристикам и удобству в использовании.

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

Для прошивки ESP8266 можно использовать различные инструменты, такие как Arduino IDE, ESP-IDF или PlatformIO. Каждый из них имеет свои особенности и подходит для определенных задач. Но в данной инструкции мы рассмотрим процесс прошивки ESP8266 с использованием Arduino IDE.

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

  1. У микроконтроллера ESP8266 есть два основных разводных порта: GPIO0 и GPIO2. GPIO0 — управляет режимом работы микроконтроллера, GPIO2 — используется для подключения внешней платы.
  2. При прошивке ESP8266 через USB-UART конвертер, который подключается к USB-порту компьютера, в нашем случае, к USB-порту Arduino, файл прошивки передаётся напрямую посредством flash-памяти. Данная прошивка называется OTA (Over-The-Air) Update.
  3. ESP8266 имеет свою файловую систему под названием SPIFFS (SPI Flash File System). С её помощью мы можем загружать файлы на микроконтроллер и осуществлять с ними работу.
  4. Для прошивки микроконтроллера ESP8266 нам потребуется специальный программатор, который будет подключаться к порту программирования на плате и передавать прошивку микроконтроллеру. В данной инструкции мы будем использовать USB-UART конвертер.

Таким образом, чтобы прошить микроконтроллер ESP8266 в режиме flash-памяти с последней прошивкой OTA Update и возможностью работы с файловой системой SPIFFS, мы должны выполнить следующие шаги:

  1. Переключить микроконтроллер ESP8266 в режим программирования, подключив GPIO0 к GND.
  2. Подключить USB-UART конвертер к порту программирования микроконтроллера.
  3. Открыть Arduino IDE и выбрать соответствующую плату и порт.
  4. Загрузить программу Blink на микроконтроллер.
  5. Развернуть SPIFFS и передать нашу последнюю прошивку.
  6. Прошить микроконтроллер с помощью OTA Update.
  7. Прочитать сообщение, которое будет выведено внизу окна Arduino IDE при успешной прошивке.

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

Видео:

Разработка WEB-интерфейса для ESP8266. Часть 1: Подготовка скетча в Arduino IDE

Разработка WEB-интерфейса для ESP8266. Часть 1: Подготовка скетча в Arduino IDE by iomoio 99,140 views 4 years ago 13 minutes, 52 seconds

Оцените статью