- PVSM.RU - https://www.pvsm.ru -

EPS8266 прошивка, программирование в Arduino IDE

И снова привет geektimes [1]. Этот материал является продолжением моей предыдущей статьи — EPS8266 и Arduino, подключение, распиновка [2], и, должен сказать, что они взаимосвязаны. Я не буду затрагивать темы, которые уже раскрыты.

А сегодня, я поведаю, как же программировать ESP8266 при помощи Arduino IDE [3], так же прошивать другие прошивки, например NodeMcu [4]… Вообщем, этот материал не ограничивается только одной темой Ардуино.

image

Тема EPS8266 — довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE [3] — порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме IoT(интернет вещей) [5], причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей.

Данное видео, полностью дублирует материал, представленный в статье ниже.

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

Скажу сразу — один раз запрограммировав модуль в среде разработки ардуино, мы сносим родную прошивку, и у нас пропадёт возможность работать с модулем при помощи AT-команд. Лично мне, от этого, не холодно/не жарко, но если кому-то это будет нужно — ближе к концу статьи я покажу, как обратно прошить в модуль родную прошивку, ну или какой-то загручик типа NodeMcu.

Для начала, на офф.сайте качаем последнюю версию Arduino IDE [3], на данный момент это 1.6.7. Более старые версии типа 1.0.5. не подойдут, потому что банально не имеют нужного функционала, а танцы с бубном нас не интересуют, не так ли?

Запускаем среду разработки и тут же идём в Файл/Настройки:

image

Вставляем ссылку в поле «Дополнительные ссылки для Менеджера плат:» и жмём «OK».

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Данную ссылку я взял на странице проекта Arduino core for ESP8266 WiFi chip [6].

Потом идём Инструменты/Плата:/Менеджер плат...:

image

Перед нами появится окно менеджера плат, листаем его до самого низа, и если всё сделано правильно мы увидим что-то подобно этому:

image

Кликаем курсором по надписи "esp8266 by ESP8266 Community" после этого, у нас появилась кнопка «Установка», выбираете нужную версию, я беру последнюю, на сегодняшний день это 2.1.0. и устанавливаю её. Среда разработки закачает нужные ей файлы(около 150 мегабайт) и напротив надписи "esp8266 by ESP8266 Community" появится «INSTALLED» то есть установлено:

image

Листаем список плат вниз и видим, что в списке у нас появилось много разных ESP, берём «Generic ESP8266 Module»:

image

Идём в «Инструменты» и выбираем нужный COM порт(у меня это COM32) Arduino или USB UART конвертора [2], потом ставим Upload Speed:«115200»:

image

Далее открываем консоль в Arduino IDE, подаём питание на модуль, если всё было сделано правильно, то мы увидим что-то в этом роде:

image

Выставляем скорость 74880 и «NL & CR» и опять же отключаем и подаём питание и он ответит кое какой отладочной информацией:

image

Заметьте, 74880 — не основная скорость ESP8266, просто он всего лишь на ней отправляет отладочную информацию. Если модуль ничего не отправляет в консоль, тогда возможно что-то подключили не так как надо.

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

image

После подбора нужной скорости отправляем модулю «AT» и он должен ответить что всё «ОК». Команда «AT+GMR» выводит информацию о прошивке.

Прежде чем начать прошивать ESP8266 в Arduino IDE я советую дочитать статью до конца.

Теперь давайте попробуем прошить ESP8266 через Arduino IDE. Переводим модуль в режим программирования(как это сделать я писал в предыдущей статье [2]).

Давайте зашьём мигалку штатным светодиодом:

// By MrПоделкинЦ youtube.com/RazniePodelki
// special to geektimes.ru/post/271754/

#define TXD 1 // GPIO1/TXD01

void setup() {
  pinMode(TXD, OUTPUT);
}

void loop() {
  digitalWrite(TXD, HIGH);
  delay(1000);
  digitalWrite(TXD, LOW);
  delay(1000);
}

