Esp 01 прошивка через arduino

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

Настройка Arduino IDE для работы с ESP

Первым делом необходимо скачать свежую версию Arduino IDE (https://www.arduino.cc/en/Main/Software) и установить ее на ваш компьютер. Перед началом прошивки платы ESP необходимо добавить дополнительные пакеты в среду разработки Arduino IDE.

Открываем Arduino IDE и добавляем в него возможность работы с платами esp8266, для этого:

1) Переходим в раздел Preferences в меню.

2) В поле "Дополнительные ссылки для Менеджера плат" (Additional Board Manager URLs) вставляем строчку http://arduino.esp8266.com/stable/package_esp8266com_index.json и нижимаеи кнопку "OK".

3) Открываем менеджер плат в меню "Инструменты > Плата > Менеджер плат. " (Go to Tools > Board > Boards Manager…)

4) В появившемся окне в поиске вводим esp8266 и устанавливаем соответствующий пакет

5) Закрываем и заново открываем Arduino IDE. Теперь в списке доступных плат появились платы на основе чипа ESP.

Прошивка NodeMCU ESP8266 Development Board

В плате NodeMCU версии 1.0 используется чип CP2102 (USB to UART Bridge VCP). Чтобы наш компьютер мог видеть плату esp необходимо скачать драйвер данного чита с официального сайта https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers. Скачиваем и устанавливаем драйвер под нужную операционку. После установки драйвера перезапускаем Arduino IDE.

Теперь если подключить плату NodeMCU к компьютеру, то в списке портов вы увидите новое устройство. Для MacOS оно будет иметь вид:

Для проверки работы прошивки загрузим стандартный пример с мигающим светодиодом. Для этого в меню выбираем "Примеры > Basic > Blink".

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

Нажимаем кнопку "Загрузить" в верхней части окна:

Код начнет компилироваться:

После компиляции начнется загрузка кода на плату ESP, в нижней части экрана побегут оранжевые пиксели и будут появляться проценты загрузки. В результате загрузка дойдет до 100% и чуть выше вы увидите надпись "Загрузка завершена". Поздравляем, вы только что прошили модуль NodeMCU! Посмотрите на плату – на ней должен начать мигать светодиод!

Прошивка ESP-01

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

Для данного модуля подойдут практические любиые USB-to-UART программаторы, но я заказал специальный программатор с разъемом под ESP-01.

В данном программаторе точно также как и в NodeMCU используется чип CP2102, поэтому нам не надо ставить дополнительный драйвер. Также этот программатор имеет дополнительные пины, через которые можно прошивать модули Sonoff. Теперь просто втыкаем плату в программатор, а программатор в USB.

В меню "Порт" появится знакомый нам cu.SLAB_USBtoUART (Для Windows это будет COM*), выбираем его. В поле "Плата:" выбираем "Generic ESP8266 Module". Все параметры должны быть на скриншоте.

Обратите внимание, что каждый раз перед прошивкой этот программатор необходимо вытыкать и втыкать в USB заново. Также иногда внешние программаторы могут быть не видны в Arduino IDE. В этому случае приходится перезгаружать среду разработки. Поэтому для первых экспериментов с модулем ESP я рекомендую использовать модуль NodeMCU.

Читайте также:  Остановка в темное время суток гаи

Как вы видите подготовить Arduino IDE к работе и прошить первый скетч на ESP не так уж и трудно. В следующей статье я расскажу вам как написать скетч, который будет работать с MQTT сервером, а также как потом подключить девайс к системе OpenHAB2.

ESP8266 – это популярный китайский микроконтроллер от компании Espressif, основным достоинством которого является встроенный интерфейс WiFi и совместимость с ардуино. Совместимость означает возможность писать программы и загружать их через Arduino IDE,ведь большинство скетчей могут с минимальными доработками использоваться в ESP8266. В этой статье мы узнаем, что из себя представляет стандартная прошивка ESP 8266, как можно программировать эти модули в привычной для многих ардуинщиков Arduino IDE. Мы узнаем, как подготовить среду программирования, как с ее помощью написать скетч и как затем подключить и прошить WiFi-модуль.

