• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Nodemcu

Victor

Administrator
Команда форума
Ну что, приехал ко мне из поднебесной новый esp8266 ESP-01. Проверил через AT команды - все ОК. Посадил GPIO0 на землю и давай прошивать: esptool.py --port /dev/ttyUSB1 write_flash 0x00000 nodemcu_latest.bin. Все прошилось, отпустил GPIO0 в свободное состояние, ресетнул, но резуль тот же - не работает. Плюет в порт пару непонятных символов и все, на команды не реагирует. Вообще не могу понять в чем проблема, модуль уже воторой пробую. Перелопатил весь интернет - ничего. Может у кого то в памяти всплывут хоть какие то нюансы прошивки или еще что-то?
А по какой ссылке скачиваете прошивку NodeMCU ?
Какой размер файла прошивки?
Напоминаю, что с гитхаба файлы надо скачивать "по особенному". Не по файлу кликать "сохранить как", а кликать по файлу левой кнопкой, там увидите "View Raw" и уже тогда файл сохранять.
 

Roman

New member
damn it! Раз в жизни не склонировал проект а скачал через вэб и надо ж было так лохонуться) Спасибо! Работает и через esptool. Вы не поверите, неделю пытался выяснить причину)
 

Victor

Administrator
Команда форума
damn it! Раз в жизни не склонировал проект а скачал через вэб и надо ж было так лохонуться) Спасибо! Работает и через esptool. Вы не поверите, неделю пытался выяснить причину)
да уж поверьте, что не вы один наступили на эти грабли...
 

TRO

Member
Тут очередной раз криво впихнулся исполняемый файл init.lua . Выполнение идет с ошибкой (походу он вообще наполовину записался), и стереть себя не дает. Перепрошить Nodemcu тоже никак, в режиме программирования идет мусор с порта и на уговоры прошивальщика (nodemcu-flasher) не реагирует. Решилось через менюшку ESPlorer, пунктиком Format ESP. Я как чувствовал что должно быть форматирование всей файловой памяти, а API пока еще полностью не прошерстил (там оказывается про это есть). Может кому поможет.
 

volfvvv

New member
та же хрень. Бинарный файл NodeMCU заливаю с адреса 0x0000 пользуя esptool. На этом всё! И luatool и ESPlorer отказываются заливать init.lua (GPIO0 уже зацепил к gnd) под предлогом, что нет корректного ответа от прошивки. flasher пока не испытывал, т.к. пользуюсь линухами. Кстати после прошивки NodeMCU на какой скорости работает порт? Перепробовал все, акромя динозавров от 4800 и ниже.
 

Victor

Administrator
Команда форума
та же хрень. Бинарный файл NodeMCU заливаю с адреса 0x0000 пользуя esptool. На этом всё! И luatool и ESPlorer отказываются заливать init.lua (GPIO0 уже зацепил к gnd) под предлогом, что нет корректного ответа от прошивки. flasher пока не испытывал, т.к. пользуюсь линухами. Кстати после прошивки NodeMCU на какой скорости работает порт? Перепробовал все, акромя динозавров от 4800 и ниже.
А зачем GPIO0 на GND ? Это только для заливки прошивки нужно, а все остальное, в т.ч. и заливка LUA файлов в память происходит в обычном режиме работы.
Скорость 9600 при дефолтных настройках
 

volfvvv

New member
Я так понял, что в latest версии (та которая от 12/02/2015) SPI модуль на самом деле не реализован? Нет описания распиновки для SPI (MOSI, MISO etc.)
 

Roman

New member
та же хрень. Бинарный файл NodeMCU заливаю с адреса 0x0000 пользуя esptool. На этом всё! И luatool и ESPlorer отказываются заливать init.lua (GPIO0 уже зацепил к gnd) под предлогом, что нет корректного ответа от прошивки. flasher пока не испытывал, т.к. пользуюсь линухами. Кстати после прошивки NodeMCU на какой скорости работает порт? Перепробовал все, акромя динозавров от 4800 и ниже.
Я тоже заливал через esptool. Моя проблема была в том, что я неправильно скачал бинарник с Github. Проверьте, может у вас таже фигня. Я почти уверен. После перепрошивки модуль работает на 9600
 

AnonymUser

