Esp8266 nodemcu v3 lolin прошивка: Wi-Fi Модуль LoLin v0.1 NodeMcu V3 как прошить и как с ним работать

Содержание

LoLin v3 NodeMcu Lua Wi-Fi ESP8266 Ch440 плата разработчика

LoLin NodeMcu v3 на базе ESP8266 – это микроконтроллер и WiFi модуль одновременно. LoLin NodeMcu v3 используется для программирования, контроля, управления в различных проектах, в которых нужно использование микроконтроллеров или возможно подключение к программному обеспечению, выполняемому на компьютере.
LoLin NodeMcu v3 поставляется на плате с гнездом microUSB и преобразователем USB – UART Ch440G, поэтому теперь можно не использовать внешние преобразователи USB – UART и ломать голову насчет большого потребления чипа ESP8266.
Для использования LoLin NodeMcu v3 нужно подключить его к USB порту компьютера с помощью кабеля USB тип A – microUSB тип B (в комплект поставки не входит). Операционная система компьютера определит устройство как USB Serial Ch440. После подачи питания на плате контроллера начнет мигать синий светодиод (индикация передачи данных).
После подключения контроллера к компьютеру нужно скачать и установить программное обеспечение для работы. LoLin NodeMcu v3 поставляется с уже загруженной на ESP8266 прошивкой NodeMCU. Данная прошивка воспринимает код, написанный на языке программирования LUA.

Но, также есть возможность работать с более привычным Arduino IDE. Перед прошивкой зажмите кнопку Reset, затем, не отпуская Reset, зажмите кнопку Flash, затем отпустите сначала Reset потом Flash. Для обновления прошивки в программе Arduino IDE по адресу: лепесток «Файл», пункт «Настройки», в поле «Additional Boards Manager URLs:» вводите строку http://arduino.esp8266.com/package_ esp8266com_index.json и нажимаете «OK». Далее лепесток «Инструменты», пункт «Плата:», во всплывающем списке выбираем «Boards Manager…», в строке поиска набираете ESP, под строкой поиска появится название модуля, далее жмем кнопку «INSTALLED». После того, как информация загрузится и пройдет установка, у Вас появится возможность выбрать в программном обеспечении Arduino IDE модуль ESP8266 как контроллер и напрямую писать под него программы. После этого возвращаемся в лепесток «Инструменты», пункт «Плата:» ищем и выбираем NodeMCU 1.0.
Предусмотрено три варианта использования в беспроводном режиме: Клиент (STA), Точка доступа (AP), Клиент+Точка доступа (STA+AP). Контроллер LoLin NodeMcu v3 оснащен PCB антенной, при этом расстояние приема/передачи в идеальных условиях 400 м.
Контроллер LoLin NodeMcu v3 поддерживает функцию OTA обновление прошивки «по воздуху».
Распиновка микроконтроллера LoLin NodeMcu v3:

Особенность при работе с LoLin NodeMcu v3 – вывод информации в терминал может осуществляться с мусором либо постоянно, либо при начале отображения. Иногда все начинает работать само по себе, иногда требуется поиграть со скоростями последовательного порта (в окне терминала и в скетче), дабы подобрать скорость, которая будет работать именно у Вас. Внимание: LoLin NodeMcu v3 хоть и Arduino совместимая плата, но ожидать, что на ней будут нормально работать любые скетчи от Arduino не стоит.
Питание контроллера LoLin NodeMcu v3 осуществляется напрямую от USB порта компьютера. Также можно осуществлять питание от внешнего источника с напряжением до 10 В через контакт VIN.

Характеристики:

модель: LoLin NodeMcu v3;
собран на чипе: ESP8266;
Flash память: 4 Мбайт;
тактовая частота: 80 – 160 МГц;
USB – UART: Ch440G;
расстояние приема/передачи, в идеальных условиях: 400 м;
функция: OTA;
встроенная прошивка: NodeMCU;

размеры: 57 х 30 х 8 мм;
вес: 10 г.

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

nodemcu/ESP8266 использует Arduino IDE - прошивку?



Я предполагаю, что у меня есть основная проблема понимания относительно nodemcu/ESP8266, когда он используется с Arduino IDE и/или visual micro (для MS Visual Studio).

Каждый раз, когда я загружаю программу/эскиз, который, очевидно, написан на C в этом случае, он компилирует и загружает двоичный файл размером около 280 КБ, даже если это всего лишь простой пример "blink".

Это какая-то прошивка, загружаемая каждый раз, или это просто чудовищные библиотеки, необходимые для работы ESP с Arduino IDE?

Если это прошивка, то обычно ли вы "update" устанавливаете прошивку на более свежую сборку при работе с Arduino IDE? При использовании прошивки nodemcu LUA периодически происходят обновления.

Спасибо!

arduino esp8266 firmware nodemcu
Поделиться Источник nemail     11 июля 2016 в 10:06

2 ответа


  • NodeMCU ESP8266 WiFi низкий уровень мощности RF

    Я протестировал прошивку NodeMCU на 4 модулях ESP8266, и у меня есть проблема с диапазоном WiFi модулей (всего 8 метров). Я попытался переключиться на прошивку ядра Arduino ESP8266 и вуаля, модули имеют лучшую дальность действия (>12 метров). Я думаю, что NodeMCU не устанавливает ESP8266 на...

  • Подключите Arduino к Blynk с помощью ESP8266

    так что сегодня я получил свой Arduino Uno. Для porject я хочу иметь возможность управлять некоторыми реле на моем Arduino через Wifi (через приложение Blynk). Для этого я хочу использовать ESP8266-01 в качестве щита Wifi. Я использовал этот учебник: https:/ /...



3

В принципе, вы создаете прошивку, которая представляет собой комбинацию вашего собственного кода и множества других code/libraries. Все остальные части являются частью ядра Arduino ESP8266, которое действительно получает обновления (оно живет здесь: https://github.com/esp8266/Arduino ). И само содержит Espressif SDK, который также получает обновления ( https://github.com/esp8266/Arduino/tree/master/tools/sdk ). Как и NodeMCU, вы можете периодически получать обновления, но они являются базовыми, и единственный способ получить их в прошивку-это перекомпилировать эскиз.

Поделиться cranphin     12 июля 2016 в 08:38



2

Это совершенно нормально - при написании кода для интерпретируемого языка, такого как Lua для ESP/NodeMCU,, вы просто загружаете относительно небольшой текстовый файл(ы), так как код, необходимый для его запуска, уже находится на чипе и не меняется.

Однако, когда вы начинаете работать с компилируемыми языками, такими как C (например, только с Espressif SDK) или C++ с Arduino IDE, вы заменяете всю прошивку при каждом изменении кода. Это включает в себя стек TCP/IP, управление WiFi, логику, управляющую интерфейсом PHY/MAC, mini OS и множество других битов, чтобы заставить ваш ESP8266 работать. Даже если ваш код выглядит как простая последовательность "blink", существует много кода, работающего за кулисами, чтобы сделать это возможным, что приводит к большому размеру эскиза.

Как правило, каждое изменение кода эскиза создает полную копию всего, что необходимо для создания загрузочного и запускаемого двоичного файла для ESP8266. Это то, что вызывает файл 280KiB. Поскольку каждая копия вашего кода включает в себя самую новую (или, по крайней мере, то, что находится в вашем IDE в то время) копию кода системного уровня, отдельного процесса обновления не существует - каждый раз, когда вы загружаете свой эскиз, системный код также обновляется.

Кроме того, есть некоторые дополнительные накладные расходы от абстракции Arduino на Espressif SDK, что приводит к большему результирующему двоичному размеру.

Поделиться Dawn Minion     11 июля 2016 в 22:17


Похожие вопросы:


Как сбросить esp8266 NodeMCU?

Я новичок в NodeMCU. Моя версия NodeMCU-это LOLin 0.1 Первый код, который я загрузил, - это Deauther Spacehuhn. Я настроил свой AP для настроек deauther, и все работало нормально. Через несколько...


Версия NodeMCU неизвестна

Я новичок в использовании прошивки NodeMCU. У меня есть комплект Amica ESP-12E (v2?) dev, подключенный к DHT22, который я программирую с помощью Arduino IDE. Все настроено и работает нормально. Моя...


Почему Arduino IDE работает с NodeMCU?

Я знаю, что когда мы покупаем NodeMCU, мы получаем прошивку NodeMCU, уже установленную в нем. Но как получилось, что мы можем использовать Arduino IDE (используется для программирования C++) с этим...


NodeMCU ESP8266 WiFi низкий уровень мощности RF

Я протестировал прошивку NodeMCU на 4 модулях ESP8266, и у меня есть проблема с диапазоном WiFi модулей (всего 8 метров). Я попытался переключиться на прошивку ядра Arduino ESP8266 и вуаля, модули...


Подключите Arduino к Blynk с помощью ESP8266

так что сегодня я получил свой Arduino Uno. Для porject я хочу иметь возможность управлять некоторыми реле на моем Arduino через Wifi (через приложение Blynk). Для этого я хочу использовать...


Отправка данных через UART из ESP8266 (NodeMCU) в Arduino

Я хочу отправить данные с моего устройства ESP8266 на плату Arduino Uno через UART. ESP8266 был прошит прошивкой NodeMCU (сборка имеет следующие timestamp:...


ESP8266/NodeMCU Android IDE

Я только что получил NodeMCU dev kit для ESP8266, и я хочу разработать для него свой телефон motox2013 Android. Есть какие-нибудь идеи о том, как я могу это сделать? Я знаю, что уже есть Android IDE...


Получение ошибки при загрузке кода в esp8266 nodemcu по Arduino

Недавно я купил esp8266 nodemcu для своего проекта. Для выполнения кода моргнуть, я следил за этим учебник быстрый старт с ESP8266. Но в итоге получилось вот что : Sketch использует 246 319 байт...


Должен ли я переустановить прошивку nodemcu, если я загрузил эскиз arduino?

У меня есть nodemcu v3 и я пробую некоторые базовые вещи Я установил плату esp8266 в Arduino IDE, а затем загрузил пример blink. Но теперь я пытаюсь загрузить код Lua с помощью ESPLorer, но он не...


Ошибка при компиляции для NodeMCU на Arduino IDE на Ubuntu

Я пытался связать фрагмент кода с приложением Blynk, используя NodeMCU, и я компилирую код на Arduino IDE на Ubuntu. Ниже приведен мой код: #define BLYNK_PRINT Serial #include <ESP8266WiFi.h>...

Как запустить MicroPython на ESP8266

Мне нравится идея Интернета вещей, и последнее время идея эта становится довольно популярной. У нас уже есть куча вещей, которые подключаются к интернету: телевизоры, принтеры, холодильники, автомобили и даже зубные щетки. Более того, у нас еже есть целые ботнеты, которые укомплектованы IoT устройствами, и которые успешно используются для массивных DDoS атак. Иногда я предпочитаю называть все это “Internet of Shit”, потому что порой непонятно, зачем некоторые устройства пытаются выйти в интернеты. Кстати, есть интересный twitter, который так и называется “Internet of Shit”. Очень рекомендую.

Использовать IoT устройства интересно, модно и современно. Более того, иногда это даже действительно полезно. Но куда более интересней принять более активное участие. Например, можно сделать свое собственное IoT устройство с блэкджеком и шлюхами. И огромное спасибо тем людям, которые создали ESP8266 контроллеры, который теперь позволяет абсолютно всем легко и просто создавать свои IoT устройства. Возможно вы уже знаете, что ESP8266 очень дешевые. А еще их относительно легко программировать, если вы дружите с Гуглом.

Я давно собирался что-нибудь сделать на базе ESP8266. Наконец-то у меня дошли руки, о чем бы хотелось поделиться с надеждой, что это будет кому-нибудь полезно. Перед тем как начать, я нашел довольно много статей про ESP8266 и NodeMCU прошивки, которые позволяют запускать Lua скрипты на ESP8266. Это, конечно, замечательно, но мне очень не хотелось изучать новый для меня язык Lua. Другая проблема это моя лень. Но я немного пишу на Python, и к счастью существует версия Python для микроконтроллеров, которая называется MicroPython. Работает этот MicroPython в том числе и на ESP8266.

Дальше идет рассказ о том, как же запустить этот MicroPython на ESP8266 и помигать светодиодиком.

Here is an English version – Getting started with ESP8266 and MicroPython

Если я правильно помню, то существует около двенадцати вариаций ESP8266 (а может быть и больше). Я использовал ту, что называется ESP-07, которая выглядит вот так:

Наверное проще и дешевле всего это заказать эту штуку на AliExpress или DX. Я бы еще посоветовал прикупить адаптер (как на картинке выше), которые облегчит работу с подключением ESP8266, если вы, как и я, не вытравляете печатные платы в домашних условиях, а пользуетесь всякими prototype boards.

Как-то давно я заказал парочку ESP8266 на AliExpress, и они долго пылились на полке. Вообще я их даже заказывал дважды у разных продавцов и заметил, что GPIO4 и GPIO5 пины могут меняться местами:

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

А вот и схема включения:

На почетном месте в центре видим ESP8266, а по бокам разную периферию:

  1. Кнопки `Flash` и `Reset` buttons позволяют переключать устройство в разные режимы. Вообще их не так много, а именно два, о которых я знаю: режим bootloader и режим flash. В режиме bootloader можно прошивать ESP8266 через UART (пины TXD and RXD на картинке выше). Flash startup это обычные режим, когда устройство запускает прошивку, которую на него залили.
  2. UART порт это пины TXD и RXD, через которые ESP8266 можно подключить к компьютеру с помощью USB-Serial конвертера.
  3. LD1 это светодиод, который подключен к пину GPIO13 через сопротивление, которое ограничивает ток через порт.
  4. Пара других GPIO пинов тоже используются, но об этом ниже.
  5. Регулятор напряжения в 3.3 вольт на базе LM1117T.

Как я уже говорил, у нас есть два режима: bootloader и flash startup. Чтобы переключиться в bootloader режим, надо подать низкий уровень на GPIO0 и GPIO15, а также высокий уровень на GPIO2, а потом перезагрузить ESP8266. Иными словами, нужно зажать кнопку `Flash`, в это время нажать `Reset`, а потом отпустить `Flash`.

В начале я нашел несколько более простых схем:

  1. Нет резистора R4
  2. GPIO15 пин подсоединен к кнопке `Flash`
  3. Нет резистора R3, GPIO2 пин не используется (высокий уровень не подается на этот пин).

Но все это не работало. Получалось залить MicroPython прошивку (о чем ниже), но при подключении к прошитой ESP8266 через USB-Serial конвертер Python консоль не появлялась. Попытки перезагрузить устройство приводили к появлению неведомых символов в окошке терминала. Поиски в интернетах показали, что это может означать, что устройство не переключилось в flash startup режим, и до сих пор находится в booloader режиме. Подключение GPIO2 к VCC через R3 резистор, добавление резистора R4 и подача низкого уровня на GPIO15 в результате помогли.

Можно заметить, что REST и GPIO16 пины подсоединены к конденсатору C1 и резистору R1. Поиски в интернетах показали, что это позволяет ESP8266 перезагрузить саму себя после переключения в sleep mode. К сожалению, не нашлось времени изучить это подробнее, но на всякий случай C1 и R1 были добавлены в схему.

Кому интересно – все ссылки на источники в конце поста.

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

Еще понадобится USB-Serial конвертер, который уже упоминался пару раз, чтобы подключить ESP8266 к компьютеру. Конвертеры эти дешевые и могут быть найдены на том же AliExpress.

Вот как все выглядело в результате:

Как уже говорилось ранее, будем заливать MicroPython, который можно скачать здесь:

http://micropython.org/download/#esp8266

Там есть несколько типов прошивок:

  • стабильные, которые весят больше 512K
  • ежедневные, которые весят больше 512K
  • ежедневные, которые весят меньше 512K (это урезанные версии MicroPython)

Выбор прошивки зависит от объема памяти вашего ESP8266 устройства. Когда я покупал свои ESP8266, то не обратил внимания на объем памяти, а следовало бы. В последствии выяснилось, что несколько моих ESP8266 имело лишь 512K памяти, поэтому пришлось использовать урезанные версии прошивок. Так же в последствии выяснилось, что с урезанными версиями MicroPython могут возникнуть некоторые проблемы. В общем, лучше использовать устройства, у которых памяти больше 512K, чтобы можно было залить обычный (неурезанный) MicroPython. Если вдруг вы не знаете, сколько памяти на вашем ESP8266, то просто попробуйте залить полную прошивку. Если памяти на устройстве не достаточно, то вы увидите соответствующую ошибку.

Для заливки прошивки можно использовать esptool, что на мой взгляд является самым популярным методом. Esptool написан на Python, причем похоже, что нужен именно Python 2, а не 3. Esptool можно установить с помощью pip или просто склонировать https://github.com/espressif/esptool

Прошьем уже ESP8266 наконец-то. Для начала надо переключить в bootloader режим, о котором было сказано выше. Потом было бы неплохо удалить все с нашей ESP8266:

sudo esptool --port /dev/ttyUSB0 erase_flash

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

sudo esptool --port /dev/ttyUSB0 --baud 460800 \
    write_flash --flash_size=detect 0 \
    esp8266-512k-20170212-v1.8.7-213-gaac2db9.bin

Потом можно проверить, что прошивка прошла успешно (нужно опять переключиться в bootloader режим):

sudo esptool --port /dev/ttyUSB0 --baud 460800 \
    verify_flash --flash_size=detect 0 \
    esp8266-512k-20170108-v1.8.7.bin

Вот как это все выглядит:

$ sudo esptool --port /dev/ttyUSB0 erase_flash
esptool.py v2.0-beta1
Connecting.....
Detecting chip type... ESP8266
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 1.3s
Hard resetting...
$ sudo esptool --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-512k-20170108-v1.8.7.bin
esptool.py v2.0-beta1
Connecting....
Detecting chip type... ESP8266
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Attaching SPI flash...
Configuring flash size...
Auto-detected Flash size: 512KB
Flash params set to 0x0000
Compressed 500608 bytes to 330679...
Wrote 500608 bytes (330679 compressed) at 0x00000000 in 7.5 seconds (effective 536.9 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting...
$ sudo esptool --port /dev/ttyUSB0 --baud 460800 verify_flash --flash_size=detect 0 esp8266-512k-20170108-v1.8.7.bin
esptool.py v2.0-beta1
Connecting....
Detecting chip type... ESP8266
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Attaching SPI flash...
Configuring flash size...
Auto-detected Flash size: 512KB
Flash params set to 0x0000
Verifying 0x7a380 (500608) bytes @ 0x00000000 in flash against esp8266-512k-20170108-v1.8.7.bin...
-- verify OK (digest matched)
Hard resetting...

Если все прошло гладко, то на нашей ESP8266 должен оказаться желанный MicroPython. Теперь можно подключиться к нашей ESP8266 через терминал. На Linux можно использовать, например, minicon:

sudo minicom --device /dev/ttyUSB0 -b 115200

Здесь нужно использовать 115200 baud rate. Если вы используете minicon, то вам наверное будет интересно, как из него выйти. Это не совсем очевидно. Надо нажать Ctrl-A, а потом Q.

В окошке терминала должна появится Python консоль:

MicroPython v1.8.7 on 2017-01-08; ESP module with ESP8266
Type "help()" for more information.
>>>

В завершение помигаем светодиодом:

MicroPython v1.8.7 on 2017-01-08; ESP module with ESP8266
Type "help()" for more information.
>>> from machine import Pin
>>> pin = Pin(13, Pin.OUT)
>>> pin.high()
>>> pin.low()
>>>

Удачи!

Ссылки:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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 и Экспорт/Импорт настроек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 . Программа имеет русскоязычный интерфейс и поддерживается как Windows, так и Linux системы. На данный  момент прошивка идет только по 0x0000 адресу файла "Скачать одним файлом (0x00000)". При установленном API ключе возможна автоматическая загрузка заранее собранной прошивки напрямую из конструктора(только с режимом OTA). Для очистки памяти вместо бланка можно использовать опцию "стереть чип перед прошивкой".

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

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

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

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

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

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

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.

Решение проблем с компиляцией.

Ошибка компиляции возможна из-за:

1. Превышен размер IRAM области памяти, прошивка не умещается. Требуется уменьшить количество опции или выбрать другой SDK. Чем новее SDK , тем меньше влазит опций. Проблема нехватки памяти не так заметна при использовании RTOS прошивки.

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

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

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

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

Огненная Wi-Fi лампа GyverLamp своими руками

GyverLamp2 – версия лампы v2 от AlexGyver: прошивка написана с нуля с учётом всех косяков первой версии. Полностью переосмыслено и упрощено подключение, абсолютно все настройки делаются со смартфона, куча новых режимов и возможностей, OTA обновление, стабильная работа и многое другое!

Отличия от первой версии:

  • Возможность объединять устройства в группы с синхронизированными эффектами и их автоматическим переключением
  • Возможность создать свой список режимов для каждой группы устройств
  • Конструктор режимов, позволяющий получить несколько сотен уникальных эффектов
  • Минимум настроек в прошивке, всё настраивается из приложения
  • Гибкие настройки сети, позволяющие на лету менять точки подключения, адресацию и роли
  • Светомузыка – реакция на звук может быть наложена на любой эффект несколькими способами
  • Адаптивная яркость благодаря датчику освещённости
  • Режим работы по расписанию и таймер выключения для группы устройств
  • Мультиязычное приложение со встроенными инструкциями и подсказками
  • Простая и удобная загрузка прошивки (скомпилированный файл), прошивка возможна даже со смартфона!
  • Обновление прошивки «по воздуху» из приложения (требуется подключение к Интернет)
  • Схема как у первой версии, перепаивать электронику не нужно (без учёта микрофона и датчика освещённости)
  • Автоматическое определение типа кнопки
  • Устройство может работать без кнопки, все важные настройки можно сделать с приложения

Сеть:

  • Работа в локальной сети роутера (все устройства подключаются к роутеру)
  • Работа в локальной сети одной лампы (все устройства подключаются к одной лампе)

Время:

  • Устройства подключаются к Интернету через роутер и запрашивают текущее время
  • Работа по расписанию: час включения и час выключения
  • Таймер выключения
  • Будильник-рассвет на каждый день недели

Тип устройства:

  • GyverLamp2 может работать как с лентами, так и с матрицами различной конструкции

Адресация:

  • Объединение устройств в группы с индивидуальным набором настроек и режимов
  • Роли Master и Slave: состояние и яркость Slave устройств подчиняется Master устройству при ручном управлении

Режимы:

  • Каждой группе может быть задан свой набор режимов работы
  • Режим представляет собой эффект и его настройки (сам эффект, реакция на звук, яркость, скорость и т.д.)
  • Ручное переключение режимов кнопкой или из приложения (для всех устройств в группе)
  • Автоматическое по порядку с установленным периодом (для всех устройств в группе)
  • Автоматическое в случайном порядке с установленным периодом (для всех устройств в группе)
  • Режимы синхронизированы: все устройства группы показывают один и тот же режим в любой момент времени

Эффекты:

  • 10 базовых эффектов, у каждого есть индивидуальные настройки
  • У некоторых эффектов возможен выбор цветовой палитры из 33 доступных
  • Эффекты синхронизированы у всех устройств в группе

Реакция на звук:

  • При подключении микрофона все режимы могут работать как светомузыка
  • Реакция на общую громкость, отдельно низкие и отдельно высокие частоты
  • Реакция на звук может менять яркость режима, а также некоторые настройки эффекта

Автоматическая яркость:

  • Есть возможность подключить датчик освещённости для автоматической настройки яркости лампы

Будильник-рассвет:

  • Подключенная к роутеру группа может будить в установленное время плавным рассветом
  • Можно настроить время конкретные дни недели, а также яркость рассвета

Nodemcu Lua Wi-Fi на Esp8266: описание, подключение, схема, характеристики

NodeMCU Lua – плата на основе популярного модуля ESP8266 (рисунок 1) предназначена для создания IoT устройств (устройств Интернета вещей), которым необходима передача или получение данных в интернет с помощью технологии Wi-Fi.

Содержание


NodeMCU Lua – плата на основе популярного модуля ESP8266 (рисунок 1) предназначена для создания IoT устройств (устройств Интернета вещей), которым необходима передача или получение данных в интернет с помощью технологии Wi-Fi.

Технические характеристики модуля
  • Процессор 32-битный
  • WiFi – 802.11 b/g/n
  • Напряжение питания 3,3 В
  • Внешнее питание 3.6–20 В
  • Ток потребления: режим передачи данных– 200 мА, режим приёма данных – 60 мА
  • Подсоединение к компьютер – вход microUSB
  • Имеет встроенную flash память 4 Mб
  • Поддержка в базовой прошивке интерпретатора Lua
  • Возможность обновления прошивки по Wi-Fi
  • Наличие встроенного датчика температуры
В чем же преимущества данной платы на основе модуля ESP8266? Во-первых, на плате присутствует интерфейс UART-USB с разъемом micro USB, что позволяет подключать его к компьютеру без переходников. Во вторых, она имеет выводы для всех доступных контактов ESP8266. А это 11 портов ввода-вывода общего назначения, некоторые из которых имеют дополнительные функции (см. рисунок 1).

Рисунок 1. Назначение выводов NodeMcu

В-третьих, на данной плате установлена прошивка, которая может интерпретировать команды скриптового языка Lua. Lua - это встраиваемый язык сценариев, который является маленьким, быстрым и очень мощным. С помощью команд Lua для NodeMCU можно выполнять следующие действия:
  • использование платы в качестве WiFi точки доступа
  • подключаться (в том числе и автоматическое) к точке доступа WiFi
  • режим пониженного энергопотребления (уход в сон)
  • перенаправлять вывод
  • выполнять операции со списком файлов в flash-памяти
  • управление пользовательским таймером и таймером WatchDog
  • управление GPIO1 выводами
  • создание веб-сервера
  • обмениваться даннымиI2C — устройствами
  • считывать данные на выводе АЦП
Можно не только выполнять команды Lua в терминале, но и cоздавать файлы в flash-памяти ESP8266 и вызывать их на иcполнение. Рассмотрим примеры напиcания программ для модуля на языке Lua, а также в среде программирования Arduino IDE.

Примеры использования (скриптовый язык Lua)

Рассмотрим пример написания скрипта на языке Lua для платы NodeMCU. Будем использовать программу ESPlorer (рисунок 2), которую вместе с можно скачать со страницы тут.

Рисунок 2. Окно программы ESPlorer.

Напишем скрипт создания простейшего веб-сервера, чтобы при обращении к модулю по HTTP с него выдавалась информация. Создадим для этого файл server1.lua и запишем в него код, представленный в листинге 1. Листинг 1
serverport = 80

server=net.createServer(net.TCP)

server:listen(serverport,

function(connection)

connection:send("HTTP/1.1 200 OK\nContent-Type: text/html\nRefresh: 10\n\n" ..

"<!DOCTYPE HTML>" ..

"<html><body>" ..

"<b>Server </b></br>" ..

" ChipID : " .. node.chipid() .. "<br>" ..

" MAC : " .. wifi.sta.getmac() .. "<br>" ..

" Heap : " .. node.heap() .. "<br>" ..

" Timer Ticks : " .. tmr.now() .. "<br>" ..

"</html></body>")

connection:on("sent",function(connection) connection:close() end)

end

)
Сохраним файл server1.lua в модуле и запустим.  Для проверки работы севера подключимся к точке доступа модуля и наберем в браузере ее адрес: http://192.168.4.1 (рисунок 3). Для запуска сервера при загрузке модуля необходимо в конце нашего autorun-файла init.lua добавить строку: dofile(server1.lua)

Рисунок 3. Обращение к серверу на NodeMCU


Примеры использования (скетч в среде программирования Arduino IDE)

Рассмотрим создание программ дя платы NodeMCU в среде программирования Arduino IDE. Для этого необходимо установить Arduino IDE для ESP8266. На компьютере уже должно быть установлено программное обеспеченние Arduino IDE версии не ниже 1.6.5. На рисунках 4-8 представлены скриншоты процесса установки Arduino IDE для ESP8266.

Рисунок 4. 

Рисунок 5.

 

Рисунок 6.

 

Рисунок 7.

Рассмотрим пример подключения аналогового датчика освещенности (фоторезистора) к плате NodeMCU ESP8266 и отправку данных по протоколу MQTT в интернет на сервер http://www.mqtt-dashboard.com/.

Схема соединений представлена на рис. 8.

Рисунок 8. Схема подключения.

Для написания скетча необходима библиотека pubsubclient  для общения с брокером MQTT . Разархивируйте скачанный файл в папку библиотеки IDE Arduino. Откройте в Arduino IDE скетч _2.ino. Вам необходимо внести в скетч изменения параметров SSID и пароля для точки подключения платы NodeMCU к вашей WiFi сети.

const char* ssid = "your_wifi_hotspot";

const char* password = "your_wifi_password";

Загружаем скетч на нашу плату NodeMCU, открываем монитор последовательного порта и если соединения указаны правильно, увидим следующий результат (рисунок 9).

Рисунок 9. Соединение с брокером по сети.

После того, как NodeMCU подключился к wifi и брокеру MQTT, он публикует данные о освещенности для брокера MQTT по теме OsoyooData (рисунок 10).

Рисунок 10. Отправка данных датчика освещенности.

Мы будем использовать на любом устройстве (например планшете или компьютере) MQTT-клиент, чтобы подписаться на тему OsoyooData от того же брокера MQTT и получать значения освещенности в реальном времени.

Как загрузить и восстановить или прошить NodeMCU V3 Stock Firmware

Недавно я установил прошивку Mongoose OS на свой микроконтроллер NodeMCU, основанный на ESP8266. Mongoose OS - это операционная система с открытым исходным кодом для Интернета вещей (IoT). Поддерживаемые микроконтроллеры: CC3220, CC3200, ESP32, ESP8266 . Чтобы узнать больше об ОС Mongoose и о том, как ее использовать, щелкните здесь . Раньше я использовал IDE Arduino для программирования ESP8266. Итак, после прошивки Mongoose OS я застрял и хотел вернуться к прошивке по умолчанию.Я поискал в Интернете и на YouTube что-нибудь о том, как сбросить NodeMCU до его прошивки по умолчанию, но не нашел руководства, объясняющего правильное решение.

И именно по этой причине я пишу этот пост, чтобы помочь всем, кто застрял с другими прошивками (Lua, Mongoose и т. Д.) И хочет вернуться. Для тех из вас это очень просто, и я делюсь этим решением после перепрошивки нескольких других файлов .bin. Итак, приступим.

Сброс NodeMCU V3 на стоковую прошивку с помощью AI-Thinker

1.Вещи, которые Вам понадобятся

1.1 Аппаратные компоненты
  1. Модуль NodeMCU ESP8266
  2. Кабель Micro USB
1.2 Программное обеспечение
  1. ESP8266 Мигалка
  2. Файл стоковой прошивки (.bin)

Прошивка стоковой прошивки на ESP8266 (NodeMCU)

Шаг 1. Сначала загрузите ESP8266 Flasher и файл стандартной прошивки для вашего модуля ESp8266, а затем подключите модуль ESP8266 к вашему ПК / ноутбуку с помощью кабеля micro USB.

Шаг 2. Запустить ESP8266 flasher . В порту COM выберите порт, к которому подключен модуль NodeMCU или ESP8266.

Шаг 3. Щелкните вкладку « Advanced » и выберите Baude Rate 9600 ; Размер флэш-памяти 4 МБ ; Скорость вспышки 40 МГц ; Режим SPIO DIO . См. Снимок экрана ниже.

Шаг 4. Затем щелкните вкладку « Config » и щелкните значок шестеренки.Просмотрите файл стандартной прошивки (.bin), который вы загрузили по указанной выше ссылке.

Шаг 5. Убедитесь, что путь к двоичному файлу - 0x0000 . Наконец, щелкните вкладку « Operation » и нажмите кнопку « Flash (F) ». Вот и все.

Если вы выбрали правильный COM-порт и правильный двоичный файл, он будет прошит в течение 5-10 минут. После этого вы сможете использовать Arduino IDE для загрузки кодов в модуль NodeMCU (ESP8266) и программирования его для следующего лучшего устройства IoT.

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

Какова ваша реакция?

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

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

Внимание

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

Важно

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

esptool.py

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

Источник: https: // github.ru / 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.

Перевод устройства в режим прошивки

Чтобы включить мигание прошивки 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 секторов расположены на неиспользуемых страницах со смещением Flash 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.

sgjava / nodemcu-lolin: запустить NodeMCU на ESP8266 LoLin V3

Это мои заметки по прошивке и программированию LoLin V3 ESP8266 ESP-12E Совет по развитию сети Wi-Fi Ch440G.Это может работать на других ESP8266 на базе доски тоже. Это только для Linux и, в частности, для Ubuntu 18.04 x84-64. Я подозреваю, что он будет работать в других дистрибутивах Linux.

Где взять ESP8266

Я купил 5 на ebay с доставкой, они были около 3,59 доллара США каждый. Они из Китай по этой цене, так что вам придется подождать несколько недель, чтобы добраться до США. Найдите на EBay запрос "NodeMcu Lua ESP8266 ESP-12E" The LoLin те, которые я купил, поставлялись с флеш-памятью 4 МБ. Эта конкретная доска слишком широкая для стандартный макет, но вы можете соединить 2 мини-макета вместе.

Убедитесь, что устройство отображается

Вы хотите убедиться, что Ubuntu обнаруживает ваше устройство. Я только что подключил без каких-либо дополнительных драйверов, и он появился. Я использовал стандартный micro USB кабель для подключения к ПК.

  • LSUSB
  • Шина 006 Устройство 002: ID 1a86: 7523 QinHeng Electronics HL-340 Последовательный USB-адаптер
  • Устройство должно отображаться как последовательный порт / dev / ttyUSB0, если что-то не так уже занимают этот порт.

Флэш-устройство

Это обновит ваше устройство до последней версии NodeMCU.Я использовал разработчика ветка с плавающей точкой. Мне пришлось использовать основную ветку, чтобы заставить работать модуль u8g, так что создавайте в соответствии со своими потребностями.

  • Использование пользовательских сборок NodeMCU для создания NodeMCU изображение.
    • Я выбрал ветку разработчика и использовал предварительно выбранные значения по умолчанию.
  • Убедитесь, что вы можете выполнять последовательную связь без корневого доступа
    • sudo usermod -a -G dialout username (использовать имя пользователя без полномочий root)
    • Чтобы изменения вступили в силу, необходимо выйти из системы или перезагрузиться.
  • Установите esptool.py
    • sudo -H pip install esptool
  • Убедитесь, что esptool может обмениваться данными с устройством.
     Подключение ....
    Определение типа микросхемы ... ESP8266
    Чип ESP8266EX
    Особенности: WiFi
    Загрузка заглушки ...
    Выполняется заглушка ...
    Заглушка работает ...
    ID чипа: 0x00000000
    Аппаратный сброс через пин RTS ... 
  • Проверьте размер вспышки.
    • esptool.py flash_id
    • Обнаруженный размер флэш-памяти: 4 МБ
  • Ударная вспышка.
  • Флэш-образ с загруженным вами файлом. Заменить имя файла в конце команды.
    • esptool.py write_flash --flash_mode dio 0x00000 nodemcu-dev-7-modules-2018-03-10-17-09-58-float.bin

Застрял в цикле загрузки или не может выполнить прошивку

У меня был случай, когда мой код должен был перевести NodeMCU в режим глубокого сна, но вместо этого произошел сбой. Так как я использовал init.lua, я не смог прошить, стереть флешку и т. Д. Многие решения, которые вы там найдете, не работают.Единственное, что у меня сработало, это:

  • Провода от RST до GND
  • Подключите NodeMCU к компьютеру
  • Удалить провод из GND
  • Мигает или стирает как обычно

Установить ESPlorer

Я использую ESPlorer, но, вероятно, также можно использовать Arduino IDE.

  • Установите Java 8 JDK, если у вас не установлена ​​Java.
  • Загрузите последний ESPlorer.zip
  • Извлечь в ~ /
  • Запуск ESPlorer
    • компакт-диск ~ / ESPlorer
    • java -jar "ESPlorer.банка "
    • Ветка
    • NodeMCU dev использует 115200 бод, а не 9600. Оно должно автоматически определять порт.
    • Нажмите «Открыть», дважды нажмите RTS, и устройство должно автоматически определить
     
       Связь с MCU .. Получил ответ! Связь с MCU установлена.
       Прошивка AutoDetect ...
    
       Не удается автоматически определить прошивку, поскольку не получен правильный ответ (возможно, неизвестная прошивка).
       Пожалуйста, перезагрузите модуль или продолжайте.
    
       Пользовательская сборка NodeMCU от frightanic.com
           ветка: dev
           совершить: 5c8af3c452574448d471e271231b36ac3fff6b1b
           SSL: ложь
           модули: файл, gpio, net, node, tmr, uart, wifi
        сборка построена: 2018-03-10 17:08
        работает на Lua 5.1.4 в SDK 2.1.0 (116b762)
       lua: невозможно открыть init.lua
       >
      

Выполнить код на ESP

Давайте попробуем простую функцию для вывода списка точек доступа WIFI.

  • Скопируйте код в редактор в левой части ESPlorer.
  список функций (t) - (SSID: Authmode, RSSI, BSSID, Channel)
    print ("\ n" .. string.format ("% 32s", "SSID") .. "\ tBSSID \ t \ t \ t \ t RSSI \ t \ tAUTHMODE \ tCHANNEL")
    для ssid, v попарно (t) делать
        локальный режим авторизации, rssi, bssid, канал = строка.,] +) ")
        print (string.format ("% 32s", ssid) .. "\ t" .. bssid .. "\ t" ..rssi .. "\ t \ t" .. authmode .. "\ t \ t \ т ".. канал)
    конец
конец
  
  • Выделите весь код в редакторе.
  • Нажмите кнопку «Заблокировать», и код должен загрузиться в ESP.
  • Очистить редактор и вставить wifi.sta.getap (listap)
  • Наведите курсор на строку и нажмите кнопку «Линия»
 > wifi.sta.getap (список)
>
                            SSID BSSID RSSI AUTHMODE КАНАЛ
                            тест e7: 98: f1: 45: 36: b8 -47 3 3
                        SXE465TF 21: e7: 1a: 88: 9b: c5 -65 3 11
                            xyz1 49: e1: 1c: 52: 65: c6 -64 4 11
  

Мигающий светодиод

Это использует файл init.lua и blink.lua скрипт для мигания светодиода при загрузке. При необходимости измените пин-код в blink.lua. Просто создайте файлы в ESPlorer (сначала blink.lua) и нажмите «Выполнить». init.lua устанавливает wifi использует статический адрес и запускает blink.lua.

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 Lua V3 ESP8266 WIFI с Ch440C

Это знаменитый NodeMCU, основанный на ESP8266 WiFi SoC. Это версия 3, основанная на ESP-12E (WiFi-модуль на базе ESP8266). NodeMCU - это также прошивка с открытым исходным кодом и комплект для разработки, который поможет вам создать прототип продукта IoT (Интернет вещей) в нескольких строках сценария LUA, и, конечно же, вы всегда можете запрограммировать его с помощью Arduino IDE.

Примечание: Если вы ищете альтернативные платы, совместимые с NodeMCU, вот несколько других:

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

Характеристики:
  • Открытый исходный код
  • Интерактивный
  • Программируемый
  • Низкая стоимость
  • Простой
  • Smart
  • WiFi с поддержкой
  • Аппаратный ввод-вывод, подобный Arduino
  • Расширенный API для аппаратного ввода-вывода, который может значительно сократить избыточную работу по настройке и управлению оборудованием.
  • Код похож на Arduino, но в интерактивном режиме в сценарии Lua
  • Сетевой API в стиле Nodejs
  • Управляемый событиями API для сетевых приложений, что облегчает разработчикам написание кода, работающего на размерах 5 мм * 5 мм MCU в стиле Nodejs
  • Значительное ускорение процесса разработки приложений IoT
  • Самая низкая стоимость WiFi
  • Менее 2 долларов США MCU ESP8266 WiFi интегрирован и позволяет создавать прототипы комплекта разработки
  • Мы обеспечиваем лучшую платформу для разработки приложений IoT по самой низкой цене
  • Входное напряжение:
    • 3.3 В через вывод 3,3 В
    • 5,0 В через Vin или USB

Технические характеристики:

Комплект разработчика на базе ESP8266 объединяет GPIO, PWM, IIC, 1-Wire и ADC на одной плате.

  • Обеспечьте максимальную скорость разработки с помощью прошивки NodeMCU!
  • USB-TTL в комплекте, plug & play
  • 10 GPIO, каждый GPIO может быть PWM, I2C, 1-wire
  • PCB антенна

Документы:

Упаковочный лист:

Обновление прошивки и эксперименты с LUA - Блог DV

Как вы, возможно, уже знаете, я только что разместил три MEGA Arduino вокруг своего нового дома и использую их, среди прочего, для включения / выключения света во всем доме.

Мне все еще нужно «войти» в новый дом, поэтому ... в настоящее время я «настраиваю» систему «переключения света» (связывая СВЕТЫ с соответствующими кнопками).

После нескольких «обновлений» эскизов Arduino я решил упростить процесс «обновления», создав «инфраструктуру OTA». По сути, я решил загрузить новые версии скетчей по беспроводной сети (WiFi) с использованием некоторого ESP8266.

Я уже купил три платы NodeMCU. Три из них:

Как вы можете видеть, они помечены как «LoLin NodeMCU v3», и на самом деле это не просто ESP8266, а настоящие «платы разработки ESP8266», поскольку они включают в себя USB-соединение, а также необходимый регулятор мощности (USB - это 5 В, а для ESP8266 - 3.3В). Кроме того, плата выводит контакты ESP8266 так называемым макетным способом.

Моя первая попытка «оживить» USB-кабель не увенчалась успехом, поэтому я решил НЕ доверять предоставленному загрузчику / прошивке и начать прошивать желаемую прошивку, EspLink.

После предварительного беглого просмотра официальной страницы я решил перепроверить, что у моего ESP8266 действительно было 4 Мб флэш-памяти. Для этого, а также для повторной прошивки моего ESP8266 мне понадобился официальный esptool:

 verzulli @ iMac-Chiara: ~ $ sudo pip install esptool
Скачивание / распаковка esptool
  Скачиваем esptool-1.3.tar.gz
  Запуск setup.py egg_info для пакета esptool
    
Требование уже выполнено (используйте --upgrade для обновления): pyserial> = 2.5 в /usr/lib/python2.7/dist-packages (из esptool)
Установка собранных пакетов: esptool
  Запуск установки setup.py для esptool
    изменение режима build / scripts-2.7 / esptool.py с 644 на 755
    
    изменение режима /usr/local/bin/esptool.py на 755
Успешно установлен esptool
Убираться...
verzulli @ iMac-Chiara: ~ $
verzulli @ iMac-Chiara: ~ $ esptool.версия py
esptool.py v1.3
1.3
verzulli @ iMac-Chiara: ~ 90 297 долларов
 

esptool необходимо указать на последовательное устройство, взаимодействующее с ESP. Чтобы проверить, как мой Linux-бокс распознает микросхему FTDI моей платы для разработки, я просто подключил плату и через пару секунд запустил dmesg :

.
 корень @ iMac-Chiara: ~ # dmesg
[...]
[123258.958360] usb 2-1.4: новое полноскоростное USB-устройство номер 11 с использованием ehci-pci
[123259.051119] usb 2-1.4: найдено новое USB-устройство, idVendor = 1a86, idProduct = 7523
[123259.051127] usb 2-1.4: Новые строки USB-устройства: Mfr = 0, Product = 2, SerialNumber = 0
[123259.051131] usb 2-1.4: Продукт: USB2.0-последовательный
[123259.051517] ch441 2-1.4: 1.0: обнаружен преобразователь ch441-uart
[123259.053139] usb 2-1.4: преобразователь ch441-uart теперь подключен к ttyUSB0 

Как видите, плата была распознана как TTYUSB0. Большой.

Итак, наконец, проверить данные флеш-памяти, было так просто:

 verzulli @ iMac-Chiara: ~ $ esptool.py --port / dev / ttyUSB0 flash_id
esptool.py v1.3
Подключение ....
Производитель: ef
Устройство: 4016
verzulli @ iMac-Chiara: ~ 90 297 долларов
 

Итак, мое «Устройство» распознается как «4016» и, в зависимости от источника, это:

 #define AMIC_A25LQ032 0x4016 

точно такой же, как в официальном документе. Он имеет 32 Мбит памяти, иначе: 4 МБ.

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

Итак, наконец, мне просто понадобилась прошивка для прошивки. Даже несмотря на то, что я уже выбрал Esplink, я решил протестировать также последнюю версию NodeMCU.

Изначально меня беспокоил тот факт, что на официальной странице нет бинарной прошивки, готовой к прошивке ... НО ... Меня впечатлил тот факт, что есть своего рода «официальная» служба сборки, с помощью которой вы можете просто «спросить» для вашей прошивки и ... они сделают ее для вас, как вам нужно, исходя из ваших предпочтений! Просто удивительно! Итак, я проверил модуль, который планирую протестировать:

.

и отправил запрос.Пару минут спустя…. Угадай, что?

Uau! Моя кастомная прошивка, созданная для меня, за несколько минут! Действительно впечатляет! Опять таки!

Как видите, в почте упоминались ДВЕ прошивки, а не одна. Почему? Потому что, как указано на официальной странице, «… Прошивка доступна с поддержкой операций с плавающей запятой или без нее (только для целых чисел используется меньше памяти). “.

Поскольку у меня должно быть достаточно флэш-памяти и я хочу быть открытым для выполнения операций с плавающей запятой…. Я выбрал «поплавок».Скачал:

 verzulli @ iMac-Chiara: / tmp $ wget http://nodemcu-build.com/builds/nodemcu-master-11-modules-2017-04-01-19-58-33-float.bin
[...]
100% [================================================= =======================>] 432,304 185 КБ / с за 2,3 секунды

2017-04-01 22:25:27 (185 КБ / с) - "nodemcu-master-11-modules-2017-04-01-19-58-33-float.bin" salvato [432304/432304]

verzulli @ iMac-Chiara: / tmp $ 

и, наконец, все готово к перепрошивке.

Я запустил инструменты nodemcu-pyflasher, указал им на правый интерфейс tty и образ прошивки и щелкнул «Flash NodeMCU». Минуту спустя я получил это:

Итак, надеюсь, у меня будет совершенно новая плата NodeMCU.

Запустив minicom, указав его на / dev / ttyUSB0 и настроив терминал 115200/8 / n / 1, я получил:

Хорошие новости! Сообщение: «lua: невозможно открыть init.lua» - это нормально, поскольку в настоящее время нет lua-скрипта для запуска при загрузке (init.lua). Так что нам все равно. Что касается «мусора», который мы видим в первой строке, я думаю, что это своего рода сообщения, которые ESP выводит на консоль прямо при загрузке со скоростью, отличной от скорости 115200, с которой мы работаем. Следовательно, нам тоже все равно.

После всего этого я наконец решил включить встроенный светодиод. Быстрый поиск показал, что нужно использовать ПИН-код 4 и, следовательно,

.
> gpio.mode (4, gpio.OUTPUT) 

нужен, во-первых, чтобы объявить ПИН как выходной.

Чем простой:

> gpio.write (4, gpio.LOW) 

включил светодиод:

Также простой:

> gpio.write (4, gpio.HIGH) 

выключил его.

Итак, в итоге ОНО РАБОТАЛО !!!! У нас есть отлично работающая плата разработки NodeMCU на базе ESP8266-12E.

Теперь пора перейти на ESP-Link, но…. это тема для другого поста №

HTH и… не стесняйтесь комментировать!

ESP8266 Руководство по поиску и устранению неисправностей | Случайные учебники для ботаников

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

Это сопутствующее руководство по домашней автоматизации с использованием ESP8266 и электронных книг с защищенным паролем веб-сервером.

Вот подборка некоторых наиболее распространенных проблем с ESP8266 и способов их устранения.

ESP8266 Устранение неполадок - NodeMCU Flasher

Где скачать прошивальщик NodeMCU?

Перейдите в репозиторий GitHub флешера NodeMCU и загрузите флешер для своей битовой версии ПК с Windows, нажав кнопку с надписью «Raw»:

Какие настройки мне следует использовать с флешером NodeMCU?

Флэшер NodeMCU уже по умолчанию поставляется с правильными настройками.

Если вы изменили некоторые настройки, я настоятельно рекомендую вам повторно загрузить флешер NodeMCU.

Вот мои текущие настройки:

После того, как я нажму кнопку «Flash», ничего не происходит, флешер NodeMCU не запускает процесс перепрошивки

Если вы нажали кнопку «Вспышка» и ничего не произошло… Это означает одно из двух:

  • Проблема 1. Ваш ESP не находится в режиме вспышки (дважды проверьте, подключен ли GPIO 0 к GND при включении питания)
  • Проблема 2 - Программист FTDI не может обеспечить достаточный ток для ESP

Проблема 1 - Как заставить ESP перейти в режим прошивки:

  1. Закройте окно флешера NodeMCU
  2. Отключите питание ESP8266
  3. Если ваш ESP подключен таким образом (дважды проверьте, что GPIO 0 подключен к GND)
  4. Подайте питание на ESP8266 и откройте флешер NodeMCU
  5. Нажать кнопку «Вспышка».

Если по-прежнему отображается «MAC-адрес ожидания», попробуйте следующее:

  1. При открытом флэшере NodeMCU
  2. Подключите провод от вывода сброса ESP8266 к GND
  3. Удалите этот провод из GND и подключите к VCC

Повторите шаги 2 и 3 несколько раз, пока ваш ESP не перезагрузится, и, надеюсь, флешер NodeMCU сможет обнаружить ваш ESP и начать процесс прошивки.

Проблема 2 - Если ваш FTDI не может обеспечить достаточный ток, вам может потребоваться купить новый программатор FTDI или подключить ESP8266 к внешнему источнику питания.

Флэшер NodeMCU зависает на определенном проценте

  1. Отключите питание ESP + FTDI:
  2. Закройте окно флешера NodeMCU
  3. Снова подключите ESP + FTDI к компьютеру
  4. Откройте флешер NodeMCU и попробуйте скорость передачи 19200 бод

Если этот процесс завершился неудачно, повторите ту же процедуру для следующих скоростей передачи (38400, 57600, 74880 и 115200).

Не знаю почему, но как минимум 5 человек столкнулись с одной и той же проблемой, и этот трюк решил ее. Так что при скорости передачи 57600 или 115200, я думаю, он будет мигать на 100%. У меня нет логического объяснения, так как это не очень распространено.

Как должен выглядеть флешер NodeMCU после успешной прошивки?

В левом нижнем углу должна быть зеленая стрелка.

Отключение программатора FTDI на ПК с Windows

Если у вас есть новый программатор FTDI и вам нужно установить драйверы FTDI в Windows, посетите этот веб-сайт для получения официальных драйверов: http: // www.ftdichip.com/Drivers/VCP.htm.

В качестве альтернативы вы можете связаться с продавцом, который продал вам Программатор FTDI.

Если у вас возникли проблемы с установкой драйверов FTDI в Windows 7/8 / 8.1 / 10, весьма вероятно, что FTDI заблокирован.

Следуйте этому руководству, чтобы исправить это: http://youtu.be/SPdSKT6KdF8.

В видео, о котором я упоминал ранее, парень говорит вам загрузить драйверы с веб-сайта FTDI, внимательно прочитайте описание его видео на YouTube, чтобы найти все ссылки.Вот необходимые драйверы: http://www.ftdichip.com/Drivers/CDM/CDM%20v2.12.00%20WHQL%20Certified.zip

.

ESP8266 Устранение неполадок - ESPlorer IDE

Ошибка IDE ESPlorer: разрешен только один TCP-сервер

Это означает, что вы пытались загрузить несколько сценариев, а ваш ESP все еще запускает старый сценарий с веб-сервером. Чтобы исправить это, вам просто нужно отправить эти команды, чтобы удалить все файлы и перезапустить ESP:

  1. file.format ()
  2. узел.перезапуск ()

Загрузите сценарий еще раз и назовите его «init.lua», и вы больше не увидите эту ошибку.

Ошибка IDE ESPlorer: не удается автоматически определить прошивку

и

Ошибка IDE ESPlorer: Ожидание ответа от ESP - истекло время ожидания. Команда прервана Ожидание ответа от ESP - Истекло время ожидания. Команда прервана.

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

  1. Закройте соединение ESPlorer IDE
  2. Отключите питание ESP8266
  3. Подключение вашего ESP с GPIO 0 к VCC
  4. Подайте питание на ESP8266 и восстановите соединение с ESPlorer IDE

Если по-прежнему отображается сообщение «Не удается автоматически определить микропрограмму», попробуйте следующее:

  1. Соединение ESPlorer IDE все еще печатается «….. »
  2. Подключите провод от вывода сброса ESP8266 к GND
  3. Удалите этот провод из GND и подключите к VCC

Повторите шаги 2 и 3 несколько раз, пока ваш ESP не перезагрузится и, надеюсь, ESPlorer IDE сможет обнаружить ваш ESP.

Мой код исчезает при перезапуске ESP8266

Если вы загрузите скрипт в свой ESP и при перезапуске его ESP ничего не сделает. Это означает, что вашему ESP не удалось найти сценарий или возникла проблема с памятью.

Это можно решить так:

  1. Вы не сохранили свой скрипт с таким точным именем «init.lua». Повторная загрузка того же скрипта, но с именем «init.lua» должна решить вашу проблему.
  2. Это может быть проблема с памятью. Повторная перепрошивка ESP с помощью флешера NodeMCU обычно решает эту проблему
Определение IP-адреса ESP8266

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

  1. Убедитесь, что сценарий, загруженный в ваш ESP, имеет правильные сетевые учетные данные
  2. Убедитесь, что ваш ESP находится рядом с маршрутизатором

Вот что вы можете сделать, чтобы узнать IP-адрес:

Решение 1 - Отправка команды с помощью ESPlorer IDE

  1. Отправьте команду «печать (wifi.sta.getip ()) »с ESPlorer IDE, и он должен распечатать ваш IP-адрес

Решение 2 - Установка программного обеспечения IP-сканера

  1. Программа IP Scanner ищет все устройства в вашей сети
  2. Загрузите это бесплатное программное обеспечение:
    1. ПК с ОС Windows: www.advanced-ip-scanner.com
    2. MAC OS X, Windows или Linux: http://angryip.org
  3. Установите одно из этих программ (при работе вашего ESP с этим сценарием веб-сервера)
  4. Откройте программное обеспечение IP Scanner и нажмите «Сканировать».
  5. Дождитесь завершения этого процесса (это может занять пару минут)

В моем случае нашел мой ESP.Теперь, если я наберу 192.168.1.95 в своем браузере, я увижу веб-сервер ESP.

ESP8266 Устранение неполадок - Arduino IDE

Я не могу загружать скрипты на свой ESP8266 с помощью Arduino IDE

Как заставить ваш ESP переходить в режим загрузки при использовании Arduino IDE:

  1. Отключите питание ESP8266
  2. Если ваш ESP подключен таким образом (дважды проверьте, что GPIO 0 подключен к GND)
  3. Подайте питание на ESP8266 и откройте Arduino IDE
  4. Нажать кнопку «Загрузить».

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

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