Nodemcu

Victor

Administrator
Команда форума
У нее и своих проблем хватает :)
А если серъезно, то по поводу, busy - решает частично (в boot loop вроде не вываливается). Насколько я понял, проблема busy не в коде АТ, а в коде SDK, так что надеемся, что в SDK 9.3 это уже пофиксено. Я сам еще не успел попробовать.
 

Evgen

New member
Спасибо за ответ. И еще вопросик, а что такое SDK? Это типа среда программирования что-ли, как Atmel Studio для AVR-ок?
 

Victor

Administrator
Команда форума
Спасибо за ответ. И еще вопросик, а что такое SDK? Это типа среда программирования что-ли, как Atmel Studio для AVR-ок?
Частично. Это набор библиотек без исходных кодов и без графического интерфейса с примерами (примеры с кодом), скажем как WinAVR. А аналог Atmel Studio это скорее Extensa Xplorer, от производителя процессоров lx106 (ESP8266EX - SoC, т.е. в чипе (не в модуле) ESP8266EX стоит процессор lx106 другого производителя) но это платная штуковина. Если интересует - ищите ESP-IOT-SDK-NOVM.
 

Evgen

New member
Посмотрел я этот SDK93 ну ничего не понятно. И чего с этими файлами делать? Надо их как-то в модуль залить? Если не сложно просветите плиз. Вдруг там и в самом деле глюк с busy...s профиксили.
 

Victor

Administrator
Команда форума
Посмотрел я этот SDK93 ну ничего не понятно. И чего с этими файлами делать? Надо их как-то в модуль залить? Если не сложно просветите плиз. Вдруг там и в самом деле глюк с busy...s профиксили.
В одном посте сложно будет описать процесс сборки прошивки с нуля. Я постараюсь в ближайшее время статью написать о сборке прошивки под Win+VM и жду, что в ближайшее время появится статья о сборке под Linux от другого автора. А пока есть мини-инструкция с видео по сборке 9.2 - попробуйте сделать по ней, заменив SDK на 9.3
Но если вам все это интересно только из-за BUSY, то просто подождите день-два: новые прошивки вот-вот появятся.
 

Evgen

New member
Да да из-за busy, так что подожду немного. А статья про прошивку то-же интересна, то-же подожду.
 

brig

New member
Хочется попробовать прошивку NodeMcu, но не получается, т.к. автор статьи чрезмерно краток...
Я споткнулся на 5-м шаге:
"Заливаем lua скрипт init.lua в ESP8266 с помощью esptool командой..."
1) Что есть "esptool"? На 3-м шаге скачано "luautil", содержащий "luatool".
2) Как "заливать"? Командной строкой Windows "luatool -p COM4 -f init.lua -t init.lua"?
Windows отвечает, что luatool не является исполнимым файлом...

И далее: на 7-м шаге потребуется "подключаться терминалом". Каким? Ранее упомянутым pyserial? Как его запустить?
А на первом шаге ссылка ведет к файлу прошивки "nodemcu_512k.bin" размером 25,6 кбайт почему-то...
 
Последнее редактирование:

Victor

Administrator
Команда форума
Сорри, в статье 2 опечатки, сейчас исправлю. Разумеется нее esptool, а luatool. А если точнее, то luatool.py - это скрипт на языке python. Чтобы luatool.py запустить нужен установленный python. Я делал на версии 2.7. Не гарантирую, что заработает на других версиях. Установить python 2.7, затем нужно установить модуль python - pyserial. Как устанавливать модули к питону - поищите сами, у меня под рукой нет ссылки на хорошую статью. Подскажу, что проще сначала установить "установщик модулей" pip.
А терминал можете взять любой. Например putty, CoolTerm или Terminal v91.3b принцип тот же, что и с АТ командами.

Ссылка на прошивку правильная, на гитхабе нельзя "сохранить ссылку как", нужно просто кликать по файлу, а там еще нажать RAW, в общем даю прямую ссылку на прошивку. А размер, конечно около 500kb
 
Последнее редактирование:

brig

New member
Спасибо, удалось выполнить прошивку модуля файлом nodemcu_512k.bin (размером 508 кБ), а также "залить" файлы init.lua и main.lua.
Седьмой пункт не выполняется. Подключаюсь к модулю программой CoolTerm на скорости 115200, посылаю команду node.restart() и не получаю никакого ответа. Что не так?
 

Victor