New member
можно как то отловить присоединение пользователя к esp, который выступает в роли AP?
 
AnonymUser, возможно,вот только не знаю,можно ли это сделать на NodeMCU.И вообще намучался я с этим NodeMCU,все вроде хорошо,но там сильно не расскрутишься.LUA хорош,если светиком поморгать,температуру померить,и все.
 

AnonymUser

New member
AnonymUser, возможно,вот только не знаю,можно ли это сделать на NodeMCU.И вообще намучался я с этим NodeMCU,все вроде хорошо,но там сильно не расскрутишься.LUA хорош,если светиком поморгать,температуру померить,и все.
вот и засматриваюсь в сторону udk и "‘библиотеки’ малого webсервера" от pvvx, но и там не все так гладко, как хотелось бы...
 

pvvx

Активный участник сообщества
Вопрос: Что еще у Вас не умещается?
1) Линейный опрос 24-х битного ADC хоть на 1кГц и отсылка по TCP.
2) Передача данных на графический экран, ну типа фото-рамка - тормозит очень.
3) Прием картинок с камеры по RS-232 (есть такие, т.к. самые дешевые - обычно используются для сигнализации). Очень низкая скорость UART, что ведет к сильному увеличению времени работы при просыпании и заборе картинки.
Но главное - очень большое потребление модулем при подходе deep-sleep - опрос датчика - deep-sleep и накопление среднего, когда надо собирать средние из точек через период хотя-бы в 10 сек, а не случайное показание раз в пол часа.
Всё это очень сильно ограничивает применимость NodeMCU. И движения у проекта нет - нет новых драйверов для нормальной связи модуля с миром.
Остальное, включение реле и опрос примитивных датчиков уже есть в массе готовых проектов, где писать ничего не надо и всё устанавливается через WEB.

Очень огорчает, что невозможно сделать элементарное одновременно:
Держать tcp канал связи cдругим устройством, запрашивать время или другой сервис, включить WEB управление и оставить идентификацию модуля по broadcast. Т.к. в NodeMCU ограниченно кол-во открытых соединений.
nikolz - попросите у разработчиков увеличить число одновременно открытых соединений.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Потребление ESP от языка программирования не зависит.
Зависит. С NodeMCU он просыпается для одного измерения на несколько секунд, да с включенным WiFi. А у всех уже на микросекунды и без включения WiFi.:(
Как включать без WiFi описано в оф. доке от Espressif. В SDK часть загрузки уже изменена у меня и перехватывается даже инициализация либов SDK, т.к. они не нужны для опроса датчика с накоплением.
В связи с этим текущая реализация Lua в NodeMCU уже аутсайдер по сравнению с другими проектами на ESP8266.
пришли дельта АЦП 24 бит.
буду подключать их для термопар до 1500 гр. но они медленные.
Хотелось бы пример, где модуль будет просыпаться не реже 10..30 секунд и следить за температурой, а в случае ухода - передавать аварию. Я считаю вы сможете это написать и измерить потребление...
Элемента Пельтье должно хватить модулю отослать предупреждение, что печка тухнет :)
 
Последнее редактирование:

A.V

New member
для примера вот что работает на луа:
Вопрос: Что еще у Вас не умещается?
А MQTT (хотя бы отправка) работает? А то у меня на 0.9.6 в лучшем случае 1 раз отправляется одно показание и всё :( только память каждую попытку отъедается... Или там всё опять поменялось и примеры не актуальны? Сегодня попытаюсь попробовать "ардуину" (на голый С пока неохота переползать ради "побаловаться", AVR/NRF24LE1 пока хватает)
 

pvvx

Активный участник сообщества
Правильно ли ф понял, что Вы хотите подключить к EsP ценою в 2 доллара периферию долларов в 100 -200?
И решить разработку интеллектуальной части бесплатно (хотя софт и его сопровождение стоит дорого).
Может быть тогда и ESP заменить на более мощное решение?
Нет - не правильно. Камера от сигналки стоит аналогично модулю, но в чехле от влаги - безусловно дороже :) Но и esp в таком случае надо укрывать.
АЦП 24 бита, пусть AD7793 для термопар и других применений на 3 входа со встроенным источником опоры, стоит тоже меньше модуля и коробки и жрет микроамперы в активе.
Простейший датчик влажности с точностью пусть +-2С по точке росы стоит в 10 раз дороже модуля. Остальные хуже, чем измерять пальцем.
Измерял предельную достижимую скорость загрузки, после ресета (или deep-sleep) до начала опроса датчика:
StartBiosPvLoaderTime.gif
30 ms и уже идет опрос - шевелит портами с загруженного куска кода первого (не стандартного!) загрузчика из flash... WiFi выключен до второго загрузчика, который запустится если надо передавать, и весь процесс потребляет копейки.
Эти 30 ms говорят о том, что если требуется засыпание менее чем на 100 ms, то лучше отключить таймер и процессы и использовать внутреннюю команду sleep у CPU ( он в ней тоже жрет очень мало) для ожидания инициализации датчиков или между ожиданием результатов с них.
Стандартная загрузка SDK занимает от 310ms c большими ухищрениями и большим потреблением. NodeMCU - секунды и предельным потреблением :(. Т.е. deep-sleep ей противопоказан.
Но главное, что у данного загрузчика в доступе более 100 килобайт RAM, т.к. без SDK, а результаты замеров он пишет в RTC и в flash. Потом монстр SDK перешлет :)
А т.к. можно грузить "лоадерами" разные "прошивки", то в качестве конфигурационной может пойдет и загрузка Lua, т.к. конфигурация системы делается очень редко. Но и тут заковырка - NodeMCU не научилось работать с большими flash (16Мегабайт).
 
Последнее редактирование:

pvvx

Активный участник сообщества
AD7793 стоит 10 долларов.
Могу продать и дороже. :)
Далее возникает вопрос об обоснованности решения.
Какого? C AD7793? - это давал вам для примера, на вашу реплику - о приобретении ADC.
AM2302 (погрешность измерения влажности: ± 2%) - 3 доллара (сам покупал)
+-20% а на краях диапазона, что требуется при российской погоде и все +-80%. Это по влажности, если перевести его показания в "точку росы"... :)
Относительно возможностей ESP - тут я с вами солидарен.
Я вам пишу, в надежде, что достучитесь до писателей NodeMCU и они хоть что-то доделают.
Вопрос лишь в цене такого решения.
Решений может быть много. С тем-же датчиком влажности (и температуры) уже где-то писал алгоритм на форуме - там ожидания его показаний от 200ms, а чип просыпается из sleep (не deep-sleep!) и по изменению уровня на I/O порту.
 

A.V

New member
Вроде бы я не писал что сделал MQTT?
Это из серии "Ну а вдруг?" ;)

После нескольких самоделок для сбора показаний и рисования графиков пробую MQTT+OpenHAB(+пока_велосипед_на_narodmon). При этом MQTT живёт на VPS и транслирует данные с разных городов... И что самое "противное" – оно работает. Осталось придумать что-то мелкое СКАДА-подобное к этой связке и будет вообще здорово
 

pvvx

Активный участник сообщества
время затрачиваемое WIFI на установку соединения
В стандарте с SDK моя WEB свалка подключена к роутеру уже через 0.4 сек после старта и где-то так-же, до 0.5 секунды получен ответ от dns и время с интернета уже у модуля...
Т.е., если у нас не сервер, а передаем что-то, то к концу 1-ой секунды от старта уже может быть передано 500 килобайт и далее 1 мегабайт в секунду...
В итоге, если используем deep-sleep, то достаточно 1 секунды активности модуля для полной передачи накопленных состояний. Но, безусловно, всё зависит от удаленности сервера, пинга к нему. По тому и надо иметь распределенную сеть - на роутре должен быть хотя-бы аналог MQTT и никаких обращений к дальним IoT серверам модулем. Пусть этим занимается роутер - у него обычно ресурсов достаточно.
Потребление при передаче на скорости 1 мегабайт в секунду - пример два графика в конце http://esp8266.ru/forum/threads/raz...logo-webservera-na-esp8266.56/page-4#post-864
В режимах всяких WiFi-sleep модуля http://esp8266.ru/forum/threads/raz...go-webservera-na-esp8266.56/page-14#post-2787
Потребление по питанию часов (по ноге RTC_VDD) http://esp8266.ru/forum/threads/raz...go-webservera-na-esp8266.56/page-14#post-2799
 
Последнее редактирование:
Сверху Снизу