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

Вопрос ESP8266 - 07 (-12) : Ресурсные возможности

ferr

New member
Купил ESP8266 - 07 и тут же возник вопрос:
- Что я туда могу напихать? Где мои границы?
Ведь при создании любого проекта необходимо как-то оценивать (не в смысле стоимости) ресурс, коим
ты располагаешь?
Побегав по И-нету ничего толком не обнаружил : да столько-то GPIO, столько-то ШИМ и тд.
А вот сколько я смогу навешать тех же ШИМ и И2С одновременно? Сколько места (к примеру, для среды ИДЕ АРДУИНО) скетчей у меня есть?
Сам понимаю, что ответ, не может быть однозначным ( одни библиотеки чего стоят ) и ещё масса факторов. Поэтому обозначаю границы учебно-тренировочной задачи:

Паяльная станция (прошу не ржать - это модель) должна иметь 2- I2С IR-термометра, 1 термопару, 3 оптосимисторных нагревателя, 2 енкодера, 1 пропердел. Ног хватает. Всё это счастье должно отображаться где-то на ВЭБ странице . Посторонний компьютер должен постоянно быть на связи с этим всем счастьем и рулить процессом пайки по заданному термопрофилю (графику)
Постоянная времени системы 0.5сек. Ну, ни дать-ни взять задачка "про глупый дом"

Так вот нужна ли там ардуина как устройство подготовки данных для отправки или можно обойтись только самим 8266 при условии использования среды разработки Ардуино?

Цель эксКримента: не повыдрючиваться ( мол, пусти по УСБ верёвке - и дело с концом), а просто научиться на практике решать задачу управления через И-нет в указанном виде. Просто в качестве кролика мне удобно использовать мою самопальную БГА станцию, которой уже 10 лет и она у меня валяется под боком.
Гарантирую - кролик не пострадает

ЗЫ Я бы там ещё и кино пустил (в качестве визуального контроля), но боюсь, режиссерского таланта у 8266 на это не хватит
 

planar74

New member
Я бы в данной ситуации совместил ESP8266 и Atmega, при условии, что Atmega - ведомая, просто по запросу выдает данные с датчиков и дергает ноги, не нагружая ESP, тем более, что она умеет в slave SPI, его должно хватить под завязку.
 

ferr

New member
Я бы в данной ситуации совместил ESP8266 и Atmega, при условии, что Atmega - ведомая, просто по запросу выдает данные с датчиков и дергает ноги, не нагружая ESP, тем более, что она умеет в slave SPI, его должно хватить под завязку.
planar74
Да, не вопрос: У меня и Ардуина мега 2560 валяется, нан и про тоже горсть имеется .
Только вопрос стоит несколько в ином ключе: Как верно рассчитывать микрокастрюллерные ресурсы?
Зачем к 8266 внешнюю мегабайтную ПЗУ пристраивают? Чтобы потом на битах экономить? и вешать дополнительный избыточный модуль для окучивания всего того, что может в лоб подвешиваться на модуль ESP8266 ?
Как-то уж странно это, или я чего-то не вкуриваю ... Возможно такой подход практикуется из-за плохой документированности этого изделия?
 

planar74

New member
planar74
Да, не вопрос: У меня и Ардуина мега 2560 валяется, нан и про тоже горсть имеется .
Только вопрос стоит несколько в ином ключе: Как верно рассчитывать микрокастрюллерные ресурсы?
Зачем к 8266 внешнюю мегабайтную ПЗУ пристраивают? Чтобы потом на битах экономить? и вешать дополнительный избыточный модуль для окучивания всего того, что может в лоб подвешиваться на модуль ESP8266 ?
Как-то уж странно это, или я чего-то не вкуриваю ... Возможно такой подход практикуется из-за плохой документированности этого изделия?
ПЗУ пристраивают для хранения прошивки, ESP, насколько я помню, своего не имеет. И не обязательно 1МБ, может быть и 2 и 4, в зависимости от модуля. Народ тут развлекался и 8МБ впаивали.
Ресурсы считаются так же, как и для любого другого процессора, исходя из тактовой частоты и RAM. Для ESP это 80 МГц в обычном режиме, 160 - турбо, RAM - 40 кБ. Из этого и исходим.
 

ferr

New member
...
Ресурсы считаются так же, как и для любого другого процессора, исходя из тактовой частоты и RAM. Для ESP это 80 МГц в обычном режиме, 160 - турбо, RAM - 40 кБ. Из этого и исходим.
Спасибо, это уже достаточно внятный ответ.

Получается, что я могу сдёрнуть внешнее ПЗУ и заливать в него прошивки отдельно?
А то я считал с точностью, до наоборот: Память программ - это прошивка, а внешнее ПЗУ - это скетч (пользовательская программа) как мне казалось - это логичней: в момент включения идет обращение к внутренней памяти программ, таким образом запускается некая операционная система(она же прошивка), а внешнее ПЗУ является хранилищем прикладной программы.
... В таком случае вообще не стОит выдрючиваться с объемом внешнего ПЗУ.
Ведь никому в голову не прийдёт на микрокастрюллер винду заряжать :)
 

ravend

Member
@ferr
ПЗУ можно и дернуть и прошить отдельно, но зачем, не удобно же, - в esp встроен "программатор", который взаимодействует с компом (со средой разработки) по serial.
Деления на память для "ОС" и для "скетча" нет, во время компиляции получается единая прошивка, содержащая в себе код стандартной библиотеки (SDK) + скомпилированный код скетча. Т.е. никакой операционной системы отдельно нет (если речь конечно не об NodeMCU, с ней действительно всё похоже на операционную систему + тексты пользовательской программы, лежащие в виде не скомпилированных текстов, языка Lua, но там куча своих ограничений).
Почему размер ПЗУ важен, - типовая SDK от ESP занимает около 250кб этой самой ПЗУ, и такая хорошая вещь как OTA (обновление прошивки по воздуху) работать на 512кб уже не будет, этой функции нужен размер ПЗУ, достаточный для одновременного хранения старой и новой прошивок (+ ещё немного). Поэтому для ESP 01, где ПЗУ всего лишь 512кб, ОТА использовать не получится.
 
  • Like
Реакции: ferr

ferr

New member
...
Почему размер ПЗУ важен, - типовая SDK от ESP занимает около 250кб этой самой ПЗУ, и такая хорошая вещь как OTA (обновление прошивки по воздуху) работать на 512кб уже не будет, этой функции нужен размер ПЗУ, достаточный для одновременного хранения старой и новой прошивок (+ ещё немного). Поэтому для ESP 01, где ПЗУ всего лишь 512кб, ОТА использовать не получится.
Даа..., век живи , а помрёшь дураком всё равно...
А я что-то вообще выпустил про ОТА.
То есть, можно залить 8266 удалённо? Грубо говоря по сети?
А нельзя ли с этой цифры немножечко по-подробней, ну, хотя бы тезисно и где про это прочитать, но уже подробно?
Если это то, о чем я вдруг подумал, так я эту железку зауважал ещё сильнее!
Интересно, это очень гемморойный процесс? Ну, типа, для особопродвинутых или как два-пальца-об-асфальт?
А то сильно нет возможности углубляться в 8226: как инструмент - это полезная штучка, но как объект фанатического поклониения - это, просю пардону, уже не ко мне.
 

ravend

Member
@ferr
ПЗУ можно и дернуть и прошить отдельно, но зачем, не удобно же, - в esp встроен "программатор", который взаимодействует с компом (со средой разработки) по serial.
Деления на память для "ОС" и для "скетча" нет, во время компиляции получается единая прошивка, содержащая в себе код стандартной библиотеки (SDK) + скомпилированный код скетча. Т.е. никакой операционной системы отдельно нет (если речь конечно не об NodeMCU, с ней действительно всё похоже на операционную систему + тексты пользовательской программы, лежащие в виде не скомпилированных текстов, языка Lua, но там куча своих ограничений).
Почему размер ПЗУ важен, - типовая SDK от ESP занимает около 250кб этой самой ПЗУ, и такая хорошая вещь как OTA (обновление прошивки по воздуху) работать на 512кб уже не будет, этой функции нужен размер ПЗУ, достаточный для одновременного хранения старой и новой прошивок (+ ещё немного). Поэтому для ESP 01, где ПЗУ всего лишь 512кб, ОТА использовать не получится.
Про OTA, как оказалось, ничего сложного, но есть глюки и "особенности" которые нужно учитывать, я это освоил в среде Arduino для ESP, поэтому инструкция для этой среды:
1. Как установить и настроить среду разработки, подключить библиотеку для esp - http://esp8266.ru/forum/threads/obschie-voprosy-po-arduino-ide-dlja-esp8266.224/
2. Собственно пример скетча от самого автора библиотек, залив который однажды по кабелю, затем можно обновлять по воздуху - Arduino/BasicOTA.ino at master · esp8266/Arduino · GitHub
3. Как настроить среду, чтобы появился новый "порт" для программирования по воздуху (статья на английском, но с хорошей иллюстрацией, также, если порыть можно найти информацию и на русском) - Arduino/doc/ota_updates at master · esp8266/Arduino · GitHub

Моменты, которые нужно учесть, а их много:
1. почему-то "порт" для программирования по поздуху появляется в списке доступных портов не всегд, но мне всегда помогает перезагрузить комп (не среду разработки, а именно комп).
2. обязательно нужно правильно выставлять правильный размер Flash (ПЗУ) перед программированием в самой среде, иначе можно очередной раз прошить по воздуху с неправильными размерами Flash и придется заливать прошивку опять по кабелю, т.к. функция OTA физически не может отработать корректно.
3. не получается пользоваться режимом аутентификации для работы с OTA, похоже на ошибку в библиотеке, но я не понял, можно ли это обойти (хотя по иллюстрациям в инструкции, автор показывает, что это работает...хз). Ошибка выглядит так: если установить пароль (любой, кроме пустого), работать с ОТА не получается, и окно терминала для диагностики также открыть не получается, т.е. отладочную информацию уже не посмотришь. Я выхожу из этой ситуации так: у меня два модуля, на одном я отлаживаю скетч (прошиваю исключительно по кабелю), второй стоит на объекте в боевых условиях, и прошиваю его только, когда уверен, что ошибок в программе нет по воздуху.
 
  • Like
Реакции: ferr

NutsXXXL

New member
@ferr ну вот про шим недавно копался, есть худо бедно аппаратный шим только 1 канал, но каналов 8 можно реализовать софтово.
на i2c можно повесить много чего если у этого чего есть входы для адреса.
энкодер вот не знаю, с ним всегда велосипед изобретать надо, но прерывания есть, один навернео можно .. правда зачем - если все через интернет.
скорости и памяти хватит для много чего, только температурную кривую сразу вю передать надо а не по точке :)
чисто для связи с компом помимо usb еще много других радио-решений....
 
  • Like
Реакции: ferr
Сверху Снизу