Замигал? Значит всё сделано правильно. Откуда я взял что светодиод подключен на первый пин? В предыдущей статье есть картинка с распиновкой разных модулей [7], и там есть разметка портов, при использовании загрузчика Arduino(пины отмечены розовым цветом).

image

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

А теперь как прошить назад родную прошивку, да и как вообще прошивать модуль сторонними загрузчиками. Для ESP8266 есть такая программа как NodeMCU Flasher [8], которая изначально предназначена для прошивки загрузчика NodeMCU [4]. Но как оказалось, она отлично прошивает и другие прошивки.

Я прикреплю к статье архив с данной программой и прошивкой для удобства, но тут [8] всегда можно скачать новую версию NodeMCU Flasher.

В папке «nodemcu-flasher-master» есть 2 папки Win64 и Win32 и в зависимости от того какая разрядность у вашей ОС выбираем нужную. Дальше в папке Release запускаем «ESP8266Flasher.exe» и видим интерфейс программы:

image

Выбираем нужный COM порт и идём во вкладку «Config», убираем хрестик около «INTERNAL://NODEMCU» и ставим его на один пункт ниже, как на скрине:

image

(Если захотите прошить загрузчик NodeMCU — убираете хрестик там где его не было, и ставите — где он был, то есть около «INTERNAL://NODEMCU»).

Потом жмём по шестеренке и выбираем где лежит наша прошивка, прошивка как правило в формате *.bin(в прикреплённом архиве это «v0.9.5.2 AT Firmware.bin» которая лежит в основной папке), и так же выбираем «0x00000» как и выше.

image

Дальше идём во вкладку «Advanced» и меняем там скорость на 115200, именно эта скорость будет основная и модуль будет отзываться по ней на AT-команды в случае соответствующей прошивки.

Возвращаемся опять на вкладку «Operation» переводим модуль в режим программирования и жмём «Flash»:

image

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

image

Проверяем AT-командой «AT+GMR» сделали ли мы всё верно:

image

Как ведите всё нормально прошилось.

Ссылки:
Архив с NodeMCU Flasher, прошивкой и кодом для Arduino IDE [9];
EPS8266 и Arduino, подключение, распиновка [2];
Свежая версия Arduino IDE всегда лежит тут [3];
NodeMCU Flasher [8];
Русскоязычное сообщество по ESP8266 [10];
Много разных прошивок к ESP8266 [11];
Все мои публикации на geektimes [12].

By Сергей ПоделкинЦ ака MrПоделкинЦ.

P.S. Если в статье что-то не так — пишите в личку, исправлю. Час ночи сейчас, однако.

Автор: HWman

Источник [13]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/113560

Ссылки в тексте:

[1] geektimes: http://geektimes.ru

[2] EPS8266 и Arduino, подключение, распиновка: https://geektimes.ru/post/271078/

[3] Arduino IDE: https://www.arduino.cc/en/Main/Software

[4] NodeMcu: https://github.com/nodemcu/nodemcu-firmware

[5] IoT(интернет вещей): https://geektimes.ru/hub/internet_of_things/

[6] Arduino core for ESP8266 WiFi chip: https://github.com/esp8266/Arduino#available-versions

[7] картинка с распиновкой разных модулей: http://www.pighixxx.com/test/2015/09/esp8266-pinout/

[8] NodeMCU Flasher: https://github.com/nodemcu/nodemcu-flasher

[9] Архив с NodeMCU Flasher, прошивкой и кодом для Arduino IDE: https://vk.com/doc256435878_437314884

[10] Русскоязычное сообщество по ESP8266: http://esp8266.ru/

[11] Много разных прошивок к ESP8266: http://esp8266.ru/downloads/esp8266-firmware/#wpfb-cat-2

[12] Все мои публикации на geektimes: http://geektimes.ru/users/hwman/topics/

[13] Источник: https://geektimes.ru/post/271754/