Administrator
Команда форума
Спасибо, удалось выполнить прошивку модуля файлом nodemcu_512k.bin (размером 508 кБ), а также "залить" файлы init.lua и main.lua.
Седьмой пункт не выполняется. Подключаюсь к модулю программой CoolTerm на скорости 115200, посылаю команду node.restart() и не получаю никакого ответа. Что не так?
Скорость 9600
 

brig

New member
Это надо догадаться... ;)

Команда node.restart() работает, но в ответе не все понятно:
node.restart()
> bBJG&Sb.}VHH7$dNFJ$WVHN
init.lua ver 1.2
set mode=STATION (mode=1)
MAC: .18-FE-34-9E-63-79
chip: .10380153
heap: .18432
NodeMcu 0.9.2 build 20141130 powered by Lua 5.1.4


Что Означает вторая строка? Что за точки в строках 5,6,7?

Команда
dofile("main.lua") работает, но выполняется не то, что приведено в примере. Выдает:

<!DOCTYPE html>
<!--[if IE 7]>
<html class="ie ie7" lang="ru-RU" prefix="og: http://ogp.me/ns#">
<![endif]-->
<!--[if IE 8]>
<html class="ie ie8" lang="ru-RU" prefix="og: http://ogp.me/ns#">
<![endif]-->
<!--[if !(IE 7) & !(IE 8)]><!-->
<html lang="ru-RU" prefix="og: http://ogp.me/ns#">
<!--<![endif]-->
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<meta name="p:domain_verify" content="11efb0e736668053e3050c04c87df31b"/>
<title>esp8266 &ndash; P!P>P>P1Q P5QQP2P> Q

.................
 

Victor

Administrator
Команда форума
Вторая строка - мусор, не обращайте внимания.
Про точки даже не знаю - у меня их нет (может это терминал добавляет - можно покопаться в настройках)
Ну а то, что выдает, это как раз первые строки HTML, которые отдает сайт - все ок
Так что поздравляю, у вас все получилось.
Теперь дальше экспериментируйте :)
 

brig

New member
Спасибо!
Точки - это символ табуляции (09). По всей видимости, добавляет оператор print (с двумя параметрами, разделенными запятой).
Собственно говоря, я хочу использовать модуль для управления через интернет набором розеток с запоминанием их состояния при отключении/включении электроэнергии. Полагаю, NodeMcu - с его возможностью хранения данных в файлах и организацией простого веб-интерфейса - отлично с этим справится...
Кстати, проблему утечки памяти "китайские товарищи" похоже побороли...
 

Victor

Administrator
Команда форума
Кстати, проблему утечки памяти "китайские товарищи" похоже побороли...
Не, пока нет. Настройте WEB сервер и смотрите print(node.heap()) после каждого запроса от браузера. Через 60 сек восстанавливается.
 

brig

New member
Да, точки в операторах print - результат неправильного использования:

Оператор print('heap: ',node.heap()) отображает heap: .17224
Оператор print('heap: '..node.heap()) отображает heap: 17224

Как я понял, прошивка NodeMcu встраивает в модуль интерпретатор команд (типа Бейсика), позволяющий выполнять операторы-команды, поступающие через СОМ-порт, либо скрипты из файлов, загруженных во флеш-память. Для отладки скриптов это удобно, но при этом практически напрочь отрезается возможность для модуля свободно обмениваться данными по СОМ-порту с внешним устройством. Нельзя ли попросить разработчиков добавить возможность отключения интерпретации команд через СОМ-порт? Частично уже начали делать, добавив метод uart.on(). Хорошо бы иметь возможность управлять параметрами обмена по СОМ-порту (скорость, четность...).
 
Последнее редактирование:

Victor

Administrator
Команда форума
ну не совсем неправильно... и так и так можно. просто у вас терминал так настроен, что точки вместо табуляции отображает. теоретически, с табуляцией должно выравниваться, таблицу можно сделать, а две точки - это конкатенация строк в lua, так что, конечно, это более верный выбор в этом конкретном примере
 

brig

New member
Интересно, если перепаять на модуле ESP8266 микросхему флеш-памяти W25Q40 (4 Mbit) на W25Q64 (64 Mbit), будет ли модуль работать? И, самое интересное, будет ли поддержка при работе с файлами в NodeMcu?
 

Victor

Administrator
Команда форума
Интересно, если перепаять на модуле ESP8266 микросхему флеш-памяти W25Q40 (4 Mbit) на W25Q64 (64 Mbit), будет ли модуль работать? И, самое интересное, будет ли поддержка при работе с файлами в NodeMcu?
FlashDownloader поддерживает до 32Mbit, так что, теоретически, память поменять можно до 32 и она прошьется. А остальное под вопросом.
 
Сверху Снизу