Nodemcu esp8266 очистка памяти

Обновлено: 18.05.2024

Продолжаем работу с микроконтроллером ESP8266, а вернее с FLASH-памятью, подключенной к ней для хранения ПО и настроек.

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

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

Для начала нам нужны, конечно же, файлы для прошивания памяти.

Скачаем необходимый SDK с официального сайта Espressif. В случае модуля ESP-01, мы, скорее всего не сможем воспользоваться третьей версией SDK, так как в ней нет прошивки, пригодной для схемы 512+512. Наши методы прошивания подойдут не только для модулей ESP-01, а и для любых других модулей, где установлен контроллер ESP8266, поэтому вполне можно и воспользоваться SDK3. Но в нашем случае мы скачаем последнюю на данный момент SDK 2.2.1 отсюда. Комплект нужен именно NONOS (без использования операционной системы).

Распакуем архив. Из него нам нужны будут для прошивания boot_v1.X.bin, версию подбираем, обычно последняя, файл esp_init_data_default_vXX.bin, я прошивал версию 05, файл blank.bin (если прошиваем неочищенную полностью память) из папки bin, а также файл userX.1024.new.2.bin из папки bin\at\512+512.

Для начала давайте очистим полностью FLASH-память нашего модуля.

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

Запускаем командную строку, находясь сразу в каталоге с файлами прошивок, которые мы создали, когда считывали прошивку из модуля, переведём модуль в режим прошивки и отправим следующую команду



Ещё раз уточним, что и с какого адреса прошивать, открыв мануал по AT


Теперь запустим Flash Download Tools и подключим файлы новой прошивки, прописав соответствующие адреса, заодно также подключим и файл blank.bin, который прошивается по трём адресам, но отмечать для прошивания мы его не будем, так как у нас память уже полностью очищена. Также выберем настройки внизу под наши параметры


Переводим модуль в режим прошивки и жмём кнопку START.

При удачном завершении операции мы получим вот такую картину


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

Запустим ESPlorer, настроим порт и перезагрузим наш контроллер. Если у нас всё прошилось удачно, мы увидим приблизительно вот это


Мы видим, что загрузчик у нас новой версии, SDK тоже.

Теперь попытаемся прошить наш модуль с помощью nodemcu-flasher.

Сначала не забываем отключиться от порта в ESPlorer, затем снова очистим нашу память с помощью утилиты esptool.

Запустим nodemcu-flasher, сначала перейдём там в раздел Config и аналогично подключим файлы прошивки и отметим только нужные файлы (если бы мы не стирали полностью FLASH, то blank.bin тоже отмечаем)


Переводим модуль в режим прошивки, переходим в программе nodemcu-flasher в раздел Operation и жмём кнопку Flash( F ). Начнётся процесс заливки прошивки в FLASH-память модуля


При удачном исходе операции мы получим зелёную галку внизу


Как ни странно, у меня сейчас тоже всё прошилось. Обычно сразу три файла у меня никогда удачно не прошивались, только по очереди, и то не с первого раза. Посмотрим как пойдёт процесс при съёмке видеоверсии. Проверим наличие прошивки в программе ESPlorer. Если всё нормально, то у нас остался ещё третий метод прошивания FLASH-памяти модуля, а это утилита esptool.

Для удобства работы с ней мы скопируем из папки с новой прошивкой файлы boot_v1.7.bin, версию подбираем, обычно последняя, файл esp_init_data_default_v05.bin, я прошивал версию 05, файл blank.bin (если прошиваем неочищенную полностью память) из папки bin, а также файл user1.1024.new.2.bin в папку, которую мы сохраняли прошивку с модуля и в которой мы в данный момент находимся в режиме командной строки. Прошивать будем каждый файл по отдельности, хотя можно прошить и вместе.

Перейдём в командную строку и, соответственно, сначала очистим FLASH-память нашего модуля перед прошивкой.

Затем переведём модуль в режим прошивки и попытаемся прошить сначала самый маленький файл



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



Проверим на всякий случай наличие прошивки в ESPlorer.

