Как прошить esp 01 через arduino ide

Как прошить esp 01 через arduino ide

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

В наличии у меня есть только Arduino UNO, ESP 01, USB-TTL. Речь пойдет именно о них.

  1. Для начала необходимо скачать Arduino IDE здесь. Устанавливаем.
  2. Необходимо установить поддержку плат. Запускаем Arduino IDE. Заходим Файл-Настройки, в поле Дополнительные ссылки менеджера плат вводим http://arduino.esp8266.com/stable/package_esp8266com_index.json и нажимаем ОК

Так, ПО мы установили. Теперь будем все подключать. Для начала небольшое разъяснение. Модуль ESP работает от 3,3V. В моем USB-TTL есть 2 режима работы, который выбирается перемычкой- 5V и 3,3V. Установив ее, мы лишаемся возможности подать питание от нее к ESP. И поэтому питание от нее я взял с Arduino, НО необходимо чтобы была общая GND и у Arduino и USB-TTL. Далее, чтобы ESP запустилась, на ножку CH_PD надо тоже подать 3.3V. Ну и собственно Rx-Tx и Tx-Rx.

На счет питания, может я не совсем правильно делаю, что беру с Ардуино. Но а так есть специальные конвертеры питания на 3.3V. Можете заказать их.

Теперь ОЧЕНЬ важный момент. У ESP есть разные режимы включения. И чтобы туда что-то прошить, контроллер надо "подготовить". Подключаем ножку GPIO0 к GND (Это режим прошивки). Далее на короткое время замыкаем RST к GND — тем самым мы перезапускаем ESP в режиме прошивки. ОТКЛЮЧАЕМ GPIO0 от GND. Теперь контроллер ждет загрузки прошивки. В мониторе порта можно смотреть в каком режиме запустилась ESP. boot mode:(1,6), где первая цифра как раз режим: 1-загрузчика,3-штатной работы.

Итак порядок действий:

  1. Rx(ESP) подключаем к Tx(Usb-ttl) и Tx(ESP) к Rx(Usb-ttl)
  2. Например, на макетной объединяем в 1 линию GND(Arduino),GND(Usb-ttl),GND(ESP),GPIO(ESP) и готовим "моргнуть" проводом от RST(ESP) на GND. Пока просто готовим провод.
  3. Ну и подаем питание. Так же на макетной плате в одну линию (отдельную от GND): 3.3V(Arduino),CH_PD(ESP),Vcc(ESP).

Мы включили ESP, теперь в диспетчере устройств можно посмотреть порт и выставить его в Arduino. Готовим скетч, компилируем, проверяем на ошибки. Открываем монитор порта, скорость выставляем на 74880. И теперь "моргнем" проводом с RST(ESP) на GND (отключили и включили). В мониторе порта увидим в каком режиме запустилась ESP. Если первая цифра =1, то все ок. Теперь ОТКЛЮЧАЕМ GPIO(ESP) от GND и запускаем прошивку в Arduino IDE. Ждем. Готово!

Прошивка esp8266 через Arduino IDE

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 IDE. Пожалуй, один из лучших способов написания прошивки для ESP, который используется чаще всего. Это связано с тем, что у рассматриваемой IDE есть целый ряд достоинств, речь о которых пойдет в следующем разделе.

Прошивка 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 и клацнуть на кнопочку ОК.

Менеджер плат в Arduino IDE

Затем нужно перейти в Инструменты > Плата. Там будем представлен список доступных плат. Но на интересует пункт Менеджер плат. Это приведет к запуску нового диалога. В нем необходимо найти пункт под названием 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 адрес аппаратного модуля.

Прошивка ESP8266 через Arduino IDE

В данной статье я рассмотрю прошивку плат 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".

Открываем настройки Arduino IDE

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

Открываем менеджер плат в Фквгштщ IDE

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

Установка дополнителных esp плат

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

Список доступных 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 dev board

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

Появился новый UART порт

Com5 в системе Windows

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

Выбираем стандартный пример с мигающим светодиодом

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

Выбираем плату NodeMCU 1.0

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

Нажимаем кнопку Загрузить

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

Компиляция скетча

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

Удачная прошивка NodeMCU

Прошивка ESP-01

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

Модуль ESP-01

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

Программатор для Esp-01

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

Программатор и вставленный Esp-01

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

Настройки Arduino IDE для ESP-01

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

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

Добавить комментарий

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