Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Начало работы с платой NodeMcu ESP8266 v3 Lua

NodeMcu – платформа на основе ESP8266 для создания различных устройств интернета вещей (IoT). Модуль умеет отправлять и получать информацию в локальную сеть либо в интернет при помощи Wi-Fi. Недорогой модуль часто используется для создания систем умного дома или роботов Arduino, управляемых на расстоянии. В этой статье мы рассмотрим описание платы, отличие версий и распиновку последней версии модуля Esp8266 NodeMcu v3. Также мы коротко рассмотрим язык Lua, на котором нужно писать программы для NodeMcu.

Описание ESP8266 NodeMcu v3

Технические характеристики модуля:

  • Поддерживает Wi-Fi протокол 802.11 b/g/n;
  • Поддерживаемые режимы Wi-Fi – точка доступа, клиент;
  • Входное напряжение 3,7В – 20 В;
  • Рабочее напряжение 3В-3,6В;
  • Максимальный ток 220мА;
  • Встроенный стек TCP/IP;
  • Диапазон рабочих температур от -40С до 125С;
  • 80 МГц, 32-битный процессор;
  • Время пробуждения и отправки пакетов 22мс;
  • Встроенные TR переключатель и PLL;
  • Наличие усилителей мощности, регуляторов, систем управления питанием.

Существует несколько поколений плат NodeMcu – V1(версия 0.9), V2(версия 1.0) и V3 (версия 1.0). Обозначения V1, V2, V3 используются при продаже в интернет-магазинах. Нередко происходит путаница в платах – например, V3 внешне идентична V2. Также все платы работают по принципу open-source, поэтому их могут производить любые фирмы. Но в настоящее время производством плат NodeMcu занимаются Amica, DOIT и LoLin/Wemos.

Отличия от других модификаций

Платы поколения V1 и V2 легко отличить – они обладают различным размером. Также второе поколение оснащено улучшенной модификацией чипа ESP-12 и 4 Мб флэш-памяти. Первая версия, устаревшая, выполнена в виде яркой желтой платформы. Использовать ее неудобно, так как она покрывает собой 10 выходов макетной платы. Плата второго поколения сделана с исправлением этого недостатка – она стала более узкой, выходы хорошо подходят к контактам платы. Платы V3 внешне ничем не отличаются от V2, они обладают более надежным USB-выходом.

Выпускает плату V3 фирма LoLin, из отличий от предыдущей платы можно отметить то, что один из двух зарезервированных выходов используется для дополнительной земли, а второй – для подачи USB питания. Также плата отличается большим размером, чем предыдущие виды.

Где купить модули NodeMCU и ESP8266

Сегодня на рынке доступно множество достаточно недорогих модификаций плат на базе ESP8266. Мы сделали небольшую подборку наиболее интересных вариантов:

 

Питание модуля NodeMcu

Подавать питание на модуль можно несколькими способами:

  • Подавать 5-18 В через контакт Vin;
  • 5В через USB-разъем или контакт VUSB;
  • 3,3В через вывод 3V.

Преимущества NodeMcu v3

  • Наличие интерфейса UART-USB с разъемом micro USB позволяет легко подключить плату к компьютеру.
  • Наличие флэш-памяти на 4 Мбайт.
  • Возможность обновлять прошивку через USB.
  • Возможность создавать скрипты на LUA и сохранять их в файловой системе.

Недостатки модуля NodeMcu

Основным недостатком является возможность исполнять только LUA скрипты, расположенные в оперативной памяти. Этого типа памяти мало, объем составляет всего 20 Кбайт, поэтому написание больших скриптов вызывает ряд трудностей. В первую очередь, весь алгоритм придется разделять на линейные блоки. Эти блоки необходимо записать в отдельные файлы системы. Все эти модули исполняются при помощи оператора dofile.

При написании нужно соблюдать правило – при обмене данными между модулями нужно пользоваться глобальными переменными, а при вычислении внутри модулей – локальными. Также важно в конце каждого написанного скрипта вызывать функцию collectgarbage (сборщик мусора).

Распиновка NodeMcu v3

Модуль V3 имеет 11 контактов ввода-вывода общего назначения. Помимо этого некоторые из выводов обладают дополнительными функциями:

  • D1-D10 – выводы с широтно-импульсной модуляцией;
  • D1, D2– выводы для интерфейса I²C/TWI;
  • D5–D8 – выводы для интерфейса SPI;
  • D9, D10 – UART;
  • A0 – вход с АЦП.

Подключение NodeMCU к компьютеру

Для начала работы с NodeMcu нужно подключить плату к компьютеру. Первым шагом будет установка драйвера CP2102 и открытие Arduino IDE. Затем нужно найти в «Файл» – «Настройки» и в окно «дополнительные ссылки для менеджера плат» вставить ссылку http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json.

После этого в меню «документы» – «плата» «менеджер плат» выбрать «esp8266» и установить последнюю версию. После проделанных действий в меню «инструменты» – «плата» нужно найти NodeMCU.

После того, как все необходимые данные будут установлены и скопированы, можно будет начать работать.

Пример подключения светодиода к NodeMCU

Принципиальная схема подключения представлена на рисунке.

Итоговый макет макет выглядит следующим образом:

 

Сама плата работает от напряжения 3.3 В, поэтому для подключения светодиода нужно использовать резистор. В данном примере для красного светодиода берется резистор номиналом 65 Ом.

Похожим способом к плате подключается и фотодиод:

Плату NodeMCU можно использовать и для управления по ИК каналу. Для управления нужен пульт дистанционного управления с ИК приемником и сама платформа. Инфракрасный приемник подключается по схеме, представленной ниже:

Прошивки для esp8266 NodeMcu

В основу платформы загружена стандартная прошивка Node MCU, в которую встроен интерпретатор языка Lua. При помощи Lua-команд можно выполнять следующие действия:

  • Подключение к Wi-Fi точке доступа;
  • Работа в роли Wi-Fi точки доступа;
  • Переход в режим глубокого сна для уменьшения потребления энергии;
  • Включение или выключения светодиода на выходе GPIO16;
  • Выполнение различные операции с файлами во флэш-памяти;
  • Поиск открытой Wi-Fi сети, подключение к ней;
  • Вывод MAC адреса;
  • Управление пользовательскими таймерами.

Для программирования NodeMCU можно использовать Arduino IDE или комплекс средств разработки SDK – ESPlorer. Этот комплекс обладает рядом отличий:

  • Он может работать на множестве различных платформ;
  • Обладает поддержкой нескольких открытых файлов;
  • Позволяет подсвечивать код языка Lua;
  • Возможность умной отправки файлов;
  • Возможность поддержки нескольких видов прошивки одновременно.

Для обеспечения корректной и стабильной работы нужно обновить прошивку до последней версии. Существует несколько способов обновления – облачный сервис, Docker Image и компилирование в Linux. Каждый из этих способов обладает своими плюсами и минусами. Наиболее простым и понятным является первый способ.

Сбор прошивки в облачном сервисе

Облачный сервис обладает простым и удобным интерфейсом. Работа начинается с ввода email. Далее будет предложено выбрать тип прошивки – стабильная прошивка или тестируемая. Первая используется для обучения и создания большого количества объектов, поэтому рекомендуется выбирать именно ее. Следующим шагом будет подключение нужных модулей. По умолчанию уже записано несколько основных пунктов, остальные нужно включать только по необходимости. Затем выбираются дополнительные опции. Среди них есть поддержка FatFS для чтения sd-карты или включение режима отладки.

После начала сборки придет письмо на почту, сигнализирующее о начале запуска процесса. Через некоторое время придет и второе письмо – будет предложено выбрать версию float (дробные числа) или integer (целые числа).

После перехода по полученной ссылке нужно будет скачать файл bin и поместить его в Resources – Binaries. Там будет расположен файл nodemcu_integer_0.9.5_20150318.bin, который нужно удалить. В итоге содержимое папки будет выглядеть следующим образом.

Обновление прошивки Node Mcu

Для правильной и стабильной работы платы требуется перезаписать esp_init_data_default.bin. Скачать его можно на официальном сайте. Нужный файл нужно поместить снова в систему для прошивки NodeMCU Flasher по пути Resources – Binaries, предварительно удалив из него старый файл.

Затем можно подключать  NodeMCU и приступить к обновлению. Для начала нужно поменять настройки – в NodeMCU Flasher во вкладке Config нужно выбрать файл собранной прошивки вместо INTERNAL://NODEMCU.

Остальное оставить без изменений, перейти на Operations и нажать Flash. Как только окончится прошивка, нужно снова перейти на Config и в первой строке указать путь esp_init_data_default.bin. Также дополнительно указывается адрес, куда нужно переместить этот файл. Для модуля NodeMCU следует выбрать адрес 0x3FC000. После этого нужно снова вернуться на Operations и нажать Flash.

После этого нужно переформатировать всю файловую систему млаты. Для этого нужно запустить ESPlorer, обязательно поставить скорость обмена 115200 и перезагрузить NodeMCU. После всех вышеописанных действий будет новая версия прошивки. Отладочная плата полностью перепрошита и готова к работе.

Краткое описание языка Lua

Язык Lua обладает простым синтаксисом и мощными конструкциями описания данных, которые основаны на массивах и расширяемой семантике.   Этот мощный язык программирования используется для создания программного обеспечения, расширения различных игр. В отличие от остальных языков Lua обладает более гибкими и более мощными конструкциями.

Мигание светодиодами на Lua

Можно рассмотреть простейшую схему – мигание светодиодом. Этот пример поможет изучить работы с контактами GPIO. Светодиод нужно подключить как показано на схеме.

Затем нужно записать следующий скетч в левое окно ESPlorer:

pin_number = 1

gpio.mode (pin_number, gpio.OUTPUT) // установка рабочего режима на выход

gpio.write (pin_number, gpio.HIGH)// установка высокого уровня

gpio.write (pin_number, gpio.LOW)// установка низкого уровня

gpio.serout (1, gpio.HIGH, {+990000,990000}, 10, 1) // установка мигания светодиодом 10 раз

После нужно сохранить скрипт с названием init.lua. Сразу после этого начнется автоматическая загрузка написанного кода в отладочную плату и его выполнение. Если операция выполнена успешно, отладочная плата начнет мигать светодиодом.

