Пятница, сентября 24, 2021

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

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

Подготовим ПО: 

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

     

     

     

  3. Теперь необходимо "загрузить платы ESP". Заходим в Инструменты-Плата-Менеджер плат. Открывается окно, в поиске пишем ESP. Выбираем esp8266 и жмем установить. Ждем.(В моем случае уже установлено, поэтому платы в списке есть. А так там ничего сложного)

     

     

  4. Выбираем плату: Инструменты-Плата-ESP8266 Boards-Generic ESP8266 Module. Upload speed -115200, Порт выберем позднее

     

     

  5. Теперь надо подключать плату ESP к компу через USB-TTL. На случай, если в диспетчере устройств не будет появляться, то установите драйвера для USB-TTL. Скачать можно здесь

 

Так, ПО мы установили. Теперь будем все подключать. Для начала небольшое разъяснение. Модуль 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. Ждем. Готово!