И снова привет Хабр. Этот материал является продолжением моей предыдущей статьи — ESP8266 и Arduino, подключение, распиновка, и, должен сказать, что они взаимосвязаны. Я не буду затрагивать темы, которые уже раскрыты.
А сегодня, я поведаю, как же программировать ESP8266 при помощи Arduino IDE, так же прошивать другие прошивки, например NodeMcu… Вообщем, этот материал не ограничивается только одной темой Ардуино.
![image](https://habrastorage.org/r/w1560/files/92a/5f2/d48/92a5f2d489e84fc3b477a5a33be87bc0.png)
Тема ESP8266 — довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE — порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме IoT(интернет вещей), причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей.
Данное видео, полностью дублирует материал, представленный в статье ниже.
Ну что же, мы уже умеем подключать ESP8266 и переводить его в режим программирования, теперь давайте перейдём к чему-то более полезному.
Скажу сразу — один раз запрограммировав модуль в среде разработки ардуино, мы сносим родную прошивку, и у нас пропадёт возможность работать с модулем при помощи AT-команд. Лично мне, от этого, не холодно/не жарко, но если кому-то это будет нужно — ближе к концу статьи я покажу, как обратно прошить в модуль родную прошивку, ну или какой-то загручик типа NodeMcu.
Для начала, на офф.сайте качаем последнюю версию Arduino IDE, на данный момент это 1.6.7. Более старые версии типа 1.0.5. не подойдут, потому что банально не имеют нужного функционала, а танцы с бубном нас не интересуют, не так ли?
Запускаем среду разработки и тут же идём в Файл/Настройки:
![image](https://habrastorage.org/r/w1560/files/040/c7e/70d/040c7e70d101439685fb5169f3bc1aa5.png)
Вставляем ссылку в поле «Дополнительные ссылки для Менеджера плат:» и жмём «OK».
Данную ссылку я взял на странице проекта Arduino core for ESP8266 WiFi chip.
Потом идём Инструменты/Плата:/Менеджер плат...:
![image](https://habrastorage.org/r/w1560/files/a12/730/7f9/a127307f9f274a87ab864fdc069f2041.png)
Перед нами появится окно менеджера плат, листаем его до самого низа, и если всё сделано правильно мы увидим что-то подобно этому:
![image](https://habrastorage.org/r/w1560/files/253/7f8/af8/2537f8af8a2d4dd8a9fea7c0ee1ed34f.png)
Кликаем курсором по надписи "esp8266 by ESP8266 Community" после этого, у нас появилась кнопка «Установка», выбираете нужную версию, я беру последнюю, на сегодняшний день это 2.1.0. и устанавливаю её. Среда разработки закачает нужные ей файлы(около 150 мегабайт) и напротив надписи "esp8266 by ESP8266 Community" появится «INSTALLED» то есть установлено:
![image](https://habrastorage.org/r/w1560/files/809/183/b65/809183b65ceb4933885263fd6e0eee58.png)
Листаем список плат вниз и видим, что в списке у нас появилось много разных ESP, берём «Generic ESP8266 Module»:
![image](https://habrastorage.org/r/w1560/files/812/b39/56e/812b3956eea748e2bdf0c64e3d39d49a.png)
Идём в «Инструменты» и выбираем нужный COM порт(у меня это COM32) Arduino или USB UART конвертора, потом ставим Upload Speed:«115200»:
![image](https://habrastorage.org/r/w1560/files/98e/93b/4dd/98e93b4dd9594a9e96096568a6ee8bf6.png)
Далее открываем консоль в Arduino IDE, подаём питание на модуль, если всё было сделано правильно, то мы увидим что-то в этом роде:
![image](https://habrastorage.org/r/w1560/files/1b3/4cb/414/1b34cb4149854017a7db0e51dc18ca4f.png)
Выставляем скорость 74880 и «NL & CR» и опять же отключаем и подаём питание и он ответит кое какой отладочной информацией:
![image](https://habrastorage.org/r/w1560/files/83b/d9d/297/83bd9d2977d948158c56f675c5c8be1b.png)
Заметьте, 74880 — не основная скорость ESP8266, просто он всего лишь на ней отправляет отладочную информацию. Если модуль ничего не отправляет в консоль, тогда возможно что-то подключили не так как надо.
По умолчанию скорость должна быть 115200, но в отдельных случаях может быть и 9600 и другие… Так что попробуйте подобрать.
![image](https://habrastorage.org/r/w1560/files/4d3/a4a/5c5/4d3a4a5c58bd4777b03646b9a1e92d1c.png)
После подбора нужной скорости отправляем модулю «AT» и он должен ответить что всё «ОК». Команда «AT+GMR» выводит информацию о прошивке.
Прежде чем начать прошивать ESP8266 в Arduino IDE я советую дочитать статью до конца.
Теперь давайте попробуем прошить ESP8266 через Arduino IDE. Переводим модуль в режим программирования(как это сделать я писал в предыдущей статье).
Давайте зашьём мигалку штатным светодиодом:
Замигал? Значит всё сделано правильно. Откуда я взял что светодиод подключен на первый пин? В предыдущей статье есть картинка с распиновкой разных модулей, и там есть разметка портов, при использовании загрузчика Arduino(пины отмечены розовым цветом).
![image](https://habrastorage.org/r/w1560/files/d3a/04b/640/d3a04b6401e946ceb4db8efba5756ba2.png)
Мигание светодиодом это конечно хорошо, но надо бы какой-то веб-сервер заделать или начать управлять светодиодом хотя бы при помощи кнопок в браузере, не так ли? Но об этом я расскажу уже как-нибудь в другой раз.
А теперь как прошить назад родную прошивку, да и как вообще прошивать модуль сторонними загрузчиками. Для ESP8266 есть такая программа как NodeMCU Flasher, которая изначально предназначена для прошивки загрузчика NodeMCU. Но как оказалось, она отлично прошивает и другие прошивки.
Я прикреплю к статье архив с данной программой и прошивкой для удобства, но тут всегда можно скачать новую версию NodeMCU Flasher.
В папке «nodemcu-flasher-master» есть 2 папки Win64 и Win32 и в зависимости от того какая разрядность у вашей ОС выбираем нужную. Дальше в папке Release запускаем «ESP8266Flasher.exe» и видим интерфейс программы:
![image](https://habrastorage.org/files/360/d5d/806/360d5d8061ca46058ced09e0bdc297b4.PNG)
Выбираем нужный COM порт и идём во вкладку «Config», убираем хрестик около «INTERNAL://NODEMCU» и ставим его на один пункт ниже, как на скрине:
![image](https://habrastorage.org/files/8b0/1fc/efd/8b01fcefdb4549cd937050872a78f093.PNG)
(Если захотите прошить загрузчик NodeMCU — убираете хрестик там где его не было, и ставите — где он был, то есть около «INTERNAL://NODEMCU»).
Потом жмём по шестеренке и выбираем где лежит наша прошивка, прошивка как правило в формате *.bin(в прикреплённом архиве это «v0.9.5.2 AT Firmware.bin» которая лежит в основной папке), и так же выбираем «0x00000» как и выше.
![image](https://habrastorage.org/files/8a9/fc5/f8a/8a9fc5f8a2a447e99e9ec006b36bf994.PNG)
Дальше идём во вкладку «Advanced» и меняем там скорость на 115200, именно эта скорость будет основная и модуль будет отзываться по ней на AT-команды в случае соответствующей прошивки.
Возвращаемся опять на вкладку «Operation» переводим модуль в режим программирования и жмём «Flash»:
![image](https://habrastorage.org/files/49b/2b7/111/49b2b71116cd4231b1de93c23ba16ec0.PNG)
Всё, модуль начал прошиваться, после перепрошивки не забываем перезагрузить модуль и вуаля, он прошит нужной нам прошивкой.
![image](https://habrastorage.org/r/w1560/files/77c/95c/2b8/77c95c2b8d9f443a9d64513bb0f7951f.png)
Проверяем AT-командой «AT+GMR» сделали ли мы всё верно:
![image](https://habrastorage.org/r/w1560/files/439/725/22b/43972522b3f2431a9a75d5400b6fee06.png)
Как видите всё нормально прошилось.
Ссылки:
Архив с NodeMCU Flasher, прошивкой и кодом для Arduino IDE;
ESP8266 и Arduino, подключение, распиновка;
Свежая версия Arduino IDE всегда лежит тут;
NodeMCU Flasher;
Русскоязычное сообщество по ESP8266;
Много разных прошивок к ESP8266;
Все мои публикации на geektimes.
By Сергей ПоделкинЦ ака MrПоделкинЦ.
А сегодня, я поведаю, как же программировать ESP8266 при помощи Arduino IDE, так же прошивать другие прошивки, например NodeMcu… Вообщем, этот материал не ограничивается только одной темой Ардуино.
![image](https://habrastorage.org/files/92a/5f2/d48/92a5f2d489e84fc3b477a5a33be87bc0.png)
Тема ESP8266 — довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE — порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме IoT(интернет вещей), причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей.
Данное видео, полностью дублирует материал, представленный в статье ниже.
Ну что же, мы уже умеем подключать ESP8266 и переводить его в режим программирования, теперь давайте перейдём к чему-то более полезному.
Скажу сразу — один раз запрограммировав модуль в среде разработки ардуино, мы сносим родную прошивку, и у нас пропадёт возможность работать с модулем при помощи AT-команд. Лично мне, от этого, не холодно/не жарко, но если кому-то это будет нужно — ближе к концу статьи я покажу, как обратно прошить в модуль родную прошивку, ну или какой-то загручик типа NodeMcu.
Для начала, на офф.сайте качаем последнюю версию Arduino IDE, на данный момент это 1.6.7. Более старые версии типа 1.0.5. не подойдут, потому что банально не имеют нужного функционала, а танцы с бубном нас не интересуют, не так ли?
Запускаем среду разработки и тут же идём в Файл/Настройки:
![image](https://habrastorage.org/files/040/c7e/70d/040c7e70d101439685fb5169f3bc1aa5.png)
Вставляем ссылку в поле «Дополнительные ссылки для Менеджера плат:» и жмём «OK».
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Данную ссылку я взял на странице проекта Arduino core for ESP8266 WiFi chip.
Потом идём Инструменты/Плата:/Менеджер плат...:
![image](https://habrastorage.org/files/a12/730/7f9/a127307f9f274a87ab864fdc069f2041.png)
Перед нами появится окно менеджера плат, листаем его до самого низа, и если всё сделано правильно мы увидим что-то подобно этому:
![image](https://habrastorage.org/files/253/7f8/af8/2537f8af8a2d4dd8a9fea7c0ee1ed34f.png)
Кликаем курсором по надписи "esp8266 by ESP8266 Community" после этого, у нас появилась кнопка «Установка», выбираете нужную версию, я беру последнюю, на сегодняшний день это 2.1.0. и устанавливаю её. Среда разработки закачает нужные ей файлы(около 150 мегабайт) и напротив надписи "esp8266 by ESP8266 Community" появится «INSTALLED» то есть установлено:
![image](https://habrastorage.org/files/809/183/b65/809183b65ceb4933885263fd6e0eee58.png)
Листаем список плат вниз и видим, что в списке у нас появилось много разных ESP, берём «Generic ESP8266 Module»:
![image](https://habrastorage.org/files/812/b39/56e/812b3956eea748e2bdf0c64e3d39d49a.png)
Идём в «Инструменты» и выбираем нужный COM порт(у меня это COM32) Arduino или USB UART конвертора, потом ставим Upload Speed:«115200»:
![image](https://habrastorage.org/files/98e/93b/4dd/98e93b4dd9594a9e96096568a6ee8bf6.png)
Далее открываем консоль в Arduino IDE, подаём питание на модуль, если всё было сделано правильно, то мы увидим что-то в этом роде:
![image](https://habrastorage.org/files/1b3/4cb/414/1b34cb4149854017a7db0e51dc18ca4f.png)
Выставляем скорость 74880 и «NL & CR» и опять же отключаем и подаём питание и он ответит кое какой отладочной информацией:
![image](https://habrastorage.org/files/83b/d9d/297/83bd9d2977d948158c56f675c5c8be1b.png)
Заметьте, 74880 — не основная скорость ESP8266, просто он всего лишь на ней отправляет отладочную информацию. Если модуль ничего не отправляет в консоль, тогда возможно что-то подключили не так как надо.
По умолчанию скорость должна быть 115200, но в отдельных случаях может быть и 9600 и другие… Так что попробуйте подобрать.
![image](https://habrastorage.org/files/4d3/a4a/5c5/4d3a4a5c58bd4777b03646b9a1e92d1c.png)
После подбора нужной скорости отправляем модулю «AT» и он должен ответить что всё «ОК». Команда «AT+GMR» выводит информацию о прошивке.
Прежде чем начать прошивать ESP8266 в Arduino IDE я советую дочитать статью до конца.
Теперь давайте попробуем прошить ESP8266 через Arduino IDE. Переводим модуль в режим программирования(как это сделать я писал в предыдущей статье).
Давайте зашьём мигалку штатным светодиодом:
// 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);
}
Замигал? Значит всё сделано правильно. Откуда я взял что светодиод подключен на первый пин? В предыдущей статье есть картинка с распиновкой разных модулей, и там есть разметка портов, при использовании загрузчика Arduino(пины отмечены розовым цветом).
![image](https://habrastorage.org/files/d3a/04b/640/d3a04b6401e946ceb4db8efba5756ba2.png)
Мигание светодиодом это конечно хорошо, но надо бы какой-то веб-сервер заделать или начать управлять светодиодом хотя бы при помощи кнопок в браузере, не так ли? Но об этом я расскажу уже как-нибудь в другой раз.
А теперь как прошить назад родную прошивку, да и как вообще прошивать модуль сторонними загрузчиками. Для ESP8266 есть такая программа как NodeMCU Flasher, которая изначально предназначена для прошивки загрузчика NodeMCU. Но как оказалось, она отлично прошивает и другие прошивки.
Я прикреплю к статье архив с данной программой и прошивкой для удобства, но тут всегда можно скачать новую версию NodeMCU Flasher.
В папке «nodemcu-flasher-master» есть 2 папки Win64 и Win32 и в зависимости от того какая разрядность у вашей ОС выбираем нужную. Дальше в папке Release запускаем «ESP8266Flasher.exe» и видим интерфейс программы:
Выбираем нужный COM порт и идём во вкладку «Config», убираем хрестик около «INTERNAL://NODEMCU» и ставим его на один пункт ниже, как на скрине:
(Если захотите прошить загрузчик NodeMCU — убираете хрестик там где его не было, и ставите — где он был, то есть около «INTERNAL://NODEMCU»).
Потом жмём по шестеренке и выбираем где лежит наша прошивка, прошивка как правило в формате *.bin(в прикреплённом архиве это «v0.9.5.2 AT Firmware.bin» которая лежит в основной папке), и так же выбираем «0x00000» как и выше.
Дальше идём во вкладку «Advanced» и меняем там скорость на 115200, именно эта скорость будет основная и модуль будет отзываться по ней на AT-команды в случае соответствующей прошивки.
Возвращаемся опять на вкладку «Operation» переводим модуль в режим программирования и жмём «Flash»:
Всё, модуль начал прошиваться, после перепрошивки не забываем перезагрузить модуль и вуаля, он прошит нужной нам прошивкой.
![image](https://habrastorage.org/files/77c/95c/2b8/77c95c2b8d9f443a9d64513bb0f7951f.png)
Проверяем AT-командой «AT+GMR» сделали ли мы всё верно:
![image](https://habrastorage.org/files/439/725/22b/43972522b3f2431a9a75d5400b6fee06.png)
Как видите всё нормально прошилось.
Ссылки:
Архив с NodeMCU Flasher, прошивкой и кодом для Arduino IDE;
ESP8266 и Arduino, подключение, распиновка;
Свежая версия Arduino IDE всегда лежит тут;
NodeMCU Flasher;
Русскоязычное сообщество по ESP8266;
Много разных прошивок к ESP8266;
Все мои публикации на geektimes.
By Сергей ПоделкинЦ ака MrПоделкинЦ.
P.S.
Уже на подходе плата на базе esp32:
![image](https://habrastorage.org/r/w1560/files/de2/718/3c3/de27183c3b3f4c1b9891593faf2132aa.png)
http://www.pighixxx.com/test/2015/12/esp32-pinout/
Которая значительно круче чем esp8266, так что нас скоро ждёт бум, как мне кажется, темы IoT(интернет вещей).
![image](https://habrastorage.org/files/de2/718/3c3/de27183c3b3f4c1b9891593faf2132aa.png)
http://www.pighixxx.com/test/2015/12/esp32-pinout/
Которая значительно круче чем esp8266, так что нас скоро ждёт бум, как мне кажется, темы IoT(интернет вещей).