Важно отметить, что плата самостоятельно выполняет скрипт, подключение к компьютеру нужно только для подачи питания.

ESP8266 и прошивка NodeMcu – esp8266

esp8266 nodemcu

Глючность прошивок с AT командами многих разочаровывает, в том числе и меня. Но я оптимистично смотрю в будущее и вижу … NodeMcu. Итак, что ЭТО может?  Эта прошивка может интерпретировать команды языка Lua. Причем не просто команды в терминале, как AT команды, а может создавать файлы во флеш памяти ESP8266 и выполнять их. Autorun, разумеется тоже есть — здесь это init.lua. С помощью lua-команд мы можем:

  • подключаться к WiFi точке доступа
  • выступать в роли WiFi точки доступа
  • уходить в глубокий сон для снижения энергопотребления (недоступно для AT команд)
  • привязать lua-функцию к кнопке на GPIO16 (недоступно для AT команд в стандартной прошивке, частично доступно в некоторых кастомных)
  • включать/выключать светодиод на  GPIO16 (недоступно для AT команд в стандартной прошивке, доступно в некоторых кастомных)
  • перенаправлять вывод, в примерах есть telnet сервер (недоступно для AT команд)
  • создавать/записывать/читать/выполнять/искать/удалять/выводить списком файлы во флеш памяти (недоступно для AT команд)
  • в режиме startsmart автоматически находить открытую WiFi сеть и подключаться к ней (недоступно для AT команд)
  • выводить свой MAC адрес (недоступно для AT команд в стандартной прошивке, доступно в некоторых кастомных)
  • управление пользовательским таймером (недоступно для AT команд)
  • управлением таймером WatchDog (недоступно для AT команд в стандартной прошивке, частично доступно в некоторых кастомных)
  • управление (запись/чтение/триггер) GPIO1 — GPIO5, GPIO10, GPIO12-GPIO15 (недоступно для AT команд)
  • PWM (ШИМ) GPIO1 — GPIO5, GPIO10, GPIO12-GPIO15 (недоступно для AT команд)
  • TCP/IP сокеты
  • режим WEB сервера
  • I2C — адресация/запись/чтение (недоступно для AT команд)
  • АЦП 10 бит на пине TOUT (недоступно для AT команд)

Полное описание команд на github

Итак, как это все попробовать?

1. Качаем прошивку

2. Прошиваем ESP8266 любой утилитой, например XTCOM UTIL

3. Качаем luautil, или ESPlorer

автором которых является ваш покорный слуга (для luatool требуется установленный python 2.7, pyserial — гугл вам в помощь, для ESPlorer требуется JAVA )

4. Прописываем в файле init.lua SSID и PASSWORD вашей точки доступа (lua файлы открывайте чем угодно, хоть блокнотом)

5. Заливаем lua скрипт init.lua в ESP8266 с помощью luatool командой

luatool.py -p COM4 -f init.lua -t init.lua

luatool.py -p COM4 -f init.lua -t init.lua

6. Заливаем lua скрипт main.lua (это имя файла по-умолчанию, поэтому его можно не указывать)

7. Подключаемся терминалом к ESP8266, делаем

init.lua автоматически стартует после перезагрузки

lua script loaded by luatool 0.2 init.lua ver 1.1 set mode=STATION (mode= 1) MAC=18-FE-34-98-D4-B5 set wifi NodeMcu 0. 9.2 build 20141120 powered by Lua 5.1.4

lua script loaded by luatool 0.2

init.lua ver 1.1

set mode=STATION (mode= 1)

MAC=18-FE-34-98-D4-B5

set wifi

NodeMcu 0.9.2 build 20141120  powered by Lua 5.1.4

 

все готово, теперь можем запускать основной скрипт

Если все сделали правильно, то через cекунду вы увидите в терминале

В чем ложка дегтя? Большой черпак дегтя в том, что прошивка очень сырая. Часть команд, описанных в документации в данный момент вообще не работает. Уходит в exception при ошибках переполнения таймера, переменных и много чего еще. Радует то, что разработчики (китайские товарищи, кстати) активно над ней работают. Сообщество им активно помогает. Потенциал этой прошивки огромен — полнейшая круть!

Прошивка 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.

Описание, загрузка и настройка ESPEasy

Готовая прошивка “ESP Easy” позволит легко превратить любой модуль на базе ESP в многофункциональный сенсор или модуль для умного дома под управлением таких систем, как OpenHab и Domoticz. ESP Easy является отличным инструментом для изучения протокола MQTT.

Всё что вам необходимо сделать – это один раз загрузить прошивку ESP Easy на ваш модуль ESP, а дальше все настройки системы происходят в браузере с помощью удобного веб-интерфейса. Для ежедневной работы с модулем не нужны никакие дополнительные программы.

Последней стабильной версией прошивки ESP Easy является R120. Она хорошо подходит не только для домашних экспериментов, но и для производственных прототипов. Модуль с ESP Easy на борту может выступать в роли низкоуровневого управляющего устройства, но этот функционал в системе еще не полностью стабилен. Полный список возможных подключаемых дачиков, устройств ввода-вывода, реле и дисплеев можно посмотреть здесь.

Прошивка ESP Easy может быть установлена практически на любые платы на базе ESP8266. Вы можете прошить как самые простые модули типа ESP-01 или ESP-12, так и устройства типа NodeMCU development board, Wemos D1 и практически все устройства от производителя Sonoff. После прошивки вы сможете работать с GPIO 0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, A0. Пин номер 9 не рекумендуется использовать из-за нестабильной работы. На модулях Sonoff будут доступны пины 0 (кнопка), 12 (Реле), 13 (Светодиод) и, возможно, еще несколько в зависимости от конкретной модели устройства.

Поддерживаются следующие протоколы для передачи данных и работы с системами умных домов: OpenHAB MQTT, Domoticz HTTP и MQTT, PiDome MQTT, ThingSpeak, EmonCMS, протокол HTTP и другие. Подробнее про работу с ними будет написано в разделе с примера использования.

С чего начать?

В большинстве случаев модули ESP продаются с предустановленными прошивками AT firmware или NodeMCU LUA firmware. Начать делать сенсоры на базе ESPEasy легко: нужно просто заменить стандартную прошивку на ESPEasy, и можно приступать к работе. Это можно сделать с помощью программы flashtool (к сожалению, она доступна только на Windows) или с помощью Arduino IDE. Во время установки мы будем действовать по следующей схеме:

1. С официального сайта скачать стабильную прошивку
В архиве также будет программа flash tool для прошивки

2. Подключить модуль ESP к компьютеру 
Используем USB/UART переходник для простых плат типа ESP-01 или просто подключаем Micro-USB к платам типа NodeMCU dev board. 

3. Загружаем ESPEasy на плату с помощью flash tool или Arduino IDE
Обратите внимание на то, что GPIO должен быть соединен с GND при включении для запуска режима прошивки на плате. 

4. Перезапускаем модуль ESP. Появляется WiFi сеть с названием  “ESP_Easy_0”. Подключаемся к ней
(в версии прошивки 2.0 точка доступа будет называться ESP_0) 
Если страница настройки не открылась автометически, необходимо набрать 192.168.4.1 в вашем браузере

5. В появившемся окне настраиваем подключение к вашей домашей WiFi сети и нажимаем Connect

6. Модуль ESP перезагрузится и подключится к вашей домашней сети

7. Откройте в браузере новый IP адрес платы ESP и начинайте собирать данные с сенсоров

Поздравляем, всё настроено, и вы можете начать работать с ESPEasy!

Скачиваем прошивку

Скачиваем стабильную версию прошивки с официального сайта – ESPEasy R120.

Подключаем модуль ESP к компьютеру

Для всех, кто только начинает разбираться с EPS, MQTT и умными домами, мы рекомендуем обратить внимание на модуль NodeMCU ESP8266 (он же NodeMCU dev board). У него есть ряд плюсов: встроенный преходник USB/UART, большое количество GPIO, аналоговый пин A0, не нужно подключать GPIO к GND для прошивки, наличие питания 5 и 3.3 вольта. Просто подключаете плату к компьютеру с помощью Micro-USB кабеля и начинаете работать. NodeMCU dev board позволит вам сэкономить большое количество времени! При программировании обратите внимание, что номер ножки не соответствует номеру GPIO.

Также встроенный переходник USB/UART есть на плате Wemos D1 Mini:

Если у вас плата без переходника, например, ESP-01 или ESP-12, или вы хотите прошить модули Sonoff, то вам понадобится переходник USB/TTL.

В обоих случаях дополнительно вам понадобится установить на компьютер драйвер для вашего встроенного или внешнего переходника USB/TTL.

Загрузка прошивки ESPEasy с помощью Flash Tool

Данный способ подходит только для компьютеров с Windows, но он самый простой! Сначала необходимо проверить к какому порту компьютера подключен наш ESP помуль. Подключаем модуль к компьютеру по USB. Открываем “Диспетчер устройвств”, смотрим вкладку “Порты (COM и LPT)” и видим нашу плату. В моем случае порт COM4. Если ваше устройство не отображается в списке портов – значит вы не поставили драйвер для USB/TTL переходника.

Обратите нимание, что перед прошивкой модулей с внешнем адаптером USB/TTL их необходимо перевести в режим загрузки программного обеспечения. Для этого необходимо соединить GPIO0 на плате ESP с GND, воткнуть переходник в плату, а потом уже в USB. Если у вас NodeMCU или Wemos, то этого делать не нужно.

Распаковываем скаченный архив ESPEasy_R120.zip в папку ESPEasy_R120 и запускаем файл flash.cmd. Откроется черное окно, в котором необходимо будет ответить на несколько вопросов.

1 вопрос: Comport (example 3,4…) – необходимо ввести номер порта, к которому подключен модуль ESP и нажать Enter. Я ввожу 4. Enter.

2 вопрос:  Flash size (example 512, 1024 or 4096) – необходимо ввести количество памяти, которое доступно на нашей плате. Сколько памяти на вашей плате вы можете посмотреть в этой таблице. Для платы NodeMCU dev board вводим 4096. Enter.

