Подробная инструкция как прошить модуль ESP в среде ARDUINO IDE. Возможно в интернете и куча статей, но я все равно так и не понимал как прошить. Появлялись разные ошибки, не понимал конкретного порядка действий. В итоге решил все расписать.
В наличии у меня есть только Arduino UNO, ESP 01, USB-TTL. Речь пойдет именно о них.
Подготовим ПО:
- Для начала необходимо скачать Arduino IDE здесь. Устанавливаем.
- Необходимо установить поддержку плат. Запускаем Arduino IDE. Заходим Файл-Настройки, в поле Дополнительные ссылки менеджера плат вводим
http://arduino.esp8266.com/stable/package_esp8266com_index.json
и нажимаем ОК - Теперь необходимо "загрузить платы ESP". Заходим в Инструменты-Плата-Менеджер плат. Открывается окно, в поиске пишем ESP. Выбираем esp8266 и жмем установить. Ждем.(В моем случае уже установлено, поэтому платы в списке есть. А так там ничего сложного)
- Выбираем плату: Инструменты-Плата-ESP8266 Boards-Generic ESP8266 Module. Upload speed -115200, Порт выберем позднее
- Теперь надо подключать плату 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-штатной работы.
Итак порядок действий:
- Rx(ESP) подключаем к Tx(Usb-ttl) и Tx(ESP) к Rx(Usb-ttl)
- Например, на макетной объединяем в 1 линию GND(Arduino),GND(Usb-ttl),GND(ESP),GPIO(ESP) и готовим "моргнуть" проводом от RST(ESP) на GND. Пока просто готовим провод.
- Ну и подаем питание. Так же на макетной плате в одну линию (отдельную от GND): 3.3V(Arduino),CH_PD(ESP),Vcc(ESP).
Мы включили ESP, теперь в диспетчере устройств можно посмотреть порт и выставить его в Arduino. Готовим скетч, компилируем, проверяем на ошибки. Открываем монитор порта, скорость выставляем на 74880. И теперь "моргнем" проводом с RST(ESP) на GND (отключили и включили). В мониторе порта увидим в каком режиме запустилась ESP. Если первая цифра =1, то все ок. Теперь ОТКЛЮЧАЕМ GPIO(ESP) от GND и запускаем прошивку в Arduino IDE. Ждем. Готово!