Начальная прошивка ESP8266 с WiFi

Сегодня на базе чипа ESP8266 выпускается большое количество модулей, о них мы писали в отдельной статье, посвященной этому микроконтроллеру. Заводские ESP8266 идут со стандартной прошивкой от компании Espressif. Этот софт позволяет работать с модулем вай-фай как с обычным модемом, то есть посредством AT команд, которые подаются на последовательный порт. Таким образом, вы можете использовать модули «из коробки» как внешнее WiFi устройство (в зависимости от режима работы это может быть и точка доступа, и ретранслятор).

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

Как прошить ESP8266

Стандартная микропрограмма внутри ESP8266 не только ограничивает наши возможности, но и обладает определенными недостатками (к примеру, медленный интерфейс обмена данными с контроллером), что может быть критично для некоторых проектов. Если мы захотим использовать ESP8266 как полноценный контроллер, нам надо будет записать туда свою программу или интерпретатор, который будет выполнять поступающие из вне команды. Можно выделить несколько основных способов перепрошивки ESP8266:

  • Использование “родного” SDK. Компания Espressif выпустила набор программных средств для разработки собственных прошивок. SDK предоставляет широкий спектр возможностей, тем не менее, пользоваться им довольно-таки трудно в виду не совсем очевидного и приятного интерфейса.
  • Загрузка готовых решений. На просторах Всемирной паутины есть множество уже готовых со встроенным интерпретатором. Среди множества решений наверняка найдутся и тем, которые подойдут вашему проекту. Тем не менее, у готовых прошивок есть недостатки. Они могут быть ненадежными, решать не совсем те задачи и быть избыточно большими. Из-за встроенного интерпретатора софт сильно загружает ОЗУ, что приводит к медленной работе.
  • Настройка работы через WEB-интерфейс. Существует ряд прошивок, которые позволяют изменить конфигурации ESP8266 через интернет-интерфейс. В качестве примера можно привести коммерческий софт HOME-SMART. Недостатком подобных прошивок является довольно-таки узкий спектр возможностей.
  • Использование Arduino >Прошивка 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

Для начала необходимо установить на свой ПК крайнюю версию среды Arduino IDE. Сделать это можно на официальном интернет-сайте. На момент написания статьи крайняя версия IDE – это 1.8.5. После загрузки и инсталляции среды разработки, необходимо запустить ее и перейди в раздел Файл > Настройки. Там есть поле для дополнительных ссылок менеджера плат. В него необходимо вписать http://arduino.esp8266.com/stable/package_esp8266com_index.json и клацнуть на кнопочку ОК.

Затем нужно перейти в Инструменты > Плата. Там будем представлен список доступных плат. Но на интересует пункт Менеджер плат. Это приведет к запуску нового диалога. В нем необходимо найти пункт под названием esp8266 by ESP8266 Community и кликнуть по нему. Вышеописанные манипуляции приведут к появлению кнопочки Установка. Нужно выбрать подходящую версию (лучше всего крайнюю). Далее надо нажать на кнопку, отвечающую за установку. После этого среда разработки начнет скачивать необходимые файлы. Это не займет много времени, так как нужный пакет весит всего 150 МБ.

Возвращаемся к списку плат. После инсталляции программного модуля там появилось несколько новых пунктов, которые соответствуют рассматриваемому микроконтроллеру. Надо выбрать вариант Generic ESP8266 Module. Затем следует определить входящий пункт, через уже знакомый раздел Инструменты. Там же следует задать параметры модуля (частота, объем flash-паммяти). На этом настройка программной среды завершена.

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

Для подключения ESP8266 не потребуется много коннекторов, так как рассматриваемый аппаратный модуль использует всего несколько пинов. Выходы TX/RX и землю нужно подключить к конвертору TTL-USB (его, в свою очередь, надо подключить к USB). Далее следует подсоединить питание в 3.3В к пину VCC.

Чтобы иметь возможность загружать на микроконтроллер прошивку, необходимо подсоединить GPIO0 к земле. При таком подключении аппаратный модуль загружает прошивку во flash-память. Запуск программы происходит сразу же, без отсоединения от GPIO.

Последовательность действий при загрузке скетча

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

Далее следует перейти в Инструменты > Монитор последовательного порта. Надо выбрать скорость 115200. После этого стоит обратить внимание на терминал. Если модуль подключен к сети, то в таком случае на мониторе должны появится соответствующие надписи. Внизу будет расположен IP адрес аппаратного модуля.

Бывает собрал что-то на Arduino, упаковал в корпус, и тут в прошивке решил что-то чуток подправить, придется лезть, доставать, разбирать, подключать. А если поделка встроена куда-то в новый ремонт, то вообще атас.

О том, как прошивать arduino по воздуху, статей написано не мало, большинство решений – прошивка по bluetooth.

Я предлагаю дешевый и простой способ – использовать для этих целей WIFI модуль ESP-01.

На гифке устройство на arduino (замок, с доступом по RFID), которое как раз будет вмонтировано глубоко и на долго и я позаботился о том, чтобы доступ к ардуинке был удаленно (вдруг надо будет добавить RFID метку).

Читайте также:  Автоматическое устройство компенсации реактивной мощности

Для начала нужно прошить модуль прошивкой esp-link, сделаем это простым USB-TTL конвертера.

Прошивка представляет из себя несколько файлов, из них понадобятся 3: boot_v1.5.bin, user1.bin и blank.bin.

бинарники заливаем по следующим адресам:

Устанавливаем на ПК драйвер виртуального COM – порта, например этот: http://tibbo.ru/products/item/9/42/

И далее следуя инструкциям в видео настраиваем:

И наконец подключение ESP-01 к arduino:

Дубликаты не найдены

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

Этот орел стоит как тот-же NRF, с ним меньше возни, и по локалке добраться до люстры – это удобнее, чем цеплять радио на стороне компа

Я к тому что сама ардуина тут не сильно нужна.

Сама ардуина может использовать этот самый NRF после его прошивки в своих целях, например в скетче у нее есть свои команды для NRF или она только для прошивки?

ЭЭЭ а ардуина там зачем? Всё можно было сразу на esp замутить.

Абсолютно с вами солидарен. ESP8266 по многим параметрам превосходит Атмегу328. Использовать сей модуль только в качестве WiFi модуля (даже для прошивки ардуино по воздуху) – моветон. Для такой задачи есть NRF24L01.

Все свободные выводы с шим. Любые 2-3 микрухи типа pcf8574 и количество портов больше чем у ардуино. Количество памяти и встроенные плюшки намного перевешивают необходимость подключить через i2c пару микрух.

NRF скажем не сильно дешевле, а возни больше, + нужен ответный на стороне компа

Для таких целей есть гальванические развязки. Распилил сердечник – и давай.

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

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

обычно для этих целей используют BT/ZigBee или другие низкоскоростные физические интерфейсы. Использовать WiFi для создания моста с таким низкоскоростным интерфейсом, как U(S)ART – это действительно (как уже было сказано @KeyAnyPress ) моветон. Я надеюсь, что пост носил исключительно ознакомительный характер, о том, как удаленно шить дуину по радиомосту.

На самом деле любой чип обеспечивающий WiFi с криптографией будет мощнее восьмибитной ардуинины. Как насчёт BT я не в курсе, но скорее всего там тоже так же.

хороший годный пост

как раз есть несколько ардуино проектов и запарился их прошивать через воздух))

спасибо, делайте еще )

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

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

доброго всем времени суток, проснулся я как то и решил попробую запрограммировать ардуино, закал вот такого зверька из китая https://ru.aliexpress.com/i/32910107043.html

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

avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: stk500v2_getsync(): timeout communicating with programmer

Произошла ошибка при загрузке скетча

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

Оставьте ответ

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