3 вопрос: Build – необходимо ввести номер версии прошивки, которую вы загружаете. В нашем случае вводим 120. Enter.

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

Нажимаем любую клавишу. Прошивка ESPEasy успешно загружена на ваш модуль! Поздавляю! Переходим к пункту “Подключение и первичная настройка” в этой статье.

Возможные проблемы с Flash Tool

Если вы не видите своё устройство в диспетчере устройств, значит у вас не установлен драйвер переходника USB/TTL.

Если файлы не распаковать в папку, а просто запустить из архива, то после вопросов система выдаст ошибку, т.к. не сможет работать с файлом esptool.exe. Просто распакуйте архив в папку и заново запустите flash.cmd.

Если вам так и не удалось прошить модуль ESP с помощью flash.cmd, но плата видна в системе, то вы можете сделать прошивку программой ESPEasy Flasher. В ней надо будет только выбрать порт и соответствующую прошивку. В скаченной папке с прошивками будет 3 разных файла прошивок для плат с разным размером памяти.

Если у вас не получилось сделать загрузку ни одним из этих способов – вы можете попробовать сделать загрузку через Arduino IDE.

Загрузка прошивки ESPEasy с помощью Arduino IDE

Данный способ отлично подходит, если вы уже загружали свои собственные скетчи на плату через Arduino IDE и сейчас хотите попробовать поработать с ESPEasy. Если же вы раньше просто программировали ardunino и ни разу не прошивали esp8266, то предварительно вам необходимо подготовить Arduino IDE. Подробную инструкцию вы можете найти в нашей статье. Через Arduino IDE вы можете сделать загрузку как на Windows, так и на Mac OS.

В папке, которую вы скачали с официального сайта, кроме файлов последней прошивки и программы для загрузки также есть папка Source. В ней находятся два папки: в одной – необходимые библиотеки, во второй – файлы нашей прошивки. Копируете библиотеки из папки librares в папку с библиотеками ArduinoIDE на вашем компьютере.

На компьютерах Windows эта папка обычно: C:\Users\USERNAME\Documents\Arduino\librares – в папке с вашими документами.

На Mac OS: \Users\USERNAME\Documents\Arduino\librares – в папке с вашими документами.

Дальше заходим во вторую папку из скаченного архива (\Source\ESPEasy)  и запускаем оттуда файл ESPEasy.ino. Откроется Arduino IDE.

Теперь в меню “Инструменты” необходимо выбрать порт, тип платы, размер памяти. Какие параметры выбирать для разных плат и как настраивать Arduino IDE для работы с ESP вы может прочитать в нашей отдельной статье.

Для NodeMCU dev board выбираем параметры как на картинке + выбираем свой порт.

Заходим в меню “Скетч” и выбираем “Загрузка”

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

Прошивка загружена на модуль ESP, теперь мы можем переходить к настройке.

Подключение и первичная настройка

Теперь на своём компьютере откройте список доступных Wi-Fi сетей – в списке должна появиться сеть ESP_0 (В некоторых версиях прошивки возможно будет Esp_Easy_0). Подключитесь к ней (стандартный пароль configesp).

Если ваш браузер не открыл автоматически страницу настройки EspEasy, то в адресной строке браузера наберите 192.168.4.1. В появившемся окне необходимо выбрать вашу домашнюю wi-fi, ввести пароль от нее в поле password и нажать кнопку Connect.

Вы увидите сообщение о том, что система перезагружается.

После этого ваш компьютер отключится от сети Esp и подключится обратно к вашей домашнией Wi-Fi сети. В браузере покажется ip адрес вашего esp. В адресной строке вашего браузера введите ip esp модуля (например, 192.168.1.65). Откроется окно с основный информацией о модуле esp, на котором вы можете посмотреть: беспрырывное время работы модуля, уровень сигнала, ip адрес модуля и точки доступа, версию прошивки, MAC адреса, информация о свободной памяти и список других esp модулей в сети.

Вверху расположено меню для перехода в разделы системы. Зайдите во вкладку Config. Здесь находятся основные настройки системы, рассмотрим их подробнее.

1. Name – имя вашего ESP модуля. Оно используется как сетевое имя, а также для идентификации каналов при работе по MQTT протоколу.

2. Admin Password используется для установки пароля на настройки. По умолчанию пароля нет, но если его установить, то при открытии ip адреса вашего esp модуля необходимо будет ввести пароль. Только в этом случае вы сможете редактировать настройки. Это очень удобно, если вы используете свои модули в публичных местах.

3. SSID, WPA Key – используется для подключения к вашей домашней Wi-Fi сети.

4. WPA AP Mode Key – данный пароль используется в том случае, если ваш esp модуль работает в режиме точки доступа.

5. Unit nr – это номер машего модуля в сети. Для корректной работы системы он должен быть уникальным для каждого esp модуля.

6. Protocol и следующие за ним поля отвечают за выбор и настройку сетевого протокола, по которому ваш esp модуль взаимодействует с сервером умного дома или облачным сервером сбора данных. Мы можем выбрать OpenHAB MQTT, Domoticz MQTT, PiDome MQTT и ThingSpeak и другие менее популярные варианты.

7. Sensor Delay отвечает за то, как часто данные с модуля ESP отправляются на сервер. Значение необходимо писать в секундах.

8. Sleep Mode используется для перевода устройства в режим глубокого сна. Используйте этот параметр только после полной настройки вашего устройста.

В разделе Hardware вы можете выбрать какой светодиод на плате будет отвечать за состояние Wi-Fi подключения, а также выставить дефолтные состояния пинов. Во вкладке Rules можно настроить простые правила автоматизации. Обратите внимание, что по умолчанию данная вкладка не отображается. В разделе Devices происходит добавление и настройка датчиков и управляемых девайсов. В разделе Tools находятся более тонкие настройки, а также есть поле для выполнения команд. 

В данной статье мы рассказали вам о том, что из себя представляет готовая прошивка EspEasy, для чего ее можно использовать, как прошить ее ваш ESP модуль, а также как провести первичные настройки. В следующих статьях мы подробно расскажем о том, как использовать EspEasy в ваших проектах. Поключим к плате ESP самые популярные датчики, поробуем передавать данные с них в облачный сервер ThingSpeak и построить по ним графики. Также мы подключить ESP модуль к умному дому на базе OpenHAB по протоколу MQTT – будем собирать данные с датчиков и управлять светодиодами.

WiFi-IoT Firmware Builder :: Конструктор прошивки ESP8266(no OS)

Определение размера памяти по вкладке ip_adr/debug:


Вкладка debug содержит разную полезную информацию, в том числе и реальный размер чипа флеш памяти в строке Flash real size, а так же размер памяти, установленный в прошивающей программе Flash set size, который важен для правильной поддержки OTA.

Если вы не зарегистрированы в конструкторе, то вы можете скачать собранные прошивки на главной странице, где доступны 2 облегченных варианта прошивки:

-Вариант с поддержкой OTA с объемом памяти чипа 1мбайт и выше.  Необходимо обязательно выбирать в прошивающей программе размер памяти 1мбайт !! Модули с размером flash памяти 512кб не поддерживаются  режимом OTA !!

-Вариант без поддержки OTA. Если размер получаемого файла(одним файлом) более 496кб, то требуется поддержка flash памяти не менее 1 мегабайта !! По сравнению с режимом OTA в этом варианте количество включенных опций можно включить значительно меньше.

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

Если у вас имеются проблемы со стартом прошивки, то обязательно смотрим ниже абзац про решение проблем с прошивкой !

Сборка прошивки в конструкторе

Конструктор позволяет собрать прошивку под свои требования, включив в прошивку только те функции и датчики, которые нужны.

Не имеет смысла включать все опции в прошивке – в этом случае прошивка может не собраться так как не влезет в модуль. Лучше прошивку пересобрать снова, если вы хотите испытать другие опции.

Некоторые опции имеют дополнительные настройки, которые находятся в значке-шестеренке. Там можно выбрать доступное количество например термостатов или других опций. При изменении количества из-за динамических настроек могут “слететь” другие опции модуля после последующего обновления. При первоначальной настройке желательно сразу выбрать нужное количество опций, чтобы таких проблем не было.

При первоначальной сборке прошивки рекомендуется воспользоваться опцией OTA , чтобы следующее обновление было возможно через интернет без использования подключения программатора. С опцией OTA количество опций можно включить больше, но требуется чтобы память на модуле была не меньше 1 мегабайта !!

Кроме OTA так же рекомендуется включать опции NVS настройки 2 и Экспорт/Импорт настроек.

При сборке прошивки можно выбирать разный SDK. Рекомендуемая версия SDK 1.3.0.  В новых версиях замечена проблема с режимом точки доступа (Safe Mode)(???) , но нет проблем с надежностью связи с роутером. SDK – это набор библиотек и функций от производителя чипа для работы устройства.

После нажатия кнопки “скомпилировать” через некоторое время конструктор прошивки выдаст ссылки для скачивания:

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

В режиме OTA достаточно залить прошивку одним файлом. Но 0x81000.bin может потребоваться, если вы хотите обновить прошивку по кабелю после использования OTA, когда загружен файл user2.bin(отображается в debug) – в этом случае обновление прошивки одним файлом не обновит активную прошивку.

Подключение модуля для прошивки

Для прошивки 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кОм на постоянной основе !!

Если у вас модуль esp8266 имеет уже на борту USB-UART (например Wemos, NodeMCU) , то указанные выше действия проводить не требуется.

Прошивка модуля

Для начала необходимо установить драйвера для вашего USB-UART переходника или Arduinы.

Прошивка через Nodemcu Flasher: Устанавливаем на вкладке Advanced Параметр Flash size в соответствии выбранным размером flash памяти (в байтах). Режим работы flash ставим QIO (при использовании GPIO 9/10 – DIO). Остальные параметры не трогаем. Указываем на вкладке Config путь на файл прошивки с адресом 0x0000. На вкладке Operation выбираем COM порт и жмем кнопку FLASH.

Прошивка через Flash download tool: Действия аналогичны.