Таким же образом мы можем прошить наши файлы, которые мы считали в прошлом занятии, например, в том случае, если нам по каким-то причинам не понравится новое ПО, которое мы только что прошили.

Всем спасибо за внимание!

Бинарные версии 512 + 512 здесь

Различные модули ЕSP8266 можно приобрести здесь Модули ЕSP8266

Переходник USB to TTL можно приобрести здесь ftdi ft232rl

Многофункциональный переходник CJMCU FT232H USB к JTAG UART FIFO SPI I2C можно приобрести здесь CJMCU FT232H USB

У ESP8266 есть несколько общих проблем, особенно при попытке записать новую прошивку или загрузке скриптов.

Вот подборка наиболее распространенных проблем с ESP8266 и способы для их исправления.

Устранение неполадок ESP8266 - NodeMCU Flasher

Где скачать флешер NodeMCU?

Перейдите в репозиторий GitHub флешера NodeMCU и загрузите флешер для вашей версии Windows, нажав кнопку «Raw»:

Какие настройки следует использовать с флешером NodeMCU?

Флешер NodeMCU уже поставляется с правильными настройками по умолчанию.

Настройки по умолчанию:

image_1.jpg

После нажатия кнопки «Flash» ничего не происходит, прошивальщик NodeMCU не запускает процесс перепрошивки

Если вы нажали кнопку «Flash» и ничего не происходит . Это может быть одно из двух:

  • ESP не находится в режиме прошивки (перепроверьте, подключен ли GPIO 0 к GND при включении питания)
  • программатор FTDI не может подать достаточный ток на ESP

image_2.jpg

Проблема 1 - Как заставить ESP перейти в режим прошивки:

Если он все еще сообщает «Ожидание MAC», попробуйте следующее:

  1. Подключите провод от вашего reset ESP8266 к GND
  2. Отсоедините этот провод от GND и присоединитесь к VCC

Повторите шаги несколько раз, пока ESP не перезагрузится, и, скорее всего, флешер NodeMCU сможет обнаружить ESP и начать процесс перепрошивки.

Проблема 2. Если FTDI не может обеспечить достаточный ток, возможно, придется купить новый программатор FTDI или подключить ESP8266 к внешнему источнику питания.

Флешер NodeMCU зависает или останавливается на определенном проценте

image_3.jpg

  1. Отключите питание от ESP + FTDI: Закройте окно флешера NodeMCU
  2. Подключите ESP + FTDI к компьютеру снова
  3. Откройте флешер NodeMCU и попробуйте скорость передачи 19200 бод

Если этот процесс завершится неудачно, повторите ту же процедуру для следующих скоростей передачи (38400, 57600, 74880 и 115200).

Ппо крайней мере 5 человек столкнулись с той же проблемой, и этот способ решил ее.

Как должен выглядеть NodeMCU после успешной прошивки?

У него должна быть зеленая стрелка внизу слева.

image_4.jpg

Разблокировка программатора FTDI на ПК с Windows

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

Если возникли проблемы с установкой драйверов FTDI в Windows 7/8 / 8.1 / 10, вполне вероятно, что FTDI заблокирован.

Устранение неполадок ESP8266 - ESPlorer IDE

ESPlorer IDE Ошибка: разрешен только один tcp сервер

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

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

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

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

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

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

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

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

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

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

Кроме OTA так же рекомендуется включать опции NVS настройки 2 и Экспорт/Импорт настроек. 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: Действия аналогичны.

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

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

Скорость 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.

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

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

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

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

Далее настраиваем подключение на свой роутер на вкладке 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. По некоторым сведениям от пользователей помогает замена чипа памяти.

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

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

Решение проблем с компиляцией.

Ошибка компиляции возможна из-за:

1. Превышен размер IRAM области памяти, прошивка не умещается. Требуется уменьшить количество опции или выбрать другой SDK. Чем новее SDK , тем меньше влазит опций. Проблема нехватки памяти не так заметна при использовании RTOS прошивки.

2. Ошибка в коде - маловероятная причина, но возможна после обновления кода или конфликта опций ранее не замеченный. Сообщить об ошибке можно через обратную связь на сайте или в чате Телеграм, указав код ошибки.

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

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

Интернет вещей (IoT) является одной из самых популярных областей в мире технологий. Физические объекты и цифровой мир связаны сейчас как никогда. Помня об этом, компания Espressif Systems (шанхайская компания по производству полупроводниковых устройств) выпустила крутой микроконтроллер с поддержкой Wi-Fi, ESP8266, по невероятной цене! С помощью него менее чем за 3 доллара можно контролировать и управлять устройством из любой точки мира – идеально подходит практически для любого проекта IoT.


Характеристики платы NodeMCU ESP8266 и ее использование в Arduino IDE

Модуль ESP-12E

Отладочная плата оснащена модулем ESP-12E, содержащим микросхему ESP8266 с RISC микропроцессором Tensilica Xtensa® 32-bit LX106, который работает с регулируемой тактовой частотой от 80 до 160 МГц и поддерживает RTOS.

Характеристики ESP-12E

  • 32-разрядный LX106 от Tensilica Xtensa®
  • Тактовая частота от 80 до 160 МГц
  • 128 КБ встроенной оперативной памяти
  • 4 МБ внешней внешней флеш-памяти
  • Приемопередатчик Wi-Fi 802.11b/g/n

ESP8266 содержит встроенный приемопередатчик Wi-Fi 802.11b/g/n HT40, поэтому он может не только подключаться к сети Wi-Fi и взаимодействовать с интернетом, но и устанавливать собственную сеть, позволяя другим устройствам подключаться напрямую к нему. Это делает ESP8266 NodeMCU еще более универсальным.

Требования к питанию

Поскольку диапазон рабочего напряжения ESP8266 составляет от 3 В до 3,6 В, данная плата для поддержания постоянного напряжения на уровне 3,3 В поставляется с LDO стабилизатором напряжения. Он может надежно обеспечивать ток до 600 мА, чего должно быть более чем достаточно, поскольку ESP8266 во время радиочастотных передач потребляет до 80 мА. Выход стабилизатора также выводится на выводы на сторонах платы и обозначен как 3V3. Эти выводы можно использовать для подачи питания на внешние компоненты.

Требования к питанию

Питание к ESP8266 NodeMCU подается через встроенный USB-разъем MicroB. В качестве альтернативы, если у вас есть стабилизированный источник напряжения 5 В, можно использовать вывод VIN для непосредственного питания ESP8266 и его периферии.

Предупреждение

ESP8266 требует 3,3 В для питания и логические уровни 3,3 В для связи. Контакты GPIO не допускают напряжение 5 В! Если вы хотите соединить плату со схемами 5 В (или выше), то необходимо реализовать согласование логических уровней.

Периферия и ввод/вывод

ESP8266 NodeMCU имеет в общей сложности 17 выводов GPIO, выведенных на разъемы с обеих сторон отладочной платы. Эти выводы могут использоваться для выполнения различных периферийных задач, в том числе:

  • вход АЦП – канал 10-разрядного АЦП;
  • интерфейс UART – интерфейс UART используется для загрузки кода по последовательной связи;
  • выходы ШИМ – выводы ШИМ могут использоваться для регулировки яркости светодиодов или управления двигателями;
  • интерфейсы SPI, I2C – интерфейсы используются SPI и I2C для подключения всевозможных датчиков и периферийных устройств;
  • интерфейс I2S – интерфейс I2S используется для цифровой передачи звука.

Мультиплексируемые выводы ввода/вывода

В ESP8266 используется функция мультиплексирования выводов (несколько периферийных устройств мультиплексируются на один вывод GPIO). Это означает, что один вывод GPIO может действовать как PWM/UART/SPI.

Кнопки и светодиодный индикатор на плате

На плате ESP8266 NodeMCU находятся две кнопки. Одна из них, помеченная как RST, расположенная в верхнем левом углу, представляет собой кнопку сброса, которая, конечно же, используется для сброса микросхемы ESP8266. Другая кнопка, FLASH, в левом нижнем углу – это кнопка загрузки, используемая при обновлении прошивки.

Кнопки и индикаторы

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

Последовательная связь

На плате установлен контроллер USB-UART CP2102 от Silicon Labs, который преобразует USB сигнал в сигнал последовательного порта и позволяет компьютеру программировать и взаимодействовать с микросхемой ESP8266.

Последовательная связь

Если на вашем компьютере установлена старая версия драйвера CP2102, рекомендуем выполнить обновление прямо сейчас.

Распиновка ESP8266 NodeMCU

С внешним миром ESP8266 NodeMCU соединяют всего 30 выводов. Ниже показана распиновка отладочной платы.

Рисунок 6 Распиновка ESP8266 NodeMCU

Рисунок 6 – Распиновка ESP8266 NodeMCU

Для простоты мы сгруппируем выводы с аналогичными функциями.

Выводы питания – на плате расположено четыре вывода питания, а именно: один вывод VIN и три вывода 3.3V. Если у вас есть стабилизированный источник напряжения 5 В, вывод VIN можно использовать для непосредственного питания ESP8266 и его периферии. Выводы 3.3V – это выходы встроенного стабилизатора напряжения. Эти выводы могут использоваться для подачи питания на внешние компоненты.

GND – это вывод земли отладочной платы ESP8266 NodeMCU.

Выводы I2C используются для подключения всех видов датчиков и периферийных устройств на шине I2C в вашем проекте. Поддерживаются и I2C Master, и I2C Slave. Работа интерфейса I2C может быть реализована программно, а тактовая частота составляет максимум 100 кГц. Следует отметить, что тактовая частота I2C должна быть выше самой низкой тактовой частоты из ведомых устройств.

Выводы GPIO На ESP8266 NodeMCU имеется 17 выводов GPIO, которые можно назначать программно на различные функции, такие как I2C, I2S, UART, PWM, дистанционное инфракрасное управление, светодиодный индикатор и кнопка. Каждый включенный вывод GPIO может быть настроен либо на внутреннюю подтяжку к земле или к шине питания, либо установлен на высокоимпедансное состояние. При конфигурировании на вход для генерирования прерываний процессора он может быть настроен на срабатывание либо по фронту, либо по спаду.

Вывод ADC подает сигнал на имеющийся в NodeMCU, встроенный 10-разрядный прецизионный аналого-цифровой преобразователь последовательного приближения (SAR ADC). С помощью этого АЦП могут быть реализованы две функции: проверка напряжения питания на выводе VDD3P3 и проверка входного напряжения на выводе TOUT (но не одновременно).

Выводы UART ESP8266 NodeMCU имеет 2 интерфейса UART, то есть UART0 и UART1, которые обеспечивают асинхронную связь (RS232 и RS485) и могут обмениваться данными со скоростью до 4,5 Мбит/с. Для связи можно использовать UART0 (выводы TXD0 , RXD0 , RST0 и CTS0 ), который поддерживает управление потоком. UART1 (вывод TXD1 ) поддерживает только сигнал передачи данных, поэтому он обычно используется для печати журнала событий.

Выводы SPI ESP8266 имеет два интерфейса SPI (SPI и HSPI), поддерживающих и ведомый (slave), и ведущий (master) режимы. Эти интерфейсы SPI также поддерживают следующие функции SPI:

  • 4 режима синхронизации передачи SPI;
  • до 80 МГц и тактовые частоты, полученные делением 80 МГц;
  • до 64 байт FIFO.

Выводы SDIO ESP8266 имеет защищенный цифровой интерфейс ввода/вывода (SDIO, Secure Digital Input/Output Interface), который используется для прямого подключения карт SD. Поддерживаются 4-битный 25 МГц SDIO v1.1 и 4-битный 50 МГц SDIO v2.0.

Выводы PWM На плате имеется 4 канала широтно-импульсной модуляции (PWM). Выход ШИМ может быть реализован программно и использован для управления двигателями и светодиодами. Частотный диапазон ШИМ регулируется от 1000 мкс до 10000 мкс, то есть от 100 Гц до 1 кГц.

Выводы управления используются, как ни странно, для управления ESP8266. Эти выводы включают в себя вывод включения микросхемы EN , вывод сброса RST и вывод пробуждения WAKE .

  • Вывод EN – микросхема ESP8266 включена, когда на вывод EN подается высокий логический уровень. При низком логическом уровне микросхема работает на минимальной мощности.
  • Вывод RST используется для сброса микросхемы ESP8266.
  • Вывод WAKE используется для вывода чипа из глубокого сна.

Платформы разработки для ESP8266

Теперь перейдем к интересным вещам!

Существует множество платформ разработки, которые могут быть оснащены для программирования ESP8266. Вы можете использовать Espruino – JavaScript SDK и прошивка, эмулирующая Node.js, или использовать Mongoose OS – операционную систему для устройств IoT (рекомендуемая платформа от Espressif Systems и Google Cloud IoT), или использовать комплект разработки программного обеспечения (SDK), предоставляемый Espressif. или любую из платформ, перечисленных на Википедии.

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

Это дополнение ESP8266 для Arduino IDE основано на работе Ивана Грохоткова и остальной части сообщества ESP8266. Для получения дополнительной информации смотрите репозиторий GitHub ESP8266 Arduino.

Установка ядра ESP8266 на ОС Windows

Давайте приступим к установке ядра ESP8266 Arduino.

Во-первых, на вашем компьютере должна быть установлена последняя версия Arduino IDE (Arduino 1.6.4 или выше). Если у вас ее нет, рекомендуем сейчас обновиться.

Для начала нам нужно обновить менеджер плат с помощью пользовательского URL. Откройте Arduino IDE и выберите Файл → Настройки. Затем скопируйте приведенный ниже URL в текстовое поле Дополнительные ссылки для менеджера плат, расположенное в нижней части окна:

Рисунок 7 Установка платы ESP8266 в Arduino IDE с помощью json URL

Рисунок 7 – Установка платы ESP8266 в Arduino IDE с помощью json URL

Отлично. Затем перейдите к Менеджеру плат, выбрав Инструменты → Платы → Менеджер плат. Там, в дополнение к стандартным платам Arduino, должна быть пара новых записей. Отфильтруйте результаты поиска, введя esp8266. Нажмите на эту запись и выберите Установить.

Рисунок 8 Установка ядра ESP8266 в менеджере плат Arduino IDE

Рисунок 8 – Установка ядра ESP8266 в менеджере плат Arduino IDE

Определения и инструменты для платы ESP8266 включают в себя полностью новый набор gcc, g++ и других достаточно больших скомпилированных двоичных файлов, поэтому загрузка и установка могут занять несколько минут (заархивированный файл весит

110 МБ). После завершения установки рядом с записью появится надпись INSTALLED. Теперь можно закрыть менеджер плат.

Пример Arduino: мигалка

Чтобы убедиться, что ядро ESP8266 Arduino и NodeMCU правильно настроены, мы загрузим самый простой скетч – The Blink!

Для этого теста мы будем использовать встроенный светодиод. Как упоминалось ранее в этом руководстве, вывод платы D0 подключен к встроенному синему светодиоду и программируется пользователем. Отлично!

Прежде чем мы перейдем к загрузке скетча и игре со светодиодом, мы должны убедиться, что в Arduino IDE выбрана правильная плата. Откройте Arduino IDE и выберите пункт NodeMCU 0.9 (ESP-12 Module) в меню Инструменты → Плата.

Рисунок 9 Выбор отладочного модуля NodeMCU в Arduino IDE

Рисунок 9 – Выбор отладочного модуля NodeMCU в Arduino IDE

Рисунок 10 Выбор COM порта в Arduino IDE

Рисунок 10 – Выбор COM порта в Arduino IDE

Предупреждение

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

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

После загрузки кода светодиод начнет мигать. Возможно, чтобы ваш ESP8266 начал работать со скетчем, вам придется нажать кнопку RST.

Читайте также: