Как прошить esp 01: ESP8266 Урок 4. Прошиваем ESP-01 |
Подключение и прошивка esp-01 / esp8266 / Электроника (современная)
моуль esp-01
Схема правильного подключения модуля esp-01 для программирования и прошивки.
прошивка модуля производится переводом в режим программирования, для этого зажимает кнопку FLASH затем не отпуская кратковременно нажимаем на кнопку RESET и отпускаем FLASH.
Модуль переведён в режим программирования.
В терминале в этот момент можно увидеть
ets Jan 8 2013,rst cause:2, boot mode:(1,6)
boot mode:(1,6) — перезагрузка по RESET в режим программирования
boot mode:(1,7) — перезагрузка по питанию в режим программирования — что не совсем правильно.
Для прошивки буду использовать программу NODEMCU FIRMWARE PROGRAMMER
(К топику будет приложен архив с программой)
Распаковываем архив и запускаем в моём случае 32 разрядную версию программы\Win32\Release\ESP8266Flasher.exe
Настраиваем под модуль, в моём случае это 1 Мегабайт флэш памяти или 8 Мегабит.
Первым делом требуется стереть память пустым файлом в 1 Мб.
Это необязательный пункт. Стирание можно пропустить и перейти к прошивке.
У кого память больше или меньше — требуется пустой файл соответствующего размера.
Далее определяемся какая нужна прошивка!
Можно использовать как готовые прошивки на NODEMCU так и с конструктора собрать с нужными себе модулями.
Например одна из старых проверенных NODEMCU
nodemcu_integer_0.9.6-dev_20150704.zip
Конструктор wifi-iot.com/
Конструктор nodemcu-build.com/
или качаем последнюю
Проблемы при прошивке
Если модуль esp8266 не прошивается, проверьте подтяжки и корректность замыкания на GND GPIO0. А также не перепутаны ли RX TX.
В терминале можно проверить чтобы выдавалось boot mode:(1,6) или boot mode:(1,7).
Если после неудачной прошивке модуль не работа
Работа с модулем ESP-01 с нуля. — HAM-DMR
Всего просмотров: 353
Обсуждение статьи Telegram:
Поделиться статьёй:
Здравствуйте друзья. Столкнулся я с проблемой использования модуля ESP-01 Далее мы будем говорить только об этом модуле. и называть его будем ESP. Меня настигли следующие проблемы:
- что это такое и не что он способен?
- как запрограммировать?
- как залить прошивку?
- среда разработки ПО
Ну а теперь давайте по порядку.
Что это такое?
По сути, чип ESP8266 представляет собой миниатюрный микроконтроллер с Wi-Fi передатчиком, который может функционировать в условиях полной автономии, без дополнительной платы Arduino. С помощью модуля ESP-01 можно передавать данные о температуре, влажности, включать реле и так далее. Для удобства использования чипа ESP8266, производитель изготовил серию модулей от ESP-01 по ESP-14. Первый в этой серии, это модуль ESP-01 (существует еще ESP-01S, о нем чуть позже), являющийся одним из известным, из-за свой цены и небольшими размерами, всего 14,3 мм на 24,8 мм. Но в нем, есть два недостатка, это ограниченное количество программированных выводов GPIO и их неудобное расположение (неудобно макетировать). Модуль ESP-01 представляет собой небольшую плату, черного цвета, на которой расположены два основных чипа, это микроконтроллером ESP8266 и flash память на 1 Мб. Рядом расположен кварцитовый резонатор и напечатанная антенна. На плате установлены два светодиода, красный и голубой. Красный светодиод, светится когда на модуле есть питание, а синий мигает при выполнении команд (в NSP-01S удален красный светодиод, из-за постоянного потребления электроэнергии). Для подключения модуля ESP-01, предусмотрено восемь выводов (два ряда по четыре вывода, шагом 2.54 мм), два из готовых являются цифровым входами-выходом, поддерживающие широтно импульсную модуляцию. Хотя модуль имеет по умолчанию два вывода GPIO, можно использовать другие доступные контакты, если у вас есть необходимый инструмент для пайки.
Назначение выводов
GND: «-» питание модуля
GPIO2: (Digital I / O программируемый)
GPIO0: (Digital I / O программируемый, также используется для режимов загрузки)
RX: UART прием
TX: UART передача
CH_PD: (включение / отключение питания, должны быть выведены на 3.3 В непосредственно или через резистор)
RST: сброс, необходимо потянуть к 3.3В
VCC: «3.3В» питание модуля
Внимание! ESP-01 очень капризные к питанию, необходимо использовать внешний стабилизатор напряжения на 3.3В, в качестве первого примера буду использовать адаптер USB
Как запрограммировать
Перед использованием модуля ESP его память необходимо форматировать. Скажу вам, что мне подошла только одна программа: Esptool. Утилита Esptool поможет считать и записать на платформу с чипом ESP8266EX прошивку в формате *.bin. Но для записи или обновления прошивки я использую программу nodemcu-flasher, о ней будем говорить чуть позже. И так давайте скачаем и установим Esptool. Переходим по ссылке и скачиваем последнюю версию интерпретатора с официального сайта Python.
При установке поставьте галочку в пункте «Add python.exe to PTH»
Далее открываем командную строку Пуск>выполнить>cmd
Проверьте установленную версию Python. Введите в командной строке:
Установите через менеджер пакетов pip утилиту esptool. Проверьте версию программы.
Вы должны получить у себя на компьютере примерно такое же окно.
Теперь перейдём непосредственно к стиранию памяти. Нам необходимо ввести строку со следующими параметрами:
esptool.py —port COM1 erase_flash
esptool.py —port COM1 erase_flash |
кратко опишу команды:
esptool.py
— запуск утилиты;
–-port COM1
— номер COM-порта устройства. Узнайте ваш номер в диспетчере задач;
erase_flash — очищает полностью память ESP
В моём случае преобразователь COM порта был установлен на COM1. Вы у себя измените номер порта если в этом есть необходимость.
Теперь нам нужны файлы для прошивания памяти ESP.
Скачаем необходимый SDK с официального сайта Espressif. Тут читаем что такое SDK. В случае модуля ESP-01, мы, скорее всего не сможем воспользоваться третьей версией SDK, так как в ней нет прошивки, пригодной для схемы 512+512. Наши методы прошивания подойдут не только для модулей ESP-01, а и для любых других модулей, где установлен контроллер ESP8266, поэтому вполне можно и воспользоваться SDK3. Но в нашем случае мы скачаем последнюю на данный момент SDK 2.2.1 отсюда. Комплект нужен именно NONOS (без использования операционной системы). Попытаюсь дать прямую ссылку на архив ESP8266 NONOS SDK V2.2.1
Распакуем архив. Из него нам нужны будут для прошивания boot_v1.X.bin, версию подбираем, обычно последняя, файл esp_init_data_default_vXX.bin, я прошивал версию 05, файл blank.bin (если прошиваем неочищенную полностью память) из папки bin, а также файл userX.1024.new.2.bin из папки bin\at\512+512.
Ещё раз уточним, что и с какого адреса прошивать, открыв мануал по AT командам. А тут можно ознакомиться с AT командами на русском языке. Только там далеко не полный список.
Как залить прошивку
Теперь запустим nodemcu-flasher и подключим файлы новой прошивки, прописав соответствующие адреса в разделе Config, заодно также подключим и файл blank.bin, который прошивается по трём адресам, но отмечать для прошивания мы его не будем, так как у нас память уже полностью очищена. Я пытался провернуть процедуру с файлом blank.bin но у меня ни как не обновлялась прошивка в ESP пока я не запускал утилиту Esptool и не форматировал память. У меня получилось вот так:
Переводим модуль в режим прошивки, переходим в программе nodemcu-flasher в раздел Operation и жмём кнопку Flash(F). Начнётся процесс заливки прошивки в FLASH-память модуля
После того как прошивка корректно запишется в память ESP мы увидим примерно такое окно с галочкой в зелёном круге:
На этом этапе мы прошили новую прошивку в ESP. Теперь давайте проверим состояние прошивки. Запустим ESPlorer, настроим порт и перезагрузим наш контроллер. Если у нас всё прошилось удачно, мы увидим приблизительно вот это
Тут мы видим версию SDK 2.2.1 Чего мы и добивались.
Среда разработки ПО
Давайте поговорим о IDE для ESP8266. Я как и большинство выбрал именно ESPlorer, так как тут очень много удобностей. Я на данной стадии почти не умею ничего программировать для ESP, так только поиграться можно но зная язык Lua, который к стати довольно таки и не сложный, можно писать программы.
На этом месте я закончу свой рассказ так как далее я буду познавать превращение данной платки ESP-01 в дистанционный переключатель. Всем спасибо за внимание.
Ссылки которые помогли в написании этой статьи.
- http://narodstream.ru/esp8266-urok-4-proshivaem-esp-01/
- http://wiki.amperka.ru
- http://www.avislab.com/blog/esp8266-nodemcu-start_ru/
- https://arduinoplus.ru/proshivka-nodemcu-esp8266/
Прошивка и запуск модуля ESP8266
Для начала необходимо определить сколько памяти установлено на модуле ESP8266. Встречаются варианты модулей, с установленной памятью 512 кбайт(4 мегабита) , а так же 4мбайт(32 мегабита). Редко, но попадаются с флеш памятью 1 мбайт(8 мегабит). Почти все разновидности ESP-12 и новые ESP-07 имеют на борту 4 мегабайта. Объем памяти можно определить по маркировке flash чипа, посмотреть в программе Flash Download Tool или на вкладке /debug. Маркировка имеет вид 25QXX, где XX — объем в мегабитах, например 25Q32 имеет на борту 32 мегабита=4 мегабайта.
Определение размера памяти по вкладке ip_adr/debug:
Вкладка debug содержит разную полезную информацию, в том числе и реальный размер чипа флеш памяти в строке Flash real size, а так же размер памяти, установленный в прошивающей программе Flash set size, который важен для правильной поддержки OTA.
Если у вас нет купленых ключей, то прошивку можно скачать на страничке проекта, где доступны2 облегченных варианта прошивки:
-Вариант с поддержкой OTA с объемом памяти чипа 1мбайт. Данная прошивка прошивается и в модули и с бОльшим объемом flash. Необходимо обязательно выбирать в прошивающей программе размер памяти 1мбайт !! Модули с 512кб не поддерживаются !!
-Вариант без поддержки OTA. Подходит для любого объема flash памяти. Необходимо обязательно выбирать в прошивающей программе размер памяти 512кбайт !!
Возможность дальнейшего обновления прошивки по OTA доступна только у кого есть активированные ключи !
Прошивку можно собрать так же в конструкторе прошивки , где необходимо выбрать настройки для поддержки OTA и объема flash 1 мегабайт.
При использовании OTA и с объемом 512кб невозможно одновременно использовать множество опций конструктора, а так же использовать новые SDK, т.к. прошивка в модуль не помещается !!
Если у вас имеются проблемы со стартом прошивки, то обязательно смотрим ниже абзац про решение проблем с прошивкой !
Подключение модуля для прошивки
Для прошивки ESP8266 необходим USB-UART переходник или Arduino. ESP8266 необходимо обеспечить напряжение питания 3.3в и током 200..300мА. Питание 3.3в от ARDUINO или от USB-UART подключать не рекомендуется — модуль может работать не стабильно из-за нехватки тока. Рекомендуется использовать стабилизатор вида 1117.
Подключение ESP8266 к USB-UART: Необходимо подключить общие выводы GND(минус). RX у USB-UART на TX ESP, TX у USB-UART на RX ESP. Подключаем так же источник питания 3.3в.
Подключение ESP8266 к Arduino: Необходимо подключить общие выводы GND(минус).RX у Arduino на RX ESP, TX у Arduino на TX ESP. Подключаем так же источник питания 3.3в. RESET у Arduina необходимо подключить к GND.
На модуле ESP8266 вывод CH_EN необходимо подключить к +3.3в для того, чтобы включить чип.
GPIO 0 на время программирования, перед включением питания необходимо подключить к GND(земля). После успешной прошивки GPIO 0 можно отключить от GND. Если на модуле выведен GPIO 15, то его необходимо подключить на GND через резистор 10кОм на постоянной основе !!
Прошивка модуля
Для начала необходимо установить драйвера для вашего USB-UART переходника или Arduinы.
Прошивка через Nodemcu Flasher: Устанавливаем на вкладке Advanced Параметр Flash size в соотвествии выбранным размером flash памяти (в байтах). Остальные параметры не трогаем. Указываем на вкладке Config путь на файл прошивки с адресом 0x0000. На вкладке Operation выбираем COM порт и жмем кнопку FLASH.
Прошивка через Flash download tool: Описание в разработке(Действия аналогичны).
Прошивка через esptool. Пример команды esptool.py —port /dev/ttyUSB0 write_flash -fs 8m 0x00000 esp8266.bin . где -fs 8m параметр нужен только для указания размера при одномегабайтовой прошивке.
Скорость COM порта рекомендуется ставить не выше 115200.
Запуск модуля
После успешной прошивки необходимо запустить режим safe mode, замкнув между собой RX и TX и перезапустив модуль или нажать 3 раза подрят (с интервалом нажатия около секунды) кнопку RESET на ESP8266. В эфире появится точка с именем homessmart , к которой можно подключится используя смартфон или ноутбук.
После успешного коннекта заходим по адресу http://192.168.4.1 . Настраиваем подключение на свой роутер на вкладке main веб интерфейса. Необходимо вбить в поля WiFi options данные своей точки доступа. Для подключения к роутеру выбираем режим «Station mode». После нажатия кнопки set ниже появится IP адрес, на который можно заходить внутри своей беспроводной сети.
Далее обновляем страницу и видим внизу IP адрес, на который уже можно будет заходить внутри Вашей локальной сети.
Тут же вы можете установить свой логин и пароль на странички настроек веб интерфейса. По умолчанию логин esp8266, пароль 0000. Длинна логина и пароля не более 8 символов. Пароль затребуется на все вкладки настроек. А при установленной опции «Full Security» и на все GET запросы управления. В режиме safe mode пароль не запрашивается !
На данной вкладке можно задать имя модулю, которое будет отображаться на главной и в системе flymon, а так же в топике на MQTT сервере.
Решение проблем с прошивкой
Иногда, после сторонних прошивок или мусора модуль может не запустится и необходимо выполнить дополнительные действия. Необходимо затереть flash память пустым бланком по адресу 0x00000. Если вы используйте прошивку с размером 1 мегабайт, то качаем этот бланк. Далее уже прошиваем саму прошивку снова.
У некоторых пользователей даже после зачистки бланком модуль не стартует или стартует только при установленном режиме 512 кб или 4мб, возможно это связано с низким качеством flash памяти или частичной её несовместимостью с чипом ESP8266. Обратите внимание, что если даже у вас получилось запустить прошивку в режиме 4мб, то обновление по OTA в таком режиме не пройдет — модуль не запустится после обновления. По некоторым сведениям от пользователей помогает замена чипа памяти.
Если на главной странице модуля выводится сообщение «Error flash size ! (code 0x1)«, то это значит была прошита прошивка 1мегабайт в режиме 512кб. При этом включается режим Safe Mode и возможны сбои в работе модуля из-за таких неверных настроек. Убедитесь, что на модуле установлен необходимый размер памяти — это видно на веб вкладке ИП_АДРЕС/debug в строке Flash real size. Режим объема памяти указывается в прошивающей программе.
Если на главной странице модуля выводится сообщение «Error flash size ! (code 0x2)«, то это модуль имеет всего 512кб flash памяти и это значит, что необходимо использовать прошивку без включенного режима 1 мегабайт или не использовать OTA. Можно так же перепаять микросхему flash памяти на более ёмкую.
ВАЖНО !! Если модуль не может получить IP адрес. Висит постоянно статус connect , то рекомендуется вписать IP адрес вручную ниже. Для этого необходимо выбрать режим Static IP и вписать IP модуля и IP шлюза(IP роутера). После этого можно заходить на модуль уже внутри сети по IP адресу, который указали в настройках..
Сохранение настроек в файл
Настройки модуля можно сохранить в файл, исключая настройки WI-FI, состояния GPIO, список датчиков DS18B20. Файл необходимо скачать по адресу ИП_АДРЕС/configsave.bin . Записывается обратно в модуль через программатор по адресу 0x3C000 для 512кб прошивки, 0x7C000 — для 1мб. Настройки можно скачать и через esptool.py используя пример ниже подставив нужный адрес.
Скачать настройки WI-FI можно по адресу ИП_АДРЕС/configsave.bin?pg=66 для 512кб, ИП_АДРЕС/configsave.bin?pg=130 для 1 мег. Скачать через esptool.py можно командой esptool.py read_flash 0x7E000 4096 mywifi_settings.bin для 512 кб (Для 1024кб адрес будет 0xfe000).
Полезные ссылки:
Видеоиструкция по настройке от Umka
Заводим релейный модуль ESP8266 от LC TECHNOLOGY для ESP-01S
Заводим релейный модуль ESP8266 от LC TECHN с микроконтроллером STC15F104W для ESP-01S
Когда я заказывал этот релейный модуль, я даже не думал, что у меня могут быть с ним какие-то проблемы…
Мои разочарования начались сразу после первого включения! Моргала лампочка и ничего более…
После разных попыток перепрошивки модуля, а также долгих поисков решения проблемы неработоспособности этого модуля, все-таки было найдено решение.
Заранее скажу, что в интернете, можно найти несколько способов заставить это китайское чудо работать, но эти способы сделаны кустарным методом, так как там предлагается выпаять сам микроконтроллер и впаять какие-то резисторы…
Поискав в интернете, я наткнулся на видео, в котором запускают такой же релейный модуль и там кроме моргания лампочки, еще и щелкает реле.
В непонимании всего происходящего, я начал изучать характеристики данного модуля и обнаружил, что модуль питается от 5В, но так как на нем стоит регулятор напряжения AMS1117, то фактически он поддерживает напряжение до 12В. Изучив плату, было обнаружено, что модуль GPIO-0 никуда не подключается!
Ну и наконец наткнувшийся на схему платы этого модуля, было выяснено, что реле управляется микроконтроллером STC15F104W с помощью TX/RX, а не GPIO-0, как ранее предполагалось. Собственно это и есть наша основная проблема.
Но кроме основной проблемы у меня еще и не щелкало реле. Изучив схему выше, оказалось, что проблема в том, что резистор R3 слишком большой. Ну что поделать… Мы же хотим заставить эту штуку работать, так что берем паяльник в руки, отпаиваем резистор на 10K и вместо него припаиваем на 4.7K. После этих манипуляции реле должна щелкать как в видео!
На всякий случай оставляю таблицу кодов и значений smd резисторов
Код | Знач. | Код | Знач. | |
332 | 3.3kΩ | 682 | 6.8kΩ | |
362 | 3.6kΩ | 752 | 7.5kΩ | |
392 | 3.9kΩ | 822 | 8.2kΩ | |
432 | 4.3kΩ | 912 | 9.1kΩ | |
472 | 4.7kΩ | 103 | 10kΩ | |
512 | 5.1kΩ | 113 | 11kΩ | |
562 | 5.6kΩ | 123 | 12kΩ | |
622 | 6.2kΩ | 133 | 13kΩ |
Собственно, почему так происходит и почему у всех по разному может быть? Я ответ и на эти вопросы нашел!
На сайте производителя www.chinalctech.com есть предупреждения, где говорится, что у этого релейного модуля есть некоторые подделки. Также говорится, что, если постоянно моргает светодиод на плате (D2), то это означает, что этот модуль не их производства.
Вроде уже более-менее все ясно, НО все-таки, как же заставить его работать?
Не буду томить, вся проблема в том, что микроконтроллер STC15F104W не запрограммирован!
Итак, читаем ПРЕДУПРЕЖДЕНИЕ! И поехали…
Всегда есть вероятность сделать какую-то ошибку и тем самым вывести из строя сам микроконтроллер, поэтому программирование/изменение кода будет делаться под вашу ответственность, на свой страх и риск!
Прошиваем микроконтроллер STC15F104W
Ставим драйвера вашего TTL контролера, если еще не установлены.
Подключаем TTL контролер к ПК
Запускаем скачанную программу STC-ISP
Указываем в MCU Type микроконтроллер STC15F104W
- Выбираем порт вашего TTL контролера в COM Port
- Нажимаем на кнопку Open Code File и выбираем файл ранее скачанной прошивки под названием ESP8266_Relay_9600_11mhz.hex.
- Снизу в разделе H/W Option устанавливаем тактовую частоту (Input IRC frequency) 11,0592 MHz
- Ну и в конце нажимаем на кнопку Download/Program
11. Теперь ОБЯЗЯТЕЛЬНО!
Отключаем Wi-Fi модуль ESP-01S от релейного модуля! Она не должна быть подключена во время прошивки!
Только после этого Подключаем TTL контролер к пинам GND, TX, RX, 5V на плате релейного модуля и ждем, пока передача данных не будет завершена.
Теперь протестируем прошивку и работоспособность релейного модуля.
- Для этого переходим на вкладку COM Helper, выбираем порт нашего TTL контролера и жмем на Open COM.
- Вводим в TX Buffer по очереди команды A0 01 01 A2 и A0 01 00 A1 в режиме HEX-Mode и жмем на кнопку Send Data.
Если все было сделано правильно, то загорится светодиод, а вместе с ним еще и защелкнет реле. Но если этого не произошло, то придется опять колдовать паяльником с резисторами R3 и R4. Ну а если все работает, как надо, то переходим к прошивке уже самого Wi-Fi модуля ESP-01S для работы с нашим модулем.
Прошиваем Wi-Fi модуль ESP-01S специальной прошивкой
Думал отдельную статью сделаю…, но ладно так уж и быть… распишу все тут.
Казалось бы столько манипуляции сделано, но неужели этот релейный модуль еще не готов к работе.
Ответ я думаю уже понятен — НЕТ! Релейный модуль управляется последовательной связью через микроконтроллер, то есть ESP передает команды Включить/Выключить через контакты RX/TX микроконтроллеру, а дальше уже микроконтроллер выполняет реальную работу. Чтобы оправить те самые команды для управления, нужен специальный плагин «Serial MCU controlled switch».
Этой прошивкой можно управлять следующими устройствами:
- Tuya Wifi Touch wall switch
Tuya Wifi Dimmer Switch
Sonoff Dual (Поддерживается только V1)
Релейные модули от LC TECH (Поддерживаются вплоть до 4 релейных модулей.)
Именно поэтому я и хотел вывести это в отдельную статью!
Чтобы путаницы не было, распишу все поочередно:
- Подключаем Wi-Fi модуль ESP-01S к вашему ПК.
- Запускаем ESP.Easy.Flasher.exe и выбираем COM port
- В пункте Firmware выбираем blank_1MB.bin и жмем на кнопку Flash ESP Easy FW, тем самым прошиваемся на нулевую прошивку.
- После успешной прошивки, переподключаем ESP-01S модуль к ПК.
- Теперь в пункте Firmware выбираем прошивку ESPEasy_Mega_P165_1M_128kS_lwip20_PUYA.bin и опять жмем на кнопку Flash ESP Easy FW.
- Ждем, когда прошивка закончится, и переходим к следующему пункту.
Осталось самое малое…
Отключаем ESP-01S модуль от ПК, подключаем к релейному модулю и подаем питание.
Находим точку доступа ESP_Easy_0 и подключаемся.
Открываем адрес в браузере 192.168.4.1, выбираем вашу домашнюю сеть Wi-Fi, вводим пароль и жмем Connect.
После обратного отсчета должен высветиться IP адрес нашего ESP. Жмем на кнопку Proceed to main config и переподключаемся к домашней точке доступа. Так же IP адрес нашего ESP можно узнать такими способом найти IP адрес.
Переходим по IP адресу нашего ESP (Способы определения IP адреса) и настраиваем как указано ниже. Откроем раздел Devices, жмем на кнопку Edit, выбираем из списка пункт Serial MCU controlled swich.
В открывшихся пунктах вводим следующее.
- В поле Name вводим ESP01Relay
- Ставим галочку Enabled
- В поле Switch Type выбираем производителя нашего релейного модуля, то есть LC TECH
Жмем на кнопку Submit, после чего опять же появятся новые подпункты.
- Number of relays: здесь вводим количество реле на плате, в данном случае у нас 1.
- Serial speed: старые версии модуля работают со скоростью 9600, а новые на 115200!
Теперь покажу как это все будет работать.
Все элементарно просто — заходи в браузер и набираем HTTP команды:
Включаем реле №1: http://ESP_IP/control?cmd=relay,0,1
Выключаем реле №1: http://ESP_IP/control?cmd=relay,0,0
Включаем реле №2: http://ESP_IP/control?cmd=relay,1,1
Выключаем реле №2: http://ESP_IP/control?cmd=relay,1,0
Включаем реле №3: http://ESP_IP/control?cmd=relay,2,1
Выключаем реле №3: http://ESP_IP/control?cmd=relay,2,0
Включаем реле №4: http://ESP_IP/control?cmd=relay,3,1
Выключаем реле №4: http://ESP_IP/control?cmd=relay,3,0
И напоследок…..
Всем этим можно управлять как через OpenHAB MQTT, долгое время пытался решить этот вопрос, но пока безрезультатно. Как удастся решить этот вопрос, сразу обновлю статью… Ну, а если у кого-то получится сделать это раньше, обязательно отпишитесь в комментариях.
А на этом все, всем спасибо, ставьте лайки, пишите комментарии.
Прошивка 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».
3) Открываем менеджер плат в меню «Инструменты > Плата > Менеджер плат…» (Go to Tools > Board > Boards Manager…)
4) В появившемся окне в поиске вводим esp8266 и устанавливаем соответствующий пакет
5) Закрываем и заново открываем Arduino IDE. Теперь в списке доступных плат появились платы на основе чипа 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 к компьютеру, то в списке портов вы увидите новое устройство. Для MacOS оно будет иметь вид:
Для Windows:
Для проверки работы прошивки загрузим стандартный пример с мигающим светодиодом. Для этого в меню выбираем «Примеры > Basic > Blink».
Откроется новое окно Arduino IDE со стандартным примером, нажимаем на него. Теперь нам необходимо выбрать соответствующую плату и нужный порт. Выбираем NodeMCU 1.0 и порт, на который подключен модуль ESP. Все параметры должны быть такими же как на скриншоте.
Нажимаем кнопку «Загрузить» в верхней части окна:
Код начнет компилироваться:
После компиляции начнется загрузка кода на плату ESP, в нижней части экрана побегут оранжевые пиксели и будут появляться проценты загрузки. В результате загрузка дойдет до 100% и чуть выше вы увидите надпись «Загрузка завершена». Поздравляем, вы только что прошили модуль NodeMCU! Посмотрите на плату — на ней должен начать мигать светодиод!
Прошивка ESP-01
В отличии от NodeMCU в модуле ESP-01 нет встроенного программатора и его нельзя напрямую подключить к USB. Поэтому для прошивки я буду использовать внешний программатор.
Для данного модуля подойдут практические любиые USB-to-UART программаторы, но я заказал специальный программатор с разъемом под ESP-01.
В данном программаторе точно также как и в NodeMCU используется чип CP2102, поэтому нам не надо ставить дополнительный драйвер. Также этот программатор имеет дополнительные пины, через которые можно прошивать модули Sonoff. Теперь просто втыкаем плату в программатор, а программатор в USB.
В меню «Порт» появится знакомый нам cu.SLAB_USBtoUART (Для Windows это будет COM*), выбираем его. В поле «Плата:» выбираем «Generic ESP8266 Module». Все параметры должны быть на скриншоте.
Обратите внимание, что каждый раз перед прошивкой этот программатор необходимо вытыкать и втыкать в USB заново. Также иногда внешние программаторы могут быть не видны в Arduino IDE. В этому случае приходится перезгаружать среду разработки. Поэтому для первых экспериментов с модулем ESP я рекомендую использовать модуль NodeMCU.
Как вы видите подготовить Arduino IDE к работе и прошить первый скетч на ESP не так уж и трудно. В следующей статье я расскажу вам как написать скетч, который будет работать с MQTT сервером, а также как потом подключить девайс к системе OpenHAB2.
обновление прошивки с помощью XTCOM_UTIL – esp8266
Обновление прошивки ESP8266
Модуль ESP8266 замечателен тем, что не требует специального программатора — обновление прошивки производится на том же железе, на котором вы подключаете модуль ESP8266 к компьютеру, т.е. тоже через USB-TTL конвертер (ну или Arduino или RPi). Для обновление прошивки на модуле ESP8266 проделайте следующее:
1. Скачайте новую версию прошивки с нашего сайта из раздела ESP8266 прошивки (вот ссылка на последнюю версию прошивки AT 0.21 SDK 0.9.5 на момент написания этой статьи)
2. Скачайте XTCOM UTIL из раздела ESP8266 Утилиты с нашего сайта
3. Отключите от последовательного порта вашу терминальную программу
4. Отключите питание от модуля ESP8266, подключите GPIO0 к GND, включите питание модуля.
5. Запускайте XTCOM_UTIL для прошивки модуля и загружайте новую прошивку в модуль ESP8266.
Если программа при запуске выдает ошибку, то вам необходимо установить
Microsoft Visual C++ 2005 Redistributable Package (x86)
или
Microsoft Visual C++ 2005 Redistributable Package (x64)
первая ссылка для 32-битных систем, а вторая для 64 разрядных.
Загрузка прошивки в модуль обычно осуществляется на скорости 115200, но режим прошивки модуля поддерживает автоопределение скорости и прошивка может быть осуществлена на скорости от 9600 и выше. Максимальная скорость зависит от многих факторов (вашего USB-TTL конвертера, длины проводов и прочего) и может быть определена экспериментально на конфигурации именно вашего оборудования.
Запускаем XTCOM_UTIL
ESP8266 обновление прошивки через XTCOM_UTIL шаг 1
В меню Tools выбираем Config device
ESP8266 обновление прошивки через XTCOM_UTIL шаг 2
Выбираем последовательный порт, к которому подключен ESP8266, выставляем скорость 115200, жмем Open
ESP8266 обновление прошивки через XTCOM_UTIL шаг 3
Эта картинка просто промелькнет, если программе удастся успешно соединится с модулем в режиме загрузки прошивки. Если вы все же увидите эту картинку и счетчик подключений Try to connect times будет расти, значит что-то пошло не так и лучше начать все заново.
ESP8266 обновление прошивки через XTCOM_UTIL шаг 4
Если все прошло гладко, то получим Connect with target OK!
Жмем OK, закрываем окошко Config Device, в меню API TEST выбираем Flash Image Download
Жмем Browse и выбираем файл прошивки, который хотим загрузить и Download
Начнется процесс прошивки модуля ESP8266
ESP8266 обновление прошивки через XTCOM_UTIL шаг 5
По окончание процесса, если все прошло гладко вы увидите Operation Succeeded
ESP8266 обновление прошивки через XTCOM_UTIL шаг 6
На этом процесс прошивки модуля завершен. Отключайте GPIO0 от GND, передергивайте питание модуля и подключайте свою терминальную программу — наслаждайтесь работой модуля ESP8266 с новой прошивкой.
P.S. Все программы для загрузки прошивки в модуль ESP8266 могут загружать ЛЮБЫЕ прошивки, т.е. как прошивки, основанные на AT командах, так и NodeMCU и прочие.
Обсуждение этой статьи на нашем форуме
Как прошить ESP-01S через Arduino Uno Ch440G? — Хабр Q&A
Имеется Arduino Uno Ch440G, ESP-01S, Bi-Directional Logic Level Converter (BD-LLC).
Подключаю все это дело следующим образом:
Arduino — BD-LLC
5V — HV
3.3V — LV
GND — GND
RX — RX (HV)
TX — TX (HV)
ESP-01S — BD-LLC
RX — RX (LV)
TX — TX (LV)
ESP-01S — Arduino
3V3 — 3.3V
EN — 3.3V
GND — GND
При включении в Serial Monitor вижу следующее (74880 baud):
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 2408, room 16
tail 8
chksum 0xe5
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0x84
load 0x3ffe8310, len 632, room 0
tail 8
chksum 0xd8
csum 0xd8
2nd boot version : 1.6
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000
rf cal sector: 249
rf[112] : 00
rf[113] : 00
rf[114] : 01
SDK ver: 2.0.0(5a875ba) compiled @ Aug 9 2016 15:12:27
phy ver: 1055, pp ver: 10.2
hJ⸮F⸮
На AT-команды (115200 baud) отвечает.
Пытаюсь перевести ESP-01S в режим программирования путем подключения IO0 (ESP-01S) к GND (Arduino). При загрузке вижу следующее (74880 baud):ets Jan 8 2013,rst cause:2, boot mode:(1,6)
При попытке прошить пустой скетч получаю следующую ошибку:
esptool.py v2.8
Serial port /dev/cu.usbserial-1430
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
File "/Users/quickdevel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/upload.py", line 65, in <module>
esptool.main(cmdline)
File "/Users/quickdevel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool/esptool.py", line 2890, in main
esp.connect(args.before)
File "/Users/quickdevel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool/esptool.py", line 483, in connect
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
Прошивка ESP8266 через Flash DownLoad Tool [Амперка / Вики]
Утилита Flash DownLoad Tool поможет записать на платформу с чипом ESP8266EX
прошивку в формате .bin
.
Программа будет полезна для загрузки интерпретатора JavaScript в чип ESP8266
, а так же восстановить модульх стандартную AT-прошивку.
Подготовка железа
Подключите управляющую платформу в режиме прошивки:
Выбор прошивки
Выберите файл прошивки в зависимости от выходного результата.
Прошивка модуля
- Скачайте утилиту Flash Download Tool.
- Распакуйте архив с программой для установки прошивки.
При этом конечный путь к программе и файлу прошивки не должен содержать кириллических символов.
- Запустите файл
ESPFlashDownloadTool
. - В появившемся окне выберите
ESP8266 DownloadTool
. Укажите путь к файлу прошивки, отметьте выбранный файл галочкой в чекбоксе напротив и укажите адрес 0х00, по которому будет записан файл в память модуля.
Выберите «СОМ-порт» к установленному модулю и установите скорость 115200 бод.
Настройте оставшиеся поля и чекбоксы, как показано на картинке.
Зажмите кнопку
PROG
модуле и удерживайте ее нажмите и отпустите кнопкуRESET
. После этого отпустите кнопку PROG. Модуль перейдет в режим ожидания прошивки.- Жмите кнопку «Start» в окне программы.
Если вы используете платформу «Sonoff Basic» використовуйте настройки:
РАЗМЕР Флэш-памяти: 8 Мбит
РЕЖИМ SPI: DOUT
- Дождитесь окончания прошивки.
Теперь смело приступайте к дальнейшей работы с модулем.
.
ESP-01S он же ESP8266 и ESP3D-WEBUI
Заимев в хозяйстве платы RURAMPS4D и немного потанцевав с бубном вокруг прошивки MK4DUO и таки настроив пару дней на нормальную печать, потихоньку привыкаю к 32 битам и ‘плюшкам’ 🙂
В плате была заявлена модуль поддержки ESP-01, но как всегда, ловкие китайцы выпускают несколько версий данного модуля, с 512 кБ памятью на борту и 1 МБ. Очевидно что тем больше тем лутше: D. Google даже знает как они выглядят:
Так что перед покупкой желательно уточнить, что смотрите.
Что дальше?
На http://3dtoday.ru/ есть несколько статей по данной теме и все они как то поверхностно описывают процесс и ‘грабли’ пришлось собирать самому. К тому же все статьи устанавливают стабильную версию ESP3D-0.6.2
Меня же интересовала последняя версия.
Первым делом установить Arduino IDE версии 1.8.2, с сайта, я скачал архивом.
Если до этого Вы уже ставили старую версию ESP3D то перед установкой нужно вычистить все ‘остатки’ ardunio, включая ранее установленные библиотеки ESP8266, иначе они будут конфликтовать и ничего не получится.
Затем:
- Идем по ссылке https://git-scm.com/download/win и скачиваем git. Устанавливаем.
- Заходим в директорию Arduino IDE. В папке hardware создаем папку esp8266com
- Заходим в созданную папку esp8266com
- Выполняем команду: [CODE] git clone https://github.com/esp8266/Arduino.git esp8266 [/ CODE] для загрузки ядра arduino для работы с ESP8266 в Arduino IDE.
- Устанавливаем Python 2.7
- Заходим в директорию Arduino IDE и папку hardwareesp8266comesp8266 ools
- Выполняем команду: [CODE] python get.py [/ CODE]
- Скачиваем https://github.com/esp8266/arduino-esp8266fs-plugin/releases/download /0.2.0/ESP8266FS-0.2.0.zip
- Содержимое архива распаковываем в директорию с Arduino IDE в папку tools
- Перезапускаем Arduino IDE.
Если все прошло без ошибок в Arduino IDE появится пункт ESP8266 Sketch Data Upload, а в менеджере плат -плата на основе чипа ESP8266
Теперь немного о ‘граблях’.
Если вы установили модуль старую версию прошивки или неудачно прошили модуль не хочет подымать Wi-Fi, но при этом без проблем шьется — его flash нужно обнулить.
Идем по ссылке http://www.pratikpanda.com/completely-format-erase-esp8266-flash-memory/
и скачиваем файл blank.bin, также скачиваем Flash Download tool и прошиваем наш 1 Мб модуль пустой прошивкой (не забываем что 1МБ это 8 Мбит). Для модулей с большим объемом памяти читаем текст по ссылке выше и повторяем.
Подключение
Не буду повторяться, скажу что в следующей части напишу о том, как можно прошить ESP-01 прямо в плате RURAMPS4D. Для тех у кого платы нет, минимальная схема подключения выглядит вот так.
Не пугайтесь, шилд STM32 справа используется всего лишь в качестве блока питания;)
USB -> COM TTL переходник нужен с уровнями сигнала на 3,3 Вольта.
Кратко это можно описать вот так
Вывод RX ESP-01 на TX USB-> COM переходника
Вывод TX ESP-01 на RX USB-> COM переходника
Вывод GND ESP-01 на GND USB-> COM переходника
Вывод 3V3 ESP-01 на + 3V3 блока питания
Вывод GND ESP-01 на GND блока питания
Вывод EN ESP-01 на + 3V3 блока питания
Вывод IO0 ESP-01 на GND блока питания для включения режима программирования и не подключен при нормальной работе модуля
Порядок работы такой, программирование — подключили IO0 к земле и подали питание.Рабочий режим — отключили IO0 и подали питание. После каждого сеанса программирования нужно снимать и подавать питание, USB переходник можно не отключать.
Программирование
Скачиваем сами исходные коды ESP3D-WEBUI. Идем по ссылке https://github.com/luc-github/ESP3D-WEBUI и жмем зеленую кнопку Clone or Download >> Download ZIP
Распаковываем в удобную папку и в директории с распакованными исходниками в ESP3D-devtesp3d открываем esp3d.ino
Настраиваем среду Arduino IDE согласно скриншота
Отдельно оговорюсь по режиму памяти QIO, на моем модуле стоит flash 25Q80BSIG и дорожки для данного режима от esp8266 к flash разведены, проблем не возникло. Если кого смущает можете использовать DIO режим, но он медленней в 4 раза: cry :. Номер порта узнаем индивидуально согласно своему USB переходника.
Компилируем проект кнопкой проверить но не загружаем.
После того как скажет что все ok жмем Инструменты -> ESP8266 Загрузка данных эскиза .Естественно что модуль должен быть подключен в режиме программирования.
Дожидаемся надписи «SPIFFS Image Загружено». Снимаем и подаем на модуль питание.
Теперь можно жать — Загрузить .
Дожидаемся окончания, снимаем питание и снимаем провод с выводом IO0. Включаем питание.
Первый запуск будет немного с задержкой в секунд 15-30. Если еще USB TTL переходник не отключен, чтобы промонитировать любой терминал (скорость 115200, 8 бит, 1 стопбит), что в случае удачи esp-01 сообщит о том, что развернул точку доступа ‘ESP3D’ и сообщит свой ip-адрес.Пароль от точки доступа ‘12345678’
После подключения к точке доступа и перейдя в браузере на адрес 192.168.0.1 (по умолчанию) модуль попросит выбрать язык, указать какая прошивка используется на 3D принтере и скорость соединения, и затем предложит настроить точку доступа клиент. После чего модуль следует перегрузить.
шт. В браузере должна быть поддержка java и JAVA должна быть установлена, или використовуйте Google Chrome Итог
После всей этой возни мы имеем
И главное рабочее окно
Также хочу выразить благодарность автору vasyna за статью, которая была использована, а также автору платы RURAMPS4D, а именно svs0724 за консультации
.