Прошивка через Flasher for WiFi-IoT.com http://files.wifi-iot.com/flasher/ . Программа имеет русскоязычный интерфейс и поддерживается как Windows, так и Linux системы. На данный  момент прошивка идет только по 0x0000 адресу файла “Скачать одним файлом (0x00000)”. При установленном API ключе возможна автоматическая загрузка заранее собранной прошивки напрямую из конструктора(только с режимом OTA). Для очистки памяти вместо бланка можно использовать опцию “стереть чип перед прошивкой”.

Для модулей ESP8285 и модулях с памятью PN25F08B требуется установка режима памяти DOUT !!

Прошивка через esptool. Пример команды esptool.py –port /dev/ttyUSB0 write_flash -fs 8m 0x00000 esp8266.bin . где -fs 8m параметр нужен только для указания размера при одномегабайтовой прошивке.

Скорость COM порта рекомендуется ставить не выше 115200.

Перед первой прошивкой рекомендуется залить в модуль blank по адресу 0x0000 , особенно, если в модуле до этого использовалась какая либо другая прошивка.

Прошивка файла ESP INIT DATA

Рекомендуется прошить в модуль файл esp_init_data_default.bin с калибровками по умолчанию, эти настройки влияют на работу wifi и adc. В большинстве случаев модули работают корректно без этого файла. Последние SDK могут вообще не запускаться без данного файла.

Адрес прошивки файла зависит от установленного размера flash памяти:

0x7c000 для 512 kB.

0xfc000 для 1 MB.

0x3fc000 для 4 MB.

0xffc000 для 16 MB.

Так же данные настройки можно загрузить подав GET команду http://[IP]/configinit?def=1 , последние SDK сами прописывают данные настройки.

Запуск модуля

При первом включении модуль включается в режим safe mode автоматически так как не содержит имени точки доступа. В режиме safe mode в эфире появится точка с именем WiFi-IoT (в прошивках до 12. 10.16 homessmart) , к которой можно подключится используя смартфон или ноутбук.

В режим safe mode еще можно попасть, замкнув между собой RX и TX и перезапустив модуль или нажать 3 раза подрят (с интервалом нажатия около секунды) кнопку RESET на ESP8266. 

Далее возможны два варианта подключения к модулю:

1. Используя Captive Portal мобильное устройство выведет уведомление о подключении, при нажатии на которое происходит автоматическое открытие главной веб страницы модуля. Можно так же зайти в модуль введя в браузере адрес iot.local (или любое другое, например iot.ru). Captive Portal не поддерживается если прошивка собрана на SDK 0.9.5 !

2. После успешного коннекта заходим вручную по адресу http://192.168.4.1 используя веб браузер. 

Далее настраиваем подключение на свой роутер на вкладке main веб интерфейса.Необходимо вбить в поля WiFi options данные своей точки доступа. Для подключения к роутеру выбираем режим “Station mode”. После нажатия кнопки set ниже появится IP адрес, на который можно заходить внутри своей беспроводной сети.

Далее обновляем страницу и видим внизу IP адрес, на который уже можно будет заходить внутри Вашей локальной сети.

Тут же вы можете установить свой логин и пароль на странички настроек веб интерфейса. Длинна логина и пароля не более 8 символов. Пароль затребуется на все вкладки настроек. А при установленной опции “Full Security” и на все GET запросы управления. В режиме safe mode пароль не запрашивается !

На данной вкладке можно задать имя модулю, которое будет отображаться на главной и в системе flymon, а так же в топике на MQTT сервере.

Указанные выше действия выполнять не требуется, если прошивка была собрана с опцией Настройки по умолчанию , где были заранее прописаны параметры роутера и IP адрес. После успешной прошивки и перезагрузки сразу можно заходить на указанный IP адрес модуля внутри своей wi-fi сети.

Решение проблем с прошивкой

Иногда, после сторонних прошивок или мусора модуль может не запустится и необходимо выполнить дополнительные действия. Необходимо затереть flash память пустым бланком по адресу 0x00000. Далее уже прошиваем саму прошивку снова.

У некоторых пользователей даже после зачистки бланком модуль не стартует или стартует только при установленном режиме 512 кб или 4мб, возможно это связано с низким качеством flash памяти или частичной её несовместимостью с чипом ESP8266. По некоторым сведениям от пользователей помогает замена чипа памяти.

Если на главной странице модуля выводится сообщение “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 адресу, который указали в настройках..

Иногда статус connect может висеть, если тип шифрования на роутере включен, который не поддерживается чипом ESP8266.

Сохранение настроек в файл

Этот метод является устаревшим, рекомендуется воспользоваться опцией Экспорт/Импорт настроек.

Настройки модуля можно сохранить в файл, исключая настройки 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.

Видеоинструкция по настройке от Genia1no_prosto

Видеоинструкция по настройке от Sergiy (ArmoR)

Перепрошивка ESP-8266 | Жизнь, бизнес и IT

ESP-8266 — интересный Wi-Fi чип для разработки устройств IoT. При приобретении его на Aliexpress прошивка на нем, нередко, достаточно старая. Прошивка устройства много где описана, но нередко упускаются из виду очень критичные моменты. Постараюсь воссоздать всю цепочку.

Для начала рекомендую распаять чип на белую платку-адаптер для ESP-07, ESP-12. На ней уже распаяны необходимые подтягивающие резисторы, кроме того, минимизируется риск повреждения контактов модуля ESP-8266.

Обычно в комплекте с платой не идет XC-6206A на 3,3 V. В принципе, он не нужен для работы при подаче напряжения 3,3 V.

Схема белой платы-адаптера (ESP-12 white mounting breakout board scematics) для ESP-07, ESP-12 следующая:

  • Приницпиальная схема платы-адаптера для ESP-07, ESP-12 (ESP-8266)

Емкости на плате отсутствуют. Вход EN обозначен как CH_PD.

Для программирования использовал аксессуары:

  • Arduino UNO R3 запитанный от блока питания, а не от USB порта. Мощности USB порта может оказаться недостаточно для питания Arduino UNO и ESP-8266. Arduino использовал только как блок питания на 3,3 V. Естественно, лучше использовать блок питания на 3,3 V.
  • RS-232 to UART конвертер. Можно использовать недорогой бескорпусный вариант. Я использовал корпусный вариант.
  • ESP-12 модуль (ESP-8266).
  • Белая плата-адаптер для ESP-8266 модулей.
  • Набор Dupont проводов.

Замечательно если есть беспаячная монтажная плата. У меня не было под руками, поэтому коммутацию выполнял напрямую проводами обжатыми Dupont разъемами.

Далее по тексту ESP-8266 — это модуль распаянный на белую плату-адаптер.

Коммутация:

ESP-8266
RS-232
converter
Arduino UNO
или БП 3,3 V
Комментарий
TXDRXDТеоретически, можно использовать Arduino TX/RD с небольшим скетчем. Однако, по-умолчанию, для ESP-8266 задана скорость порта 115200. Arduino UNO/Nano работают нестабильно на этой скорости, поэтому сначала придется подключится напрямую, чтобы установить скорость 9600.
RXDTXD
GNDGNDGND
VCC3,3 VArduino запитываем не от USB порта ПК!!!
GPIO0GNDДля переключения в режим обновления.

Проверка собранной схемы

Перед тем как переводить ESP-8266 в режим отновления прошивки, проверим работу собранной схемы:

  • Убедимся, что GIO0 отключена от GND. Иначе AT команды отправить в модуль нельзя.
  • Включим питание модуля.
  • Подключим USB-to-RS232 конвертер к ПК.
  • Зайдем в Control Panel -> System -> Device manager -> Ports (COM & LPT).
  • Если устройство Prolific USB-to-Serial Comm Port работает с ошибкой — нужно установить fix.
  • Если USB конвертер работает без ошибок — смоттри на каком COM порту он работает.
  • Запускаем ESPlorer и выставляем в настройках правильный COM порт и скорость. Жмем «Open».
  • Переходим на закладку «AT-based» и жмем кнопку «AT». Отправится команда AT, в ответ должна прийти «ОК». Хначит устрйоство работает нормально. То-же самое можно сделать любой терминальной программой работающей с последовательным портом, вроде PuTTY.
  • Далее жмем кнопку»RST». Отправится команда AT+RST для рестарта модуля.
  • Отправка команды AT+RST в ESP-8266.
AT+RST
AT+RST

OK
WIFI DISCONNECT

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 1396, room 16 
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4 
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4 
tail 8
chksum 0xc0
csum 0xc0

2nd boot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : DIO
  SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

тn't use rtc mem data
rlЋ‚rlМя
Ai-Thinker Technology Co.,Ltd.

ready
WIFI CONNECTED
WIFI GOT IP
  • Сохраним полученные параметры чипа. Они могут пригодится в дальнейшем.
  • Отправим AT+GMR для получения информации о текущей версии прошивки ESP-8266.
    bizkit.ru\/2018\/12\/25\/11272\/"}”>
  • Отправка команды AT+GMR в ESP-8266

Получили следующую информацию о чипе:

  • SPI Speed : 40MHz
  • SPI Mode : DIO
  • SPI Flash Size & Map: 8Mbit(512KB+512KB)
  • AT version:0.40.0.0(Aug 8 2015 14:45:58)
  • SDK version:1.3.0
  • Build:1.3.0.2 Sep 11 2015 11:48:04

Софт для прошивки ESP-8266

Для прошивки нужно скачать следующее ПО от разработчика чипа, компании Espressif:

Перевод ESP-8266 в режим загрузки обновления

Для перевода ESP-8266 в режим загрузки прошивки нужно:

  • Отключить питание модуля и извлечь из USB порта USB-to-RS-232 конвертер.
  • Замкнуть PIN GPIO0 на GND. Я использовал Dupont кабель. Кнопку нет смысла использовать. Вот здесь есть тонкий момент. На некоторых схемах используют две кнопки Flash и Reset и нажимают их попеременно для ввода в режим заливки обновления. В официальной документации дан вариант, который я описал. Но при этом я брикнул ESP8266 и пока не нашел способа восстановить.
  • Включить питание модуля.
  • Немного подождать и подключить USB-to-RS-232 конвертер.

Если нарушить последовательность, то программатор не найдет ESP-8266 модуль!

  • Запускаем ESP8266 Flash Download Tool.
  • Выбираем ESP8266 и задаем правильный порт и скорость.
  • Ничего не вводим и нажимаем Start
  • Если ESP 8266 корректно переведен в режиме скачивания прошивки, то практически мгновенно будет выдан статус Finish. И в «detected info» отобразится информация:
    • flash vendor: E0h : N/A
    • flash devID: 4016h
    • QUAD;
    • 32Mbit crystal;
    • 26 Mhz

Прошивка

В некоторых случаях брикнутые ESP 8266 удается восстановить с использованием инстурмента XTCOM_UTIL. Статья на эту тему.

Но здесь есть такой момент. Прошивки подходящие под эту утилиту неофициальные (специально сделанные) и очень древние. Хотя, можно «лить» и официальные, указав правильные адреса. Я не пробовал, но в статье пример.

У меня была ситуация, когда не мог залить официальную прошивку на купленный на Aliexpress ESP 8266 модуль. Но после того как залил древнюю прошивку через XTCOM_UTIL, залилась и прошивка через официальный ESP8266 Download Tool.

Но это довольно рискованный подход. Один чип я брикнул, причем на каждом из этапов заливки все было успешно. Возможно, просто неаккуратно извлек модуль после завершения прошивки, забыв отключить питание.

Если конвертер USB — RS-232 плохого качества, либо плохое качество соединений, то ESP8266 Download Tool может выдавать ошибку синхронизации. В Интернет рекомедуют снижать скорость до 9600, но это нельзя сделать с помощью этой утилиты. У неё минимальная скорость 115200. В этом случае можно воспользоваться консольной утилитой ESPTool от официального разработчика чипа компании Espressif. Я пробовал прошивать с помощью этой утилиты брикнутый чип, но безуспешно.

Таблицу адресов для заливки лучше брать в официальной документации, поскольку адреса завсят от чипа. Этот вопрос нужно смотреть тщательно, поскольку в Интернет адреса заданы для того чипа, который шил автор статьи. Адреса и схема распайки для программирования есть в ESP8266_SDK_Getting_Started_Guide, и адреса есть также в ESP8266_AT_Instructions_Set.

Сразу отмечу, что у меня нет достоверной информации, что если в ESP8266 Download Tool выставить флаг SpiAutoSet, то действительно производится проверка параметров чипа. Адреса точно никак не проверяются.

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

    bizkit.ru\/2018\/12\/25\/11272\/"}”>

В Интернете не раз проскакивала информация, что ESP-8266 невозможно вывести из строя кривой прошивкой. Мне удавалось. 🙂 После этого чип даже при повторном переводе в режим заливки образа не откликается на запросы. Пробовал скорость и 9600 и 115200 использовать и разные другие шаманства со всеми возможными утилитами.

Troubleshooting

Если после прошивки ESP-8266 не получается подключиться к модулю на скорости 115200, нужно попробовать скорость 9600. В некоторых прошивках эта скорость выставлена по-умолчанию.

В некоторых случаях из-за качества соединений могут возникать проблемы с синхронизацией. Одно из решений — уменьшить скорость с 115200 до 9600:

  • AT+UART_DEF=<baudrate>,<databits>,<stopbits>,<parity>,<flow control>
  • AT+UART_DEF=9600,8,1,0,0
  • AT+UART_DEF=115200,8,1,0,3

В некоторых случаях при переходе на другую скорость отклики от модуля в терминальной программе становятся очень медленными. Пока не разобрался с чем это связано. Помогает сброс к заводским настройкам командой AT+RESTORE.

Статьи

Обновление прошивки ESP8266

Для работы с RemoteXY модуль ESP8266 должен иметь версию прошивки с поддержкой AT команд не ниже v0.40. Для проверки версии модуля, а так же для изменения прошивки в случае необходимости, подключите модуль к компьютеру через последовательный порт. Модуль можно подключить через плату Arduino или через USB-UART адаптер.

Подключение через плату Arduino

При использовании Arduino основной чип ATmega переводится в режим сброса, активным остается только встроенный USB-UART преобразователь. Для этого контакт RESET соединяется с землей. Контакты RX и TX подключаются к ESP8266 напрямую, а не крест накрест, как если бы они подключались для работы с контроллером.


Подключение через USB-UART адаптер

Преобразователь должен иметь выход источника 3.3V для питания ESP8266. Так же этот источник должен обеспечить необходимый ток не менее 200мА.

Контакт CPIO0 определяет режим работы модуля. При не подключенном контакте модуль работает в штатном режиме и выполняет AT команды. При замыкании контакта на землю, модуль переводится в режим обновления встроенной прошивки. Перевод модуля в режим прошивки требует, что бы контакт CPIO0 был подключен к «земле» в момент подачи питания на модуль. Если замыкать контакт при работающем модуле, перевод модуля в режим обновления прошивки не произойдет.

Проверка текущей версии

Для отправки AT команд и просмотра ответов необходимо использовать любую программу монитора последовательного порта. Очень хорошо подходит терминальная программа из Arduino IDE. В программе необходимо установить режим отправки команд с завершающим символом перевода строки и возвратом каретки. Скорость работы модуля по умолчанию 115200 бит/сек. Для работы модуля в штатном режиме контакт CPIO0 должен быть отключен.

Проверить текущую версию прошивки можно выполнив AT команду: AT+GMR. Пример ответа модуля:


AT+GMR 

AT version:0. 40.0.0(Aug 8 2015 14:45:58) 
SDK version:1.3.0 
Ai-Thinker Technology Co.,Ltd. 
Build:1.3.0.2 Sep 11 2015 11:48:04 
OK  

Так же стоит узнать размер флеш памяти вашего модуля, от этого зависят настройки адресов загрузки данных при обновлении прошивки. В данной инструкции описана прошивка модуля с размером флеш памяти 8Mbit(512KB+512KB) или 16Mbit(1024KB+1024KB), как наиболее распространенных. Размер флеш памяти можно узнать, выполнив AT команду сброса модуля: AT+RST.


AT+RST

OK

 ets Jan  8 2013,rst cause:2, boot mode:(3,1)

load 0x40100000, len 1396, room 16 
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4 
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4 
tail 8
chksum 0xc0
csum 0xc0

2nd boot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : DIO
  SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

#т#n't use rtc mem data
slЏ‚rlМя
Ai-Thinker Technology Co. ,Ltd.

ready

Программа для прошивки

Для обновлении прошивки необходимо скачать программу для прошивки и саму прошивку. Программа для прошивки ESP8266 будем использовать Flash Download Tools v2.4 с официального сайта Espressif Systems. Ссылка на страницу загрузки на официальном сайте: http://espressif.com/en/products/hardware/esp8266ex/resources. Необходимо перейти в раздел “Tools”.

Ссылка на программу в нашем файловом хранилище: FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar

Прошивка

Прошивку так же можно скачать с официального сайта. Ссылка на страницу загрузки на официальном сайте: http://espressif.com/en/products/hardware/esp8266ex/resources. Необходимо перейти в раздел «SDKs & Demos» и загрузить прошивку ESP8266 NONOS SDK версии не менее v1.3.0. Именно с этой версии прошивки реализована поддержка AT команд v0.40 и более.

Ссылка на прошивку в нашем файловом хранилище: esp8266_nonos_sdk_v1.4.0_15_09_18_0.rar

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

Настройка

Запускаем программу прошивки Flash Download Tools v2.4 (одноименный .exe файл). В открывшемся окне необходимо правильно указать загружаемые файлы и настройку соединения.

Загружаемые файлы располагаются в каталоге bin архива с прошивкой. Для каждого файла необходимо указать правильный адрес загрузки. Используйте следующую таблицу для выбора файлов и назначения адресов:

Файл в каталоге bin Флеш 8Mbit (512KB+512KB) Флеш 16Mbit (1024KB+1024KB)
esp_init_data_default.bin 0xFC000 0x1FC000
blank.bin 0xFE000 0x1FE000
boot_v1.4(b1).bin или старшей версии 0x00000 0x00000
user1.1024.new.2.bin (в подкаталоге at) 0x01000 0x01000
user2. 1024.new.2.bin (в подкаталоге at) 0x81000 0x81000

Установите следующие параметры настройки:

  • SPIAutoSet — установлен;
  • CrystalFreq – 26M;
  • FLASH SIZE – 8Mbit или 16Mbit в зависимости от размера флеш-памяти;
  • COM PORT – выберите порт, к которому подключена ESP;
  • BAUDRATE – 115200

Для старта прошивки необходимо нажать кнопку “START”.

Последовательность шагов для прошивки ESP8266

1. Подключите модуль к компьютеру согласно схеме подключения в этой статье.

2. Запустите монитор последовательного порта. Выполните AT команды AT+RST и AT+GMR для определения текущей версии прошивки и размера памяти модуля. Этот шаг так же позволяет проверить правильность подключения модуля.

3. Запустите программу прошивки Flash Download Tools, правильно настройте загружаемые файлы, установите настройки.

4. Отключите питание модуля ESP8266.

5. Соедините контакт CPIO0 на землю.

6. Подайте питание на модуль ESP8266.

7. Нажмите в программе прошивки кнопку START

8. Дождитесь окончания прошивки модуля. По окончании прошивки появится надпись FINISH зеленого цвета.

9. Отсоедините питание модуля ESP8266. Отсоедините землю с контакта CPIO0.

10. Включите модуль, запустите монитор последовательного порта. Убедитесь в работоспособности модуля и новой версии прошивки выполнив AT команду AT+GMR.

nodemcu / nodemcu-firmware: интерактивная прошивка на основе Lua для ESP8266, ESP8285 и ESP32

Прошивка на основе Lua для ESP8266 WiFi SOC

NodeMCU – это прошивка на основе Lua с открытым исходным кодом для ESP8266 WiFi SOC от Espressif, использующая встроенную файловую систему SPIFFS на основе флэш-памяти. NodeMCU реализован на C и размещен в Espressif NON-OS SDK.

Прошивка изначально разрабатывалась как сопутствующий проект популярных модулей разработки NodeMCU на базе ESP8266, но теперь проект поддерживается сообществом, и теперь прошивку можно запускать на любом модуле ESP.

  • Простота программирования беспроводного узла и / или точки доступа
  • На основе Lua 5.1.4 или Lua 5.3, но без отладки , io , os и (большей части) math модулей
  • Модель асинхронного программирования, управляемого событиями
  • более 70 встроенных модулей C и около 20 модулей Lua
  • Прошивка доступна с поддержкой чисел с плавающей запятой или без нее (только целые числа используют меньше памяти)
  • Актуальная документация по адресу https: // nodemcu.readthedocs.io

Поддержка LFS

В июле 2018 года была представлена ​​поддержка Lua Flash Store (LFS). LFS позволяет коду Lua и связанным с ним постоянным данным выполняться непосредственно из флэш-памяти; так же как и сама прошивка выполняется. Теперь это позволяет разработчикам NodeMCU создавать приложений Lua с кодом Lua размером до 256 КБ и константами только для чтения, выполняемыми из флэш-памяти. Вся оперативная память доступна для чтения-записи данных!

Модель программирования NodeMCU аналогична модели программирования Node.js, только в Lua. Он асинхронный и управляемый событиями. Поэтому многие функции имеют параметры для функций обратного вызова. Чтобы дать вам представление о том, как выглядит программа NodeMCU, изучите короткие фрагменты ниже. Более подробные примеры можно найти в папке / lua_examples в репозитории на GitHub.

 - простой HTTP-сервер
srv = net.createServer (net.TCP)
SRV: слушать (80, функция (соединение)
conn: on ("получение", функция (sck, payload)
печать (полезная нагрузка)
sck: send ("HTTP / 1.0 200 OK \ r \ nContent-Type: text / html \ r \ n \ r \ n  

Здравствуйте, NodeMCU.

") конец) conn: on ("отправлено", функция (sck) sck: close () end) конец)
 - подключиться к точке доступа WiFi
wifi. setmode (wifi.STATION)
wifi.sta.config {ssid = "SSID", pwd = "password"} 

Вся документация по NodeMCU хранится прямо в этом репозитории по адресу / docs. Тот факт, что документация API поддерживается в том же репозитории, что и код, который предоставляет API, обеспечивает согласованность между ними. При каждой фиксации документация перестраивается программой Read the Docs и, таким образом, преобразуется из краткого Markdown в удобный для просмотра HTML-сайт по адресу https: // nodemcu.readthedocs.io.

Из-за постоянно растущего числа модулей, доступных в NodeMCU, предварительно созданные двоичные файлы больше не доступны. Воспользуйтесь услугой автоматической сборки пользовательского микропрограммного обеспечения, чтобы получить конкретную конфигурацию микропрограммы, которая вам нужна, или обратитесь к документации, чтобы узнать о других вариантах создания собственной микропрограммы.

В этом проекте используются две основные ветки: выпуска и dev . dev активно работает, и это также то, против чего следует создавать PR.Таким образом, выпуск можно считать «стабильным» даже при отсутствии автоматических регрессионных тестов. Целью является повторное слияние с версией примерно каждые 2 месяца. В зависимости от текущей «жары» (проблемы, PR) мы принимаем изменения в dev в течение 5-6 недель, а затем откладываем их в течение 2-3 недель до завершения следующей привязки.

Новый тег создается каждый раз, когда dev объединяется с выпуском . Они перечислены в разделе выпусков здесь, на GitHub.Имена тегов следуют шаблону -release_yyyymmdd.

См. Https://nodemcu.readthedocs.io/en/release/support/.

Массачусетский технологический институт © zeroday / nodemcu.com

Выпуски

· nodemcu / nodemcu-firmware · GitHub

Releases · nodemcu / nodemcu-firmware · GitHub

Обратите внимание, что согласно # 3164 этот проект переключил ветвь по умолчанию с master на выпуска с предыдущим выпуском. На данный момент оба синхронизированы, чтобы облегчить переход для нашего сообщества. Однако стоит ожидать, что master рано или поздно исчезнет.

🥳📢 Официальная доступность NTest et.al. тестовая среда.

Критические изменения

  • DS18B20 Lua-модуль: извлечь целочисленную версию в отдельный скрипт – # 3150

Новые модули

Исправления ошибок

Подробнее см. Веху выпуска.

Прекращение поддержки

Обратите внимание, что согласно # 3164 этот проект переключил ветвь по умолчанию с master на выпуска с предыдущим выпуском.На данный момент оба синхронизированы, чтобы облегчить переход для нашего сообщества. Однако стоит ожидать, что master рано или поздно исчезнет.

Критические изменения

  • Удалить toHex и toBase64 из модуля crypto , ранее был перенесен в кодировщик – # 3300

Новые модули

Исправления ошибок

Подробнее см. Веху выпуска.

Обратите внимание, что согласно # 3164 этот проект переключил ветвь по умолчанию с master на выпуска .На данный момент оба синхронизированы, чтобы облегчить переход для нашего сообщества. Однако стоит ожидать, что master рано или поздно исчезнет.

Для получения дополнительных сведений см. Этап выпуска.

Особенности

  • @TerryE продолжает работу над ядром Lua; этот выпуск содержит значительную внутреннюю работу (# 3193) и улучшает совместимость наших дополнительных модулей с Lua 5.3.
  • Все внутренние модули, использующие обратные вызовы Lua, поддерживают обработку паники.(# 3163)

Критические изменения

  • Модуль sqlite3 , ранее объявленный устаревшим, был удален (# 3123, # 3162).
  • Модуль rc , ранее объявленный устаревшим и замененный на rfswitch , был удален (№ 3134).

Исправления ошибок

Различные исправления приземлились в

Прекращение поддержки

  • crypto.toHex и crypto.toBase64 все еще устарели, но еще не удалены; вместо этого используйте одноименные методы из кодировщика .
  • node.flashreload теперь помечен как устаревший (# 3273).
  • ws2812_effects остается устаревшим, но повторная имплементация задерживается.
9 сен.2020
 Добавление флага '+' в string.format
 

Особенности

  • @TerryE добавила Lua 5.3 вместе с Lua 5.1 опора; сборка с использованием make LUA = 53 для сборки с использованием нового языкового ядра. Новое ядро ​​языка содержит множество внутренних улучшений, и мы ожидаем перехода на Lua 5. 3 по умолчанию в следующем выпуске и удаления 5.1 в последующем выпуске.

Пожалуйста, ознакомьтесь с этапом выпуска, чтобы узнать все подробности.

Критические изменения

  • Поддержка TLS 1.1 удалена из конфигурации по умолчанию. Пожалуйста, используйте TLS 1.2.
  • node.output () теперь использует канал для передачи вывода вместо строки.

Новые модули

Заслуживающие внимания улучшения

  • hx711 улучшения драйвера # 2915
  • MbedTLS 2.16.3 из апстрима.
  • Новый API проверки TLS для работы без использования флэш-памяти
  • telnet Пример Lua теперь преобразован в модуль Lua и сделан более надежным # 3133
  • Множество исправлений и улучшений в документации

Исправления

  • Исправления драйвера BMP085 # 3070)
  • исправления драйвера BME680 # 2969)
  • color_utils.grb2hsv () прошел тест инвертированной логики # 3076
  • DS18B20 lua модуль теперь считывает контрольные суммы # 2992
  • endusersetup Временное решение ошибки демаршалинга HTTP # 3069
  • gpio исправления обработки прерываний # 3091
  • http поддержка загрузок по фрагментам и другие исправления # 2985
  • Пример
  • luaOTA больше не является устаревшим # 2954
  • u8g2 теперь правильно имеет updateDisplay method # 3093
  • ws2812 исправления # 2953

Прекращение поддержки

  • крипто. toHex и crypto.toBase64 устарели и будут удалены в следующем выпуске; вместо этого используйте одноименные методы из кодировщика .
  • rc устарел, давно заменен на rfswitch и будет удален в следующем выпуске.
  • sqlite3 устарела и будет удалена в следующем выпуске.
  • ws2812_effects устарела и может быть повторно реализована в Lua в следующем выпуске.

Особенности

  • SDK обновлен с 2.2.1 до 3.0

Критические изменения

Новые модули

  • Модуль Lua для сопрограмм, # 2851
  • Модуль ШИМ2, №2747

Заслуживающие внимания улучшения

  • I2C с несколькими шинами, № 2465

Исправления ошибок

  • различные мелкие исправления ошибок; подробности см. вехой

Прекращение поддержки

Особенности

  • Узнайте все подробности о вехе: Milestone Winter 2019
  • LFS прошла через 2 выпуска и теперь считается стабильной
  • Это последний SDK 2. x выпуск

Критические изменения

  • Удалены таймеры на основе индексов, которые давно не рекомендуются, # 2603

Новые модули

  • Общий модуль Fifo Lua с оболочкой Fifosoc, теперь используется в telnet и http-сервере для более надежного TCP / IP

Заслуживающие внимания улучшения

  • Инструменты на стороне хоста теперь могут быть скомпилированы с помощью собственных инструментов MS Visual Studio для выполнения в среде MS Windows.
  • Обновления для поддержки протокола TLS
  • Обновить FatFS с 0.С 12a по 0,13c
  • Разные улучшения для поддержки таймера

Исправления ошибок

  • различные мелкие исправления ошибок; подробности см. вехой

Прекращение поддержки

Нет

Новые модули

Нет

Заслуживающие внимания улучшения

  • сжатие в образы LFS
  • оптимизировать ROTable доступ и интерфейс
  • u8g2 поддержка i2c multibus

Исправления ошибок

  • много, подробнее см. Веху
  • MQTT: правильно обрабатывать большие / фрагментированные / фрагментированные сообщения

Прекращение поддержки

  • ds18b20 C модуль, используйте эквивалентный модуль Lua

Проверьте веху для получения всех подробностей: https: // github.com / nodemcu / nodemcu-прошивка / веха / 11? закрыто = 1

Это обеспечивает поддержку Lua Flash Store, LFS – настоящий поворотный момент.

Новые модули

  • u8g заменен на u8g2
  • Модули Lua: Telnet, FTP

Заслуживающие внимания улучшения

  • LFS
  • LFS
  • LFS
  • file.list () принимает необязательный параметр для фильтрации, # 2452
  • u8g2 вместо u8g, # 2184

Исправления ошибок

  • поддерживает заголовки без учета регистра для фрагментированных ответов в модуле HTTP

Для получения подробной информации проверьте веху LFS: https: // github. com / nodemcu / nodemcu-прошивка / веха / 10? закрыто = 1

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

Прошивка прошивки – Документация NodeMCU

Ниже вы найдете всю необходимую информацию для прошивки двоичного файла прошивки NodeMCU в ESP8266 или ESP8285.Обратите внимание, что это справочная документация, а не руководство со снимками экрана. Для этого обратитесь к документации соответствующего инструмента.

Внимание

Имейте в виду, что ESP8266 необходимо перевести в режим прошивки, прежде чем вы сможете прошивать новую прошивку!

Важно

При переключении между версиями NodeMCU см. Примечания о Обновление прошивки.

esptool.py

Основанная на Python утилита с открытым исходным кодом, независимая от платформы, для связи с загрузчиком ПЗУ в Espressif ESP8266.

Источник: https://github.com/espressif/esptool

Поддерживаемые платформы: OS X, Linux, Windows, все, что работает под управлением Python

Запуск esptool.py

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

esptool.py --port write_flash -fm 0x00000 .bin

flash-mode – это qio для большинства ESP8266 ESP-01/07 (модули 512 кБ) и dio для большинства ESP32 и ESP8266 ESP-12 (> = 4 МБ модулей).ESP8285 требует dout .

Попался

  • См. Ниже, если вы не знаете или не уверены в емкости флеш-чипа на вашем устройстве. Это может помочь дважды проверить, например, некоторые модули ESP-01 имеют 512 КБ, а другие – 1 МБ.
  • esptool.py находится в стадии интенсивной разработки. Рекомендуется запустить последнюю версию (проверьте с помощью esptool.py версии ). Поскольку эта документация могла не соответствовать текущим параметрам и параметрам, обратитесь к документации по режимам флэш-памяти esptool.
  • Файл образа прошивки содержит настройки по умолчанию dio для режима вспышки и 40m для частоты вспышки.
  • В некоторых необычных случаях данные инициализации SDK могут быть недопустимыми, и NodeMCU может не загрузиться. Самое простое решение – полностью стереть чип перед прошивкой: esptool.py --port erase_flash

NodeMCU PyFlasher

Автономный флешер NodeMCU с графическим интерфейсом на основе esptool.py и wxPython.

Источник: https://github.com/marcelstoer/nodemcu-pyflasher

Поддерживаемые платформы: все, что запускает Python, запускаемый .exe доступен для Windows и .dmg для macOS

Заявление об ограничении ответственности: о доступности NodeMCU PyFlasher было объявлено на странице NodeMCU в Facebook, но это не официальное предложение текущей команды разработчиков прошивки NodeMCU.

Перевод устройства в режим Flash

Чтобы включить мигание прошивки ESP8266, на выводе GPIO0 должен быть низкий уровень перед сбросом устройства.И наоборот, для нормальной загрузки GPIO0 должен быть вытянут высоко или плавающим.

Если у вас есть комплект разработчика NodeMCU, вам не нужно ничего делать, так как USB-соединение может снизить уровень GPIO0, установив DTR, и сбросить вашу плату, установив RTS.

Если у вас есть ESP-01 или другое устройство без встроенного USB, вам нужно будет включить прошивку самостоятельно, потянув GPIO0 на низкий уровень или нажав переключатель «flash» при включении или сбросе модуля.

Какие файлы прошивать

Если вы создаете свою прошивку с помощью облачного компоновщика или образа Docker, или любого другого метода, который создает объединенный двоичный код , то вы можете прошить этот файл напрямую по адресу 0x00000.

В противном случае, если вы собрали свою собственную прошивку из исходного кода:

  • bin / 0x00000.bin от до 0x00000
  • bin / 0x10000.bin от до 0x10000

Обновление прошивки

Существует три потенциальных проблемы, которые возникают при обновлении (или понижении!) Прошивки с одной версии NodeMCU до другой:

  • Сценарии

    Lua, написанные для одной версии NodeMCU (например, 0.9.x), могут работать без ошибок в более свежих прошивках.Например, Espressif изменил операцию сокета : отправить на асинхронную, т.е. неблокирующую. Подробную информацию см. В документации по API.

  • Файловая система флэш-памяти NodeMCU может нуждаться в переформатировании, особенно если ее адрес изменился из-за того, что размер новой микропрограммы отличается от старой. Если он не отформатирован автоматически, он должен быть действительным и иметь то же содержимое, что и до операции флэш-памяти. Вы по-прежнему можете запустить file.format () вручную, чтобы переформатировать файловую систему флэш-памяти.Вы узнаете, нужно ли вам это делать, если ваши флэш-файлы существуют, но кажутся пустыми, или если данные не могут быть записаны в новые файлы. Однако это должен быть исключительный случай. Форматирование файловой системы на большом флэш-устройстве (например, части размером 16 МБ) может занять некоторое время. Итак, при первой загрузке не стоит беспокоиться, если в течение минуты ничего не происходит. На консоль выводится сообщение, чтобы вы знали об этом.

  • Начальные данные Espressif SDK могут меняться в зависимости от версии прошивки NodeMCU, и, возможно, их необходимо стереть или перепрошить.См. Подробности в разделе «Исходные данные SDK». Полное стирание модуля перед обновлением прошивки позволит избежать этой проблемы.

Данные инициализации SDK

версии NodeMCU скомпилированы для конкретных версий Espressif SDK. SDK резервирует место во флеш-памяти, которое используется для хранения калибровочных и других данных. Espressif называет эту область «Системными параметрами» и занимает четыре сектора по 4 Кбайт флэш-памяти. Пятый сектор размером 4 Кбайта также зарезервирован для ВЧ-калибровки. – В сборках SDK версии 2.x эти 5 секторов расположены на последних страницах флэш-памяти.- В сборках SDK версии 3.x эти 5 секторов расположены на неиспользуемых страницах по смещению флэш-памяти 0x0B000-0x0FFFF, между сегментом bin / 0x00000.bin в 0x00000 и bin / 0x10000.bin с по 0x10000.

Если эти данные будут повреждены или вы обновляете основные версии SDK, микропрограмма может не загружаться правильно. Симптомы включают такие сообщения, как rf_cal [0]! = 0x05, is 0xFF , или бесконечные циклы перезагрузки и / или быстро мигающие светодиоды модуля. Если вы видите один или несколько из вышеперечисленных симптомов, убедитесь, что ваш чип полностью очищен перед перепрошивкой, например, с помощью esptool.py . Сборки микропрограмм SDK версии 3.x определяют, был ли очищен или поврежден сектор калибровки RF, и автоматически инициализируют его с правильным содержимым перед перезапуском процессора. Это работает для всех поддерживаемых SDK размеров флеш-памяти.

Определить размер вспышки

Самый простой способ определить емкость флэш-памяти – загрузить прошивку и затем распечатать (node.info'hw'.flash_size) , который сообщает размер флэш-памяти в килобайтах. В качестве альтернативы, если вы хотите определить емкость микросхемы флэш-памяти до установки микропрограммы , вы можете выполнить следующую команду.Это вернет 2-значный идентификатор производителя и 4-значный идентификатор устройства и обнаруженный размер флэш-памяти.

esptool.py --port flash_id Затем идентификатор чипа можно найти на https://review.coreboot.org/cgit/flashrom.git/tree/flashchips.h.

Документация по NodeMCU

Документация по NodeMCU
  • Обзор
  • Основы
    • Начиная
    • Сборка прошивки
    • Прошивка прошивки
    • Код загрузки
    • Компиляция кода
    • Служба поддержки
  • Справка
    • Справочное руководство по языку NodeMCU
    • Программирование в NodeMCU
  • FAQs
    • Часто задаваемые вопросы разработчика Lua
    • Часто задаваемые вопросы для разработчиков расширений
    • Часто задаваемые вопросы по оборудованию
  • Белые бумаги
    • Lua 5.3 Поддержка
    • Lua Flash Store (LFS)
    • Компактная отладка Lua (ЖК-дисплей)
    • Файловая система на SD-карте
    • Внутренняя файловая система
  • Модули Lua
    • Каталог модулей Lua
    • bh2750
    • bme280
    • помощник
    • ds18b20
    • ds3231
    • фифо
    • Fifosock
    • ftpserver
    • сплетни
    • HDC1000
    • httpserver
    • imap
    • жидкокристаллический
    • lm92
    • mcp23008
    • mcp23017
    • Redis
    • телнет
    • yeelink
  • Модули C
    • adc
    • реклама1115
    • adxl345
    • am2320
    • apa102
    • немного
    • цвести
    • bme280
    • bme280_math
    • bme680
    • bmp085
    • cjson
    • копейка
    • цветные утилиты
    • cron
    • крипто
    • DCC
    • dht
    • кодировщик
    • настройка конечного пользователя / адаптивный портал / менеджер Wi-Fi
    • файл
    • gdbstub
    • gpio
    • HDC1080
    • hmc5883l
    • http
    • hx711
    • i2c
    • l3g4200d
    • mcp4725
    • mdns
    • mqtt
    • сеть
    • узел
    • ow (1-Wire)
    • pcm
    • перфоманс
    • трубка
    • pixbuf
    • шим
    • pwm2
    • rfswitch
    • вращающийся
    • rtcfifo
    • rtcmem
    • rtctime
    • si7021
    • сигма-дельта
    • sjson
    • СНТП
    • Softuart
    • Somfy
    • spi
    • структура
    • switec
    • tcs34725
    • TLS
    • tm1829
    • tmr
    • tsl2561
    • u8g2
    • уарт
    • ucg
    • веб-сокет
    • Виганд
    • вай-фай
    • вай-фай.монитор
    • wps
    • ws2801
    • ws2812
    • ws2812-эффекты
    • xpt2046
Документация по NodeMCU
  • Документы »

Страница не найдена


Создан с помощью MkDocs с использованием темы, предоставленной Read the Docs.GitHub

Документация по NodeMCU

Документация по NodeMCU
  • Обзор
  • Основы
    • Начиная
    • Сборка прошивки
    • Прошивка прошивки
    • Код загрузки
    • Компиляция кода
    • Служба поддержки
  • Справка
    • Справочное руководство по языку NodeMCU
    • Программирование в NodeMCU
  • FAQs
    • Часто задаваемые вопросы разработчика Lua
    • Часто задаваемые вопросы для разработчиков расширений
    • Часто задаваемые вопросы по оборудованию
  • Белые бумаги
    • Lua 5.3 Поддержка
    • Lua Flash Store (LFS)
    • Компактная отладка Lua (ЖК-дисплей)
    • Файловая система на SD-карте
    • Внутренняя файловая система
  • Модули Lua
    • Каталог модулей Lua
    • bh2750
    • bme280
    • помощник
    • ds18b20
    • ds3231
    • фифо
    • Fifosock
    • ftpserver
    • сплетни
    • HDC1000
    • httpserver
    • imap
    • жидкокристаллический
    • lm92
    • mcp23008
    • mcp23017
    • Redis
    • телнет
    • yeelink
  • Модули C
    • adc
    • реклама1115
    • adxl345
    • am2320
    • apa102
    • немного
    • цвести
    • bme280
    • bme280_math
    • bme680
    • bmp085
    • cjson
    • копейка
    • цветные утилиты
    • cron
    • крипто
    • DCC
    • dht
    • кодировщик
    • настройка конечного пользователя / адаптивный портал / менеджер Wi-Fi
    • файл
    • gdbstub
    • gpio
    • HDC1080
    • hmc5883l
    • http
    • hx711
    • i2c
    • l3g4200d
    • mcp4725
    • mdns
    • mqtt
    • сеть
    • узел
    • ow (1-Wire)
    • pcm
    • перфоманс
    • трубка
    • pixbuf
    • шим
    • pwm2
    • rfswitch
    • вращающийся
    • rtcfifo
    • rtcmem
    • rtctime
    • si7021
    • сигма-дельта
    • sjson
    • СНТП
    • Softuart
    • Somfy
    • spi
    • структура
    • switec
    • tcs34725
    • TLS
    • tm1829
    • tmr
    • tsl2561
    • u8g2
    • уарт
    • ucg
    • веб-сокет
    • Виганд
    • вай-фай
    • вай-фай.монитор
    • wps
    • ws2801
    • ws2812
    • ws2812-эффекты
    • xpt2046
Документация по NodeMCU
  • Документы »

Страница не найдена


Создан с помощью MkDocs с использованием темы, предоставленной Read the Docs.GitHub

Документация по NodeMCU

Документация по NodeMCU
  • Обзор
  • Основы
    • Начиная
    • Сборка прошивки
    • Прошивка прошивки
    • Код загрузки
    • Компиляция кода
    • Служба поддержки
  • Справка
    • Справочное руководство по языку NodeMCU
    • Программирование в NodeMCU
  • FAQs
    • Часто задаваемые вопросы разработчика Lua
    • Часто задаваемые вопросы для разработчиков расширений
    • Часто задаваемые вопросы по оборудованию
  • Белые бумаги
    • Lua 5.3 Поддержка
    • Lua Flash Store (LFS)
    • Компактная отладка Lua (ЖК-дисплей)
    • Файловая система на SD-карте
    • Внутренняя файловая система
  • Модули Lua
    • Каталог модулей Lua
    • bh2750
    • bme280
    • помощник
    • ds18b20
    • ds3231
    • фифо
    • Fifosock
    • ftpserver
    • сплетни
    • HDC1000
    • httpserver
    • imap
    • жидкокристаллический
    • lm92
    • mcp23008
    • mcp23017
    • Redis
    • телнет
    • yeelink
  • Модули C
    • adc
    • реклама1115
    • adxl345
    • am2320
    • apa102
    • немного
    • цвести
    • bme280
    • bme280_math
    • bme680
    • bmp085
    • cjson
    • копейка
    • цветные утилиты
    • cron
    • крипто
    • DCC
    • dht
    • кодировщик
    • настройка конечного пользователя / адаптивный портал / менеджер Wi-Fi
    • файл
    • gdbstub
    • gpio
    • HDC1080
    • hmc5883l
    • http
    • hx711
    • i2c
    • l3g4200d
    • mcp4725
    • mdns
    • mqtt
    • сеть
    • узел
    • ow (1-Wire)
    • pcm
    • перфоманс
    • трубка
    • pixbuf
    • шим
    • pwm2
    • rfswitch
    • вращающийся
    • rtcfifo
    • rtcmem
    • rtctime
    • si7021
    • сигма-дельта
    • sjson
    • СНТП
    • Softuart
    • Somfy
    • spi
    • структура
    • switec
    • tcs34725
    • TLS
    • tm1829
    • tmr
    • tsl2561
    • u8g2
    • уарт
    • ucg
    • веб-сокет
    • Виганд
    • вай-фай
    • вай-фай.монитор
    • wps
    • ws2801
    • ws2812
    • ws2812-эффекты
    • xpt2046
Документация по NodeMCU
  • Документы »

Страница не найдена


Создан с помощью MkDocs с использованием темы, предоставленной Read the Docs.GitHub

Сборка прошивки – Документация NodeMCU

Существует три основных способа создания микропрограммного обеспечения NodeMCU: служба облачной сборки, образ Docker, выделенная среда Linux (возможно, виртуальная машина).

Служба сборки облака

NodeMCU «разработчикам приложений» просто нужна готовая прошивка. Существует служба облачной сборки с красивым пользовательским интерфейсом и параметрами конфигурации для них.

Образ Docker

Иногда хакерам прошивки NodeMCU не нужен полный контроль над всей цепочкой инструментов. Они могут не захотеть настраивать виртуальную машину Linux со средой сборки. Докер спешит на помощь. Попробуйте сборку Docker NodeMCU.

Среда сборки Linux

Разработчики микропрограмм NodeMCU вносят свой вклад в проект на GitHub и могут захотеть создать свою собственную полноценную среду сборки с полной цепочкой инструментов. Проект NodeMCU по умолчанию включает готовую цепочку инструментов для Linux / x86-64.После проработки параметров сборки ниже просто запустите процесс сборки с

.
  марка
  

Настройка сборки по умолчанию сводит детализацию вывода к минимуму. Уровень детализации можно увеличить, установив для переменной среды V значение 1, как показано ниже. См. Корневой файл Makefile , чтобы узнать о других доступных параметрах.

  В = 1 марка
  

Примечание

Создание цепочки инструментов с нуля выходит за рамки NodeMCU.Дополнительную информацию см. В инструментах ESP.

Git

Если вы решили строить с использованием образа Docker или собственной среды, используйте Git для клонирования источников прошивки вместо загрузки ZIP-файла с GitHub. Только клонирование с помощью Git приведет к получению указанных подмодулей:

  git clone --recurse-submodules -b <ветка> https://github.com/nodemcu/nodemcu-firmware.git
  

Если опустить необязательный -b <ветка> , мастер будет клонирован.

Параметры сборки

В следующих разделах объясняются некоторые из возможностей, которые у вас есть, если вы хотите создать собственное микропрограммное обеспечение NodeMCU.

Выбрать модули

Отключите модули, которые вы не будете использовать, чтобы уменьшить размер прошивки и освободить часть оперативной памяти. Объем доступной оперативной памяти ESP8266 весьма ограничен, и ее нехватка может вызвать системную панику. Конфигурация по умолчанию предназначена для работы на всех модулях ESP, включая модули 512 КБ, такие как ESP-01, и включает только интерфейсные модули общего назначения, для которых требуется не более двух контактов GPIO.

Отредактируйте app / include / user_modules.h и закомментируйте оператор #define для модулей, которые вам не нужны. Пример:

  ...
#define LUA_USE_MODULES_MQTT
// #define LUA_USE_MODULES_COAP
...
  

Поддержка TLS / SSL

Чтобы включить поддержку TLS, отредактируйте app / include / user_config.h и раскомментируйте следующий флаг:

  // # определить CLIENT_SSL_ENABLE
  

Полная конфигурация хранится в app / include / user_mbedtls.h . Это файл, который нужно редактировать, если вы создаете собственную прошивку и хотите изменить поведение mbed TLS. Подробную информацию см. В документации по tls .

Отладка

Чтобы включить сообщения отладки времени выполнения в последовательную консоль, отредактируйте app / include / user_config.h

  #define DEVELOP_VERSION
  

LFS

LFS по умолчанию выключен. См. Документацию LFS для получения информации о поддерживаемых параметрах конфигурации (например, о том, как его включить).

Установить скорость передачи данных UART

Начальная скорость при загрузке составляет 115200 бит / с.Вы можете изменить это редактирование BIT_RATE_DEFAULT в app / include / user_config.h :

  #define BIT_RATE_DEFAULT BIT_RATE_115200
  

Обратите внимание, что по умолчанию микропрограммное обеспечение запускает алгоритм автоматического определения скорости передачи данных, поэтому ввод нескольких символов во время загрузки вызовет прошивка для фиксации этой скорости передачи (между 1200 и 230400).

Целочисленная сборка

По умолчанию создается сборка с поддержкой переменных с плавающей запятой.Чтобы уменьшить размер памяти, можно создать целочисленную сборку. Вы можете изменить это либо раскомментировав LUA_NUMBER_INTEGRAL в app / include / user_config.h :

  #define LUA_NUMBER_INTEGRAL
  

ИЛИ, переопределив это с помощью команды make , как это делается во время CI сборка:

  сделать EXTRA_CCFLAGS = "- DLUA_NUMBER_INTEGRAL ....
  

Отметьте свою сборку

Определите сборки микропрограмм, установив переменную среды USER_PROLOG .Вы также можете отредактировать app / include / user_version.h . Переменная USER_PROLOG будет включена в NODE_VERSION_LONG .

  #define NODE_VERSION "NodeMCU" ESP_SDK_VERSION_STRING "." NODE_VERSION_XSTR (NODE_VERSION_INTERNAL) "" NODE_VERSION_LONG

#ifndef BUILD_DATE
#define BUILD_DATE "не указано"
#endif
  

Конфигурация модуля u8g2

Драйверы дисплея и встроенные шрифты компилируются в образ прошивки на основе настроек в app / include / u8g2_displays.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *