Цена:
Модуль разработки приложений беспроводной связи WiFi на микроконтроллере ESP-12F ESP8266
Зарождение и активное развитие современной технологии беспроводной связи WiFi послужило появлению многочисленных устройств, получивших удобное и эффективное средство удалённого взаимодействия и обмена информацией. На протяжении сравнительного небольшого промежутка времени, технология WiFi надёжно закрепилась во многих сферах жизнедеятельности человека, перечислять которые наверное и смысла нет, достаточно просто оглядеться вокруг. Нет смысла сомневаться в том, что механизмы беспроводной связи WiFi стали по-настоящему неотъемлемой частью компьютерной техники и мобильных гаджетов, а также всё настойчивее внедряются в системы промышленного и индустриального оборудования. Одной из главных достоинств WiFi следует назвать безграничную возможность создания всевозможных сетей без использования морально устаревших проводных соединений.
В основе платы с интегрированным модулем ESP-12F использован чип ESP8266EX компании Espressif Systems, выпуск которого стартовал в 2014 году. ESP8266 признан мировым сообществом как высокопроизводительный низкоценовой продукт с большим потенциалом, предоставляющий возможность широкой массе любителей-энтузиастов или профессиональных специалистов разрабатывать собственные уникальные или инновационные устройства с полноценным WiFi-функционалом. Инструменты поддержки ESP8266 есть во многих популярных программных комплексах и средах разработки пользовательских приложений, включая официальный источник производителя чипа. Для ESP8266EX опубликовано огромное количество совместимых библиотек и примеров, облегчающих программирование контроллера. При желании, ESP8266EX станет отличным подспорьем для получения базовых знаний о способах программирования простых исполняющих микросхем, главных принципов построения сетевых соединений и схем взаимодействия с периферийной электроникой, и может быть задействован в роли учебного пособия в образовательных учреждениях при проектировании несложной робототехники.
Технические характеристики
С технической стороны, внутренняя начинка ESP-12F сочетает в себе исполнительный контроллер ESP8266EX (наподобие Ардуино, Тинси, СТМ32 и других), микросхему внешней флеш-памяти размером 4 Мбайт и несколько SMD-компонентов, необходимых для нормального функционирования модуля. Наличие памяти позволяет ESP8266-12F работать практически автономно и не зависеть от дополнительных внешних микроконтроллеров. Плата-адаптер, на которой размещён EPS8266 ESP-12F, оснащена понижающим регулятором напряжения AMS1117-3.3, необходимым для питания модуля от внешнего источника с постоянным напряжением 5 вольт или для сопряжения с прочими устройствами, работающими на 5-вольтовой логике, а также кнопку перевода контроллера в режим программирования, индикатор наличия питания и делитель напряжения для единственного аналогового контакта ESP8266.
Особенности отладочного модуля с интегрированным контроллером ESP-12F
Плата адаптера даёт несколько преимуществ перед простыми серийными модулями ESP из семейства ESP8266. Во первых, при подаче питания, она подтягивает несколько специальных выводов контроллера к нужным логическим уровням, благодаря чему ESP-12F сразу же запускается в нормальном режиме с одновременной загрузкой собственной прошивки и исполняемой программы из встроенной флеш-памяти. Во вторых, установленная кнопка помогает переключать ESP8266EX в режим программирования, исключая необходимость самостоятельного замыкания соответствующих этому режиму контактов GPIO0 и GND. В третьих, делитель напряжения допускает подключение к аналоговому выводу ADC входящих сигналов с уровнем напряжения в диапазоне от 0 до +3.3 вольта, против 0-1 вольт у простого ESP8266. В четвёртых, конструкцией платы предусмотрены изначально припаянные штырьковые выводы с шагом 2.54мм, используемые для подключения UART-программаторов или для обмена данными между контроллером ESP-12F и периферийными устройствами по универсальной шине UART. Наконец в пятых, в комплект с модулем входят пара переходников, установка которых разрешает последующее их использование в беспаячных проводных соединениях или, как вариант, подключении внешних разъёмов Dupont.
Компоновка выводов общего назначения (GPIO) ESP8266 выполнена в необычном виде. Вместо привычного 2-рядного расположения контактов по бокам платы, на адаптере присутствуют 4 линии с выводами контроллера и входящего напряжения, некоторые из них дублируют друг-друга. В двух рядах разведены общедоступные контакты ESP-12F, в остальных - тематически сгруппированы выводы, используемые в определённых программных интерфейсах. Группа из 6 контактов CS, MISO, GPIO9, GPIO10, MOSI, SCLK - интерфейс внешней SPI флешь-памяти. Группа из 4 контактов GND, GPIO5, GPIO4, VCC - интерфейс шины связи I2C, предопределённый в среде разработки Arduino IDE на контакты GPIO5 и GPIO4.
ESP8266EX функциональная блок-схема
Распиновка ESP-12F (Диаграмма выводов, ESP-12F подключение)
Приём и передача цифровых данных между контроллером и периферией, подключенной к контактам общего назначения платы (GPIO), построена на 3.3-вольтовой логике. Входящее/исходящее напряжение цифрового вывода, находящееся в диапазоне +2.64...+3.6 вольт, принято называть высокоуровневым сигналом или логической единицей. Напряжение в интервале -0.3...+0.33 вольт - низкоуровневым сигналом или логическим нулём. Многие выводы ESP-12F имеют встроенные управляемые резисторы, устанавливающие уровень логического сигнала контакта на плюс (подтягивание) или на минус (стягивание). Большинство контактов платы могут быть смультиплексированы с различными интерфейсами (UART, I2C, PWM, SPI, служебный канал EMAC, и другими). Рекомендуемый ток отдельного вывода GPIO составляет 6 миллиампер, предельный ток - 12 миллиампер.
Следует избегать превышения значений максимального тока более 12 миллиампер и напряжения более 3.3 вольта на контактах GPIO, способного повредить микроконтроллер.
Специальные функции и интерфейсы
* SPI флеш-память 4 Мбайт контроллера ESP-12F аппаратно привязана к 6 контактам GPIO6-GPIO11. Выводы поддерживают внешнюю флеш-память размером до 16 Мбайт. Рекомендуется не использовать эти контакты для прочих целей или переназначать их на другие функции.
Режимы запуска модулей серии ESP8266
Значения "Высокий" и "Низкий" - логический уровень входного сигнала на соответствующем контакте ESP8266EX.
Режим запуска | CHIP_EN* | GPIO15 | GPIO0 | GPIO2* |
Загрузка по UART | высокий | низкий | низкий | высокий |
Загрузка из флеш памяти | высокий | низкий | высокий | высокий |
SDIO, загрузка из SD-карты | высокий | высокий | не важно | не важно |
* - физические выводы отсутствуют на плате адаптера модуля с чипом ESP-12F.
Внутренняя память ESP-12F ESP8266, файловая система SPIFFS
Контроллер ESP-12F оснащён микросхемой памяти, размер которой составляет 4 Мегабайта (32 Мегабита). Такого размера достаточно для хранения основной прошивки, пользовательского кода и, при необходимости, создания упрощённой файловой системы SPIFFS. Настройка областей памяти под нужды проекта достаточно гибкий инструмент оболочки Ардуино ИДЕ. Размеры назначаемых разделов для хранения прошивки и скетча, файловой системы SPIFFS, обновление по воздуху OTA (последнее добавлено в версии 2.6.0), сильно разнятся от установленной версии программной библиотеки поддержки ESP8266. Указание в редакторе на совместимость с платой Generic ESP8266 Module, предоставит пользователю на выбор внушительный список предустановленных параметров для разбиваемых областей памяти.
Из имеющихся у ESP-12F в свободном доступе 4 Мбайте флеш-памяти, 1 Мегабайт выделяется под запись прошивки и исполняемой программы, увеличить этот размер в Arduino IDE не получится. Остальные 3 Мегабайта остаются свободными или размечаются под хранение данных в системе SPIFFS. Выполняя обновление прошивки, пользователь сам выбирает необходимость наличия файловой системы и её размер. В SPIFFS можно хранить данные скетча, файлы конфигурации или содержимое веб-сервера.
В большинстве случаев, скетчи умещаются в памяти без труда. Если речь заходит о написании и выполнении объёмного текста кода, пользователь может попробовать сэкономить память, воспользовавшись модифицированной прошивкой NodeMCU с интерпретатором языка Lua (основанной на NONOS-SDK), изменив её состав при помощи наборов разработчика NodeMCU SDK путём исключения или добавления поддержки определённых функций разрабатываемого проекта. Учитывая, что все исполняемые файлы программ на языке Lua хранятся в области SPIFFS, обновление прошивки модуля на ПО NodeMCU несколько по иному распределяет память, формируя файловую систему из оставшегося свободного пространства, не занятого самой прошивкой.
Структура файловой системы SPIFFS имеет небольшой ряд ограничений из-за конструктивных особенностей чипа ESP8266EX. Она не поддерживает разбитие собственной области памяти на дополнительные разделы и не работает с папками, храня файлы в виде списка. Максимальный размер имени файла не должен превышать 32 символа, включая специальный символ, отведённый под окончание строки.
Перенос файлов в систему SPIFFS возможен как из популярной среды программирования Arduino IDE, так и с помощью широко известного в ESP-сообществе java-редактора ESPlorer. По умолчанию, ни одной подобной функции в Ардуино ИДЕ не предусмотрено, и пользователю потребуется установить дополнение "Загрузчик в ESP8266", проделав несколько простых шагов.
Программирование в среде Arduino IDE
Прежде чем начинать писать и прошивать скетчи в платформу ESP8266, следует добавить её совместимость со средой Ардуино ИДЕ. Для этого необходимо выполнить все шаги, описанные в главе "Добавление платформы ESP8266 в Arduino IDE". Как уже ранее упоминалось, подача питания контроллеру ESP-12F запускает режим исполнения программного кода, ранее записанного во внутреннюю память. Прошивка нового скетча выполняется переводом контроллера ESP8266EX в режим программирования, путём нажатия и удерживания встроенной кнопки Boot с последующим перезапуском контроллера. Либо замыканием контактов GPIO0, GND и перезапуском контроллера. Не следует отпускать кнопку или размыкать контакты до полного завершения процесса прошивки.
Выполняя программирование модуля, внутренний алгоритм редактора Arduino IDE прошивает одновременно с каждым новым скетчем собственное ПО для ESP8266, таким образом удаляя из соответствующей области памяти предыдущие версии прошивок.
Следующий простой пример заставляет мигать программируемый светодиод, совмещённый с выводом GPIO2.
#define LED_BUILTIN 2
void setup() {
// Инициализируем контакт LED_BUILTIN в режим вывода
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// Зажигаем светодиод низкоуровневым сигналом LOW
digitalWrite(LED_BUILTIN, LOW);
// Ждём секунду
delay(1000);
// Выключаем светодиод высоким уровнем напряжения HIGH
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
}
Добавление платформы ESP8266 в среду разработки ARDUINO IDE
Установка совместимых библиотек для корректной работы с платформой ESP8266EX аналогично всему модульному ряду ESP. Пример настройки редактора ARDUINO IDE для ESP8266EX приведён в описании модуля ESP-01.
Программное обеспечение с интерпретатором AT команд
Коллектив компании Espressif Systems, для своих чипов ESP8266 и их разновидностей, выпускает прошивки со встроенным интерпретатором AT-команд, основанные на обновляемых программных наборах разработки ПО (SDK) с открытым кодом. Пользователь имеет возможность компилировать собственные кастомные прошивки, добавляя или исключая поддержку необходимых в проекте функций. Подобные прошивки формируют из контроллера ESP8266 своеобразный роутер-модем, вследствие чего способ взаимодействия с процессором ESP-12F значительно отличается от обычного. В коде ПО заложен перечень предопределённых заскриптованных команд, выполняющие различные действия с настройками контроллера ESP8266. АТ команды позволяют устанавливать и разрывать WiFi-соединения, отправлять и получать данные, или менять параметры шины UART. Любая АТ команда передаётся в ESP8266 через периферийный последовательный интерфейс UART (GPIO1, GPIO3) от ведущего устройства и всегда начинается с аббревиатуры АТ. Перечень поддерживаемых АТ команд опубликован в разделе "Техническая информация".
Обновление ESP-12F на ПО синтерпретатором NodeMCU языка Lua
Микроконтроллер ESP-12F полностью поддерживает работу на прошивке, включающей в себя интерпретатор NodeMCU скриптового языка Lua, выполняющего команды наподобие АТ инструкций. Загрузка новой прошивки в память ESP8266 выполняется через программный интерфейс UART. Загружаемая прошивка может быть взята в предварительно скомпилированном виде или изменена пользователем с помощью исходного кода программного инструмента разработки ПО (SDK). Либо вообще быть написанной самостоятельно на языке С/С++.
Для обновления ПО в контроллерах на базе ESP8266, в глобальной сети Интернет свободно распространяются несколько схожих по функционалу приложений, включая популярные инструменты EspTool.py и Flash Download Tool. Исходный код прошивки NodeMCU доступен в репозитории GitHub.
В качестве альтернативного варианта, подойдёт хорошо известная программа Node MCU Flasher для Windows. Последняя версия доступна для загрузки из репозитория GitHub. Процесс записи предварительно скомпилированного файла (формат .bin) прошивки прост, состоит из нескольких шагов и не занимает много времени.
Перед записью прошивки, настоятельно рекомендуется полная очистка флешь-памяти. Чаще всего, после обновления, прошивка работает без нареканий. Если предварительно не производить чистку памяти, можно столкнуться с ситуацией, когда заново загруженная версия NodeMCU не совпадёт с предыдущей установленной версией прошивки, вследствие чего плата попросту не запуститься в нормальном режиме. В таком случае, от пользователя потребуется запись отдельного файла инициализации модуля "esp_init_data_default.bin" из той версии SDK, на которой выполнялась сборка прошивки.
Программа Node MCU Flasher умеет записывать в память не только прошивки NodeMCU, но и оригинальные или кастомные прошивки с поддержкой АТ команд на основе существующих комплектов инструментов разработки (SDK) от компании-производителя Espressif System, выпускающей контроллеры ESP.
Готовый вариант прошивки NodeMCU для микроконтроллера ESP8266, собранный на интерпретаторе языка Lua версии 5.1.4, SDK версии 2.2.1, включая блоки: ADC, FILE, GPIO, MDNS, MQTT, NET, NODE, PWM, TMR, UART, WIFI, WPS.
Режимы энергосбережения ESP8266EX
За исключением стандартного режима полноценного функционирования, модуль ESP-12F поддерживает энергосберегающие режимы, предназначенные для эффективного расходования потребляемой энергии в приложениях с автономным источником питания. Принудительное отключение ESP-12F без полного обесточивания контактов питания контроллера не предусмотрено самой платой-адаптером.
Техническая информация
Полезные ссылки
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru