Пользует ли кто WiFi-модули ESP8266 ? Поделитесь впечатлениями.

Logik
Offline
Зарегистрирован: 05.08.2014

dSave пишет:

За ссылку спасибо, буду изучать!

Я правильно понимаю, что для подключения к Ардуино ESP-01 тоже прошить нужно будет? Т.е. какой-то скейч в нее залить?

Для заливки прошивки XTCOM_UTIL а скрипт - ESPlorer. В нем же и пишу, хотя не удобный.

Logik
Offline
Зарегистрирован: 05.08.2014

pilnikov пишет:

Logik пишет:

///на ЕСП (только не на 01)

А чем не кошерный? Я как раз на нем написал -

http://arduino.ru/forum/programmirovanie/skript-na-lune-dlya-esp8266-mon...

ножкав мало (для пульта в самый раз, а "на вырост" маловато)

Как бы да. Но пока 4 мне должно хватать. А сабж у меня уже года 2 пошти без дела валяется. Я так понимаю на старшие модели перейти не проблемно?

Jon2013
Offline
Зарегистрирован: 18.12.2013

Все свои ардуиновские поделки перевел на ESP, потому как среда программирования одна плюс на борту ВайФай. ВиФи позволяет легко подключить смартфон в качестве монитора, но самое главное, модуль можно программировать по воздуху и это перевесит все минусы ЕСПшки.

Но! Свободных GPIO у любой модификации ЕСП катастрофически мало. Из десяти доступных, половину можно использовать с большими оговорками. Приходится устанавливать расширители портов, а это еще те костыли. Библиотеки тоже надо искать заточенные под ЕСП.  Сама ЕСП работает от 3.3В поэтому еще желательно прикрутить согласователи логических уровней. Правда китайские ребята давно интегрировали ЕСП в отдельные модули с ИП на 5В, встроенным программатором и  соответствующей обвязкой. У меня с десяток простеньких ЕСП так и валяются без дела.

Вот таки основные плюсы и минусы для тех кто думает переходить или нет с Ардуины на ЕСП. 

dSave
Offline
Зарегистрирован: 30.01.2017

Logik пишет:

dSave пишет:

За ссылку спасибо, буду изучать!

Я правильно понимаю, что для подключения к Ардуино ESP-01 тоже прошить нужно будет? Т.е. какой-то скейч в нее залить?

Для заливки прошивки XTCOM_UTIL а скрипт - ESPlorer. В нем же и пишу, хотя не удобный.

А зачем XTCOM_UTIL и ESPlorer? Разве нельзя Arduino IDE пользоваться?

Если я правильно понял, то это аналоги?

Жду с Али USB TTL-UART преобразователь - https://ru.aliexpress.com/item/CH340G-5V-USB-to-TTL-UART-Serial-Converter/32524218818.html?spm=2114.13010608.0.0.4vbnje

Он подойдет для заливки скейчей на ESP8266? Там вроде даже 3.3 вольта есть.

dSave
Offline
Зарегистрирован: 30.01.2017

Jon2013 пишет:

Все свои ардуиновские поделки перевел на ESP, потому как среда программирования одна плюс на борту ВайФай. ВиФи позволяет легко подключить смартфон в качестве монитора, но самое главное, модуль можно программировать по воздуху и это перевесит все минусы ЕСПшки.

Но! Свободных GPIO у любой модификации ЕСП катастрофически мало. Из десяти доступных, половину можно использовать с большими оговорками. Приходится устанавливать расширители портов, а это еще те костыли. Библиотеки тоже надо искать заточенные под ЕСП.  Сама ЕСП работает от 3.3В поэтому еще желательно прикрутить согласователи логических уровней. Правда китайские ребята давно интегрировали ЕСП в отдельные модули с ИП на 5В, встроенным программатором и  соответствующей обвязкой. У меня с десяток простеньких ЕСП так и валяются без дела.

Вот таки основные плюсы и минусы для тех кто думает переходить или нет с Ардуины на ЕСП. 

 

Да, это вполне логично.

Возможно я тоже так со временем поступлю. 

Как с надежностью у ESP? Слышал, что они менее стабильны, чем АТМега?

Еще вроже новый чип вышел ESP32? Его пока активно не используют?

А как работают расширитель портов? Есть такие для цифровых пинов? Где можно почитать?

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

dSave пишет:

Да, это вполне логично.

Возможно я тоже так со временем поступлю. 

Как с надежностью у ESP? Слышал, что они менее стабильны, чем АТМега?

Еще вроже новый чип вышел ESP32? Его пока активно не используют?

А как работают расширитель портов? Есть такие для цифровых пинов? Где можно почитать?

C надежностью у ЕСП для HOME USES вполне себе нормально. Для программирования можно использовать как язык LUA + esplorer, так и Arduino IDE (среда разработки) и язык Wiring (почти С++). LUA и Wiring между собой несовместимы и подходы к программированию у них разные. По энергопотреблению ЕСП весьма не батарейный вариант в отличии от ATMEGA 328. При программировании ЕСП можно (ну это наверное новичек не осилит) только в первый раз через усб->сом преобразователь залить скетч с ОТА (OwerTheAir), потом ЕСП можно будет программировать "по воздуху"

ESP32 это 2хЕСП8266 ;). он сильно дороже (от $7) и на него пока совсем ничего нет в плане прикладного софта.

Расширитель портов - это микросхема которая подключается к МК по 2м проводам (шина I2C), а с другой стороны имеет 8 ножек, которые могут работать как порты ввода вывода. Классическим примером расширителя является PCF8574 - микросхема, которая используется для подключения широко известных (в узких кругах ардуинщЕгов) экранчиков LCD1602 по 2м проводам (I2C). Без расширителя требуется 8 портов (пинов) I/O - экономия пинов налицо.

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

Logik пишет:

Я так понимаю на старшие модели перейти не проблемно?

У старших  просто все ножки наружу припаяны/выведены

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

dSave пишет:

Я теперь уже понимаю, что ESP8266 вполне себе микроконтроллер, но все таки решил пока на Arduino сосредоточиться.

Может быть есть где-то скейч, который подойдет в моем случае? Мне нужно подключить Ардуино к RemoteXY или аналогам.

Блинк и IoT Manager уже смотрел, но пока с ними не разобрался и не понял, чем они лучше/хуже RemoteXY. Так же буду благодарен толковым ссылкам по этой теме. ЛУчше с текстом, на видео у меня мало времени.

Я ж вам советовал - посмотрите у Третьякова. У него все разжевано "для чайников" на примере управления всей техникой (Люстра, ТВ, и.т.д) в комнате посредством одной ЕСП. И примеры готовых скетчей (которые в уроках) под видео в архивах лежат.

Про "мало времени" учтите - никто за вас ваши хотелки просто так бесплатно делать не будет. Раз уж взялись ищите время и читайте.

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

dSave пишет:

pilnikov пишет:

Если вы это осилите - то считайте, что вы уже "крутой ардуинщик" и есп почти освоили

Это шутка такая? )))

Подключить модуль к программатору по схеме (дальше вроде все как на Ардуино?) не большого ума дело вроде? Хотя пока не пробовал...

 

Да шутка

Модуль не надо подключать к программатору, достаточно усб ->сом преобоазователя

Logik
Offline
Зарегистрирован: 05.08.2014

dSave пишет:

А зачем XTCOM_UTIL и ESPlorer? Разве нельзя Arduino IDE пользоваться? 

А это смотря как использовать. Саму прошивку в ESP заливаю XTCOM_UTIL (вроде и еще чемто можн). Прошивки бывают разные: для работы AT-командами (т.е. по типу WiFi модема) через uart; nodemcu для исполнения скрипта на луне (мой случай). А можна писать из ардуиновского ИДЕ свою "прошивку", тогда прямо заливается, без XTCOM_UTIL и ESPlorer. Но такой подход поxти исключает удаленную смену софта по WiFi. В общем 3 варианта - выбирай что нравится)

Logik
Offline
Зарегистрирован: 05.08.2014

dSave пишет:

Жду с Али USB TTL-UART преобразователь - https://ru.aliexpress.com/item/CH340G-5V-USB-to-TTL-UART-Serial-Converter/32524218818.html?spm=2114.13010608.0.0.4vbnje

Он подойдет для заливки скейчей на ESP8266? Там вроде даже 3.3 вольта есть.

Должен пойти. А вот хватит ли тока с тех 3.3 вольта - скорей всего нет. Я опробовал 2 варианта питания: 1. "Бомж-вариант" ;) подключаем к 5В через 2 кремниевых диода, на каждом падает напряжение 0,7В, в итоге 5-0,7-0,7=3,6В что вполне годится 2."VIP-вариаант" заказал https://ru.aliexpress.com/item/Free-Shipping-Smart-Electronics-XM1584-Ultra-small-size-DC-DC-Step-Down-Power-Supply-Module-3A/32317747554.html?spm=2114.13010608.0.0.A5qEY6 

Logik
Offline
Зарегистрирован: 05.08.2014

pilnikov пишет:

 первый раз через усб->сом преобразователь залить скетч с ОТА (OwerTheAir), потом ЕСП можно будет программировать "по воздуху"

Про ней отзывы очень "не очень". Например -https://esp8266.ru/forum/threads/prostejshaja-proshivka-s-ota.665/  И я так понимаю, что если сбойнет посреди процесса, то снова усб->сом нужен.

pilnikov, вы сами её используете? получается?

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

Logik пишет:

pilnikov пишет:

 первый раз через усб->сом преобразователь залить скетч с ОТА (OwerTheAir), потом ЕСП можно будет программировать "по воздуху"

Про ней отзывы очень "не очень". Например -https://esp8266.ru/forum/threads/prostejshaja-proshivka-s-ota.665/  И я так понимаю, что если сбойнет посреди процесса, то снова усб->сом нужен.

pilnikov, вы сами её используете? получается?

 

В своем проекте - все так, как вы написали - иногда бывает нужен проводок (проект на ардуине), а вот у хомес смарт прошивки вроде стабильная ота (я не знаю на чем она писана, т.к. платная и закрытая, но похоже на LUA). Я где-то читал, уже не помню где, что вроде кусок кода, отвечающий за ОТА, должен располагаться в отдельной области флэшь, сразу за SDK, и при перепрошивке не должен затрагиваться. Т.е. обновлятся должна тока область с программой юзверя. Но это так походу тока для LUA. Ардуина пишет все сплошь. Хотя могу и ошибаться - поправтье если не прав.

Logik
Offline
Зарегистрирован: 05.08.2014

pilnikov пишет:

 вроде кусок кода, отвечающий за ОТА, должен располагаться в отдельной области флэшь, сразу за SDK, и при перепрошивке не должен затрагиваться. Т.е. обновлятся должна тока область с программой юзверя. Но это так походу тока для LUA. Ардуина пишет все сплошь. Хотя могу и ошибаться - поправтье если не прав.

Целиком разделяю Ваш взгляд на проблему.

dSave
Offline
Зарегистрирован: 30.01.2017

pilnikov пишет:

C надежностью у ЕСП для HOME USES вполне себе нормально. 

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

Цитата:

Для программирования можно использовать как язык LUA + esplorer, так и Arduino IDE (среда разработки) и язык Wiring (почти С++). LUA и Wiring между собой несовместимы и подходы к программированию у них разные.

Может поэтому не стоит с ЕСП начинать? Большой выбор - больше проблемм.

Цитата:

При программировании ЕСП можно (ну это наверное новичек не осилит) только в первый раз через усб->сом преобразователь залить скетч с ОТА (OwerTheAir), потом ЕСП можно будет программировать "по воздуху"

Где-то видел проект (вроде умного дома), где автор объяснял как прошить ЕСП, что бы потом прошивки загружались с его сервера по WiFi. Читаю много разных источников одновременно, немного запутался, возможно даже здесь ссылку давали.

Так вот, вроде там не сложно было? Другой вопрос, что мне сейчас не это важно...

Цитата:

Расширитель портов - это микросхема которая подключается к МК по 2м проводам (шина I2C), а с другой стороны имеет 8 ножек, которые могут работать как порты ввода вывода. Классическим примером расширителя является PCF8574 - микросхема, которая используется для подключения широко известных (в узких кругах ардуинщЕгов) экранчиков LCD1602 по 2м проводам (I2C). Без расширителя требуется 8 портов (пинов) I/O - экономия пинов налицо.

Это такая плата? https://ru.aliexpress.com/item/PCF8574-IO-Expansion-Board-I-O-Expander-I2C-Bus-Evaluation-Development-Module/32476725727.html?spm=2114.30010708.3.65.7Eec10&ws_ab_test=searchweb0_0,searchweb201602_4_10065_10068_10000032_119_10000025_10000029_430_10000028_10060_10062_10056_10055_10000062_10054_301_10059_10099_10000022_10000012_10103_10000015_10102_10096_10000018_10000019_10000056_10000059_10052_10053_10107_10050_10106_10051_10000053_10000007_10000050_10117_10084_10083_10000047_10080_10082_10081_10110_10111_10112_10113_10114_10115_10037_10033_10000041_10000044_10078_10079_10077_10000038_429_10073_10000035_10121-10033,searchweb201603_9,afswitch_3_afChannel,single_sort_2_default&btsid=d96c4111-7376-40db-ada5-8f234b8c0a1b

вроде есть для SPI расширители портов?

dSave
Offline
Зарегистрирован: 30.01.2017

pilnikov пишет:

Я ж вам советовал - посмотрите у Третьякова. У него все разжевано "для чайников" на примере управления всей техникой (Люстра, ТВ, и.т.д) в комнате посредством одной ЕСП. И примеры готовых скетчей (которые в уроках) под видео в архивах лежат.

Про "мало времени" учтите - никто за вас ваши хотелки просто так бесплатно делать не будет. Раз уж взялись ищите время и читайте.

Смотрел и еще буду смотреть, интересно )

За меня делать ничего не нужно, так не научишься. Я просил ссылки где можно читать, а не смотреть. Мне так удобнее.

dSave
Offline
Зарегистрирован: 30.01.2017

pilnikov пишет:

Модуль не надо подключать к программатору, достаточно усб ->сом преобоазователя

[/quote]

я наверное неправильно его назвал))) простите!

я про это - https://ru.aliexpress.com/item/CH340G-5V-USB-to-TTL-UART-Serial-Converte...

dSave
Offline
Зарегистрирован: 30.01.2017

Logik пишет:

dSave пишет:

А зачем XTCOM_UTIL и ESPlorer? Разве нельзя Arduino IDE пользоваться? 

А это смотря как использовать. Саму прошивку в ESP заливаю XTCOM_UTIL (вроде и еще чемто можн). Прошивки бывают разные: для работы AT-командами (т.е. по типу WiFi модема) через uart; nodemcu для исполнения скрипта на луне (мой случай). А можна писать из ардуиновского ИДЕ свою "прошивку", тогда прямо заливается, без XTCOM_UTIL и ESPlorer. Но такой подход поxти исключает удаленную смену софта по WiFi. В общем 3 варианта - выбирай что нравится)

Пока сложно для понимания... 

dSave
Offline
Зарегистрирован: 30.01.2017

Logik пишет:

Должен пойти. А вот хватит ли тока с тех 3.3 вольта - скорей всего нет. Я опробовал 2 варианта питания: 1. "Бомж-вариант" ;) подключаем к 5В через 2 кремниевых диода, на каждом падает напряжение 0,7В, в итоге 5-0,7-0,7=3,6В что вполне годится 2."VIP-вариаант" заказал https://ru.aliexpress.com/item/Free-Shipping-Smart-Electronics-XM1584-Ultra-small-size-DC-DC-Step-Down-Power-Supply-Module-3A/32317747554.html?spm=2114.13010608.0.0.A5qEY6 

[/quote]

У меня есть 3.3 вольта откуда брать. 

snickser
Offline
Зарегистрирован: 02.07.2016

А подскажите пожалуйста, приехала вот такая плата, там вверху на модуле есть светодиод, как его заставить светиться? Перепробовал все gpio (0-16), а он молчит...  дохлый или есть какая хитрость с ним?

Araris
Offline
Зарегистрирован: 09.11.2012

Вероятно светодиод подключен к UART TX.

"The LED is directly connected to the UART TX line. You can use the TX pin as GPIO1 to control the LED, but only if you don't use UART."

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

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

snickser пишет:

А подскажите пожалуйста, приехала вот такая плата, там вверху на модуле есть светодиод, как его заставить светиться? Перепробовал все gpio (0-16), а он молчит...  дохлый или есть какая хитрость с ним?

digitalWrite(LED_BUILTIN, LOW); включает диод *
digitalWrite(LED_BUILTIN, HIGH); выключает диод *
 
* будет работать если в платах выбрана правильная
 
на модуле ESP12E (скорее всего у вас именно он) светодиод катодом подключен к GPIO2 а анодом через резюк на +3v3. Поэтому, чтобы зажечь диод нужно записать ноль в gpio2
Logik
Offline
Зарегистрирован: 05.08.2014

Забацал платку на версии девайса 01, частично запаял, ESP стартует, допаял - нестартует. Горит непрерывно синим "пламенем" светодиод. А ведь только GPIO2 через резисиор к базе подпаял. Даффай разбиратся, оказывается GPIO2 при старте должен быть в 1 ((( Ну хороше что в схемотехнике 1 при старте  допускает. Но впаять  резюк подтяжки между ножками CH_RD и GPIO2  было еще то развлечение.

Люди! Будте бдительны!

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

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

я тока что подпаял светодиод к гпио 2 и земле -> встал на ваши грабли

makc014
makc014 аватар
Offline
Зарегистрирован: 18.01.2016

Кто нибудь встречал подобную плату для esp8266 http://c.b1wr.com/h.daSaUP?cv=RlqCR7E3jx&sm=93a61a ? с помощью которой можно шить без пайки

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

dSave пишет:

pilnikov пишет:

Модуль не надо подключать к программатору, достаточно усб ->сом преобоазователя

я наверное неправильно его назвал))) простите!

я про это - https://ru.aliexpress.com/item/CH340G-5V-USB-to-TTL-UART-Serial-Converte...

[/quote]

я через такой лью

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

makc014 пишет:

Кто нибудь встречал подобную плату для esp8266 http://c.b1wr.com/h.daSaUP?cv=RlqCR7E3jx&sm=93a61a ? с помощью которой можно шить без пайки

вот мой немного модифицированный wemos D1 mini 

https://yadi.sk/i/BJnOOULN3E3ANt 

https://yadi.sk/i/3Pf6dQ_L3E3AQU

Тоже "можно шить без пайки" ;)

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

ua6em пишет:

я через такой лью

Выше постом вемос д1 мини - на мой взгляд самая удобная платформа в плане залить/попробовать + самая демократичная цена и самый (почти) компактный размер (в макетку входит)

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

У меня есть D1 но не мини, брал по цене в районе 200 рублей, мини надо брать в комплекте и уже не самое дешовое решение получается, модуль можно взять чуть дороже 100 рублей + пара резисторов, для законченного устройства переходник нужен один раз
Каждый выбирает по себе, женщину, судьбу или дорогу... )))

Logik
Offline
Зарегистрирован: 05.08.2014

pilnikov пишет:

я тока что подпаял светодиод к гпио 2 и земле -> встал на ваши грабли

Вы наверно будете смеятся, но история повторилась и на GPIO1, он же Tx )))) 

Вывод: в момент старта все GPIO 0,1,2 должны быть подтянуты к 1.

ПС. От просто интересно, чего от GPIO3 ожидать?

snickser
Offline
Зарегистрирован: 02.07.2016

Araris пишет:

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

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

orcsin
Offline
Зарегистрирован: 12.06.2015

Всем здрасти!

Есть светодиодная лента где то ватт на 10-20.
Была ардуина нано и какой то полевик из БП компа, всё работает отлично.
Сейчас хочу управлять лентой с ESP8266-01, и там уже вывод даёт не 5В (ардуина), а 3.3 В которые может не хватить для полного открытия полевика.

Посоветуйте пожалуйтса полевик для управления светодиодной ленты 12 В ( до 2 А) и что бы полностью открывался при 3.3 В.
Завтра нужно ехать на рынок, а погуглив я больше запутался...

negavoid
Offline
Зарегистрирован: 09.07.2016

Wemos d1 - классная штука, и паять ничего не надо. Хочу, чтобы следующий вемос вышел с esp32. :)

Logik
Offline
Зарегистрирован: 05.08.2014

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

Ну и вебморда к нему.

victorv
Offline
Зарегистрирован: 31.07.2015

/quote]

Я ж вам советовал - посмотрите у Третьякова. У него все разжевано "для чайников" на примере управления всей техникой (Люстра, ТВ, и.т.д) в комнате посредством одной ЕСП. И примеры готовых скетчей (которые в уроках) под видео в архивах лежат.

Здравствуйте, ссылку можете дать?

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015
Logik
Offline
Зарегистрирован: 05.08.2014

orcsin пишет:

 ESP8266-01, и там уже вывод даёт не 5В (ардуина), а 3.3 В которые может не хватить для полного открытия полевика.

Это не вся проблема. Еше выдает меньше ток и некоторые выводы требуют быть в 1 при включении. Выход - между полевиком и ESP транзисторный ключ - npn транзистор и несколько резисторов в обвязке. Ну и в софте учесть, что открывать полевик не 1 а 0.

orcsin
Offline
Зарегистрирован: 12.06.2015

Здравствуйте, "хакнул" 01 версию (добавил ещё 4 пина 9, 10, 12, 13). Но есть вопросик... Можно конечно перекличку устроить, но...
Подскажите таблицу соотвествия GPIO и пинов для программирования в ардиуно IDE.

http://www.pighixxx.com/test/2015/09/esp8266-pinout/#prettyPhoto[gallery1140]/0/

Можно взять из 12 версии, но там уже не соотвествия:

IO2  в 01 версии это 3, а в 12 версии это 2.

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

https://yadi.sk/i/6hhPN-1P3FuBQ7

IO2  это 14 pin чипа, к нему светодиод припаян у 12е, в ардуино это D2 (12, 12Е модули, Wemos, NodeMCU)

а как в ардуино выбрать 01 модуль?

в \Users\user_name\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\ лежат файлики *.h c пинаутами различных модулей. Какой выберите при прошивке тот пинаут и будет. 

orcsin
Offline
Зарегистрирован: 12.06.2015

Вроде припаялся хорошо, но вижу всего три пина:

OGPIO14; HSPICLK

GPIO12;HSPIQ

GPIO13;HSPID

А вот этот не вижу - GPIO15;HSPICS. :(

Но в принципе 4 + 3 выхода с его то памятью с головой хватит :)

orcsin
Offline
Зарегистрирован: 12.06.2015

А по факту при выборе generic, номера пинов совпадают с GPIO. Ну кроме 15 которого я не вижу :(

 

pilnikov
pilnikov аватар
Offline
Зарегистрирован: 28.08.2015

15 должен быть притянут к земле (может быть у вас в 01 модуле он просто посажен на землю (там про это на картинке написано) наглухо без резистора) не могу утверждать потому как нету у меня модулей 01 и нету чертежа печатки. Вы цэшкой звякните пин 13 на землю

sadman41
Offline
Зарегистрирован: 19.10.2016

Властелины ESP, подскажите - существует ли для сабжа библиотечка (враппер) совместимая по синтаксису (или близкая) с Ethernet Library?

Имею проект, разработанный для W5100 (TCP Server only, траффик минимальный), хотелось бы добавить возможность выбирать между проводом и Wi-Fi. Портировать его целиком и тянуть потом два бранча бессмысленно. Отмотал в теме десяток страниц и понял, что общественность не находит смысла в соединении какой-нить Nano и ESP12. Но, может кто-то в курсе таких комбинаций - подскажите. Гуглеж, к сожалению, тоже особо не дал результатов - в основном попадается обмен через UART и AT-команды.

Logik
Offline
Зарегистрирован: 05.08.2014

sadman41 пишет:

Властелины ESP, подскажите - существует ли для сабжа библиотечка (враппер) совместимая по синтаксису (или близкая) с Ethernet Library?

Нет.

sadman41 пишет:

Имею проект, разработанный для W5100 (TCP Server only, траффик минимальный), хотелось бы добавить возможность выбирать между проводом и Wi-Fi. 

Сильно разные устройства   W5100 по сути управления - набор регистров через которые все происходит. ESP - почти завершенное устройство с своей программой, портами и интерфейсами.

 

sadman41 пишет:

 общественность не находит смысла в соединении какой-нить Nano и ESP12. Но, может кто-то в курсе таких комбинаций - подскажите. Гуглеж, к сожалению, тоже особо не дал результатов - в основном попадается обмен через UART и AT-команды.

Именно так и соединяют, почему - см. выше.

Logik
Offline
Зарегистрирован: 05.08.2014

Замерил время некоторых команд. Местами странно. http://arduino.ru/forum/obshchii/vremya-vypolneniya-otdelnykh-komand-ard...

sadman41
Offline
Зарегистрирован: 19.10.2016

Logik пишет:

sadman41 пишет:

Властелины ESP, подскажите - существует ли для сабжа библиотечка (враппер) совместимая по синтаксису (или близкая) с Ethernet Library?

Нет.

Нашлось вот такое: https://github.com/sparkfun/SparkFun_ESP8266_AT_Arduino_Library

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

Заточена под pre-v0.22 AT-прошивки (ESP8266 SDK < v1.0.0). В моем случае пришлось править ESP8266_AT.h b и навтыкать "_CUR" в часть строк. 

Цитата:
Сильно разные устройства   W5100 по сути управления - набор регистров через которые все происходит. ESP - почти завершенное устройство с своей программой, портами и интерфейсами.

Так в том-то и дело, что SDK открыто, в принципе - NodeMCU пилят. Даже на дурацкий ENC28J60 программный TCP/IP стек уже написали. И работает он в килобайте памяти. А в ESP всего побольше, память есть - буфер приличный можно организовать, ноги есть - дрыгай себе в SPI-style. Всяко удобней, наверное, регистры эмулировать, нежели заниматься парсингом  и формированием строк. Да и со стороны мелкого MCU меньше оверхеда будет.

Нет, конечно, накатать такую прошивку мне не по силам, но явных непреодолимых препятствий для реализации (мало ног, тормознутость, отсутствие памяти), как я понимаю, нет.

Logik
Offline
Зарегистрирован: 05.08.2014

sadman41 пишет:

Цитата:
Сильно разные устройства   W5100 по сути управления - набор регистров через которые все происходит. ESP - почти завершенное устройство с своей программой, портами и интерфейсами.

Так в том-то и дело, что SDK открыто, в принципе - NodeMCU пилят. Даже на дурацкий ENC28J60 программный TCP/IP стек уже написали. И работает он в килобайте памяти. А в ESP всего побольше, память есть - буфер приличный можно организовать, ноги есть - дрыгай себе в SPI-style. Всяко удобней, наверное, регистры эмулировать, нежели заниматься парсингом  и формированием строк. Да и со стороны мелкого MCU меньше оверхеда будет.

Нет, конечно, накатать такую прошивку мне не по силам, но явных непреодолимых препятствий для реализации (мало ног, тормознутость, отсутствие памяти), как я понимаю, нет.

Непреодолимым препятствием является отсутствие необходимости в выдаче наружу низкоуровневого функционала при наличии высокоуровневого. Какие нафиг регистры SPI  если ESP реализует стек протоколов до HTTP и даже выше. 

Цитата:
 Всяко удобней, наверное, регистры эмулировать, нежели заниматься парсингом  и формированием строк. 

Шутите. Регистры эмулировать - дурная двойная работа. И работать с ними не удобней, хотяб потому что нада знать аппаратную специфику вместо АТ команд. И та либа, кстати, что Вы нашли, она из этой же серии гемороя - эмулирует TCP интерфейс поверх АТ, при том что сам АТ разумеется на TCP основывается. Но это неверно с точки зрения стека протоколов и, как следствие, геморно с практической точки т.к. специфика TCP при переходе к АТ теряется и вернуть её никак нельзя. АТ команды не обеспечивают 100% доступа к возможностям TCP. И TCP поверх него не полный, тормозной и скорей всего глючный будет.

Цитата:
 Да и со стороны мелкого MCU меньше оверхеда будет.

Если сильно мелкий - выкинуть нахер и перенести функционал в ESP. Если средний - разделить функционал, комуникации в ESP а остальное в MCU, связь между ними по оригинальному протоколу. Это как раз похоже Выш случай был, надо в ESP прием вашего простенького протокола сделать и по UART (или SPI если он родней) гнать данные в контролер, а там уже, на уровне вашего протокола, и решать вопрос - провод или WiFi.

sadman41
Offline
Зарегистрирован: 19.10.2016

Logik пишет:

Шутите. Регистры эмулировать - дурная двойная работа. И работать с ними не удобней, хотяб потому что нада знать аппаратную специфику вместо АТ команд.

 

Не шучу. Думаю, что доступ к слою абстракции сетевой модели, который сейчас обеспечивается AT-командами, было бы гораздо действенней осуществлять другим способом. Не знаю, чем было продиктована идея прикидываться старинным модемом, но на мой взгляд - она не лучшая в наше время, когда можно получать данные из буфера программно реализованного на ESP TCP-стека (например), используя механизмы SPI, I2C (даже софтварно эмулируемые) и пр. 

Вот у вас есть соображения по поводу того - зачем там AT-система команд? Что она облегчает?

Да, и, заметьте - я не предлагал поиметь доступ к регистрам самой ESP, как SOC-а, речь шла о виртуализированном сетевом адаптере, если можно так выразиться.

Цитата:

И та либа, кстати, что Вы нашли, она из этой же серии гемороя - эмулирует TCP интерфейс поверх АТ, при том что сам АТ разумеется на TCP основывается. Но это неверно с точки зрения стека протоколов и, как следствие, геморно с практической точки т.к. специфика TCP при переходе к АТ теряется и вернуть её никак нельзя. АТ команды не обеспечивают 100% доступа к возможностям TCP.

Ну вот и я о том же. Кому только в голову пришло прогнать это все через AT? Да еще и мультисокетную поддержку завернуть в него. Но я не согласен, что она эмулирует TCP over AT-commands, просто предоставляет схожий с Ethernet lib синтаксис. Да, выдает она localIP(), но получает его совершенно идиотски - парсингом строки из UART. Вместо простого получения 4-х байт - гоним туда-сюда несколько десятков, потом режем на куски, преобразуем в uint32_t. Только в страшном сне такое могло бы приснится. 

Цитата:
Если сильно мелкий - выкинуть нахер и перенести функционал в ESP. Если средний - разделить функционал, комуникации в ESP а остальное в MCU, связь между ними по оригинальному протоколу.

Еще один протокол никогда не бывает лишним? ))

Цитата:
Это как раз похоже Выш случай был, надо в ESP прием вашего простенького протокола сделать и по UART (или SPI если он родней) гнать данные в контролер, а там уже, на уровне вашего протокола, и решать вопрос - провод или WiFi.

Нет в этом выигрыша. Во всяком случае для моего алгоритма. Переносить на сторону сетевого модуля мне нужно или всё или ничего. Частичная передача функциональности только усложнит процессы взаимодействия, так как, сами понимаете, все, что можно перенести на ESP, нельзя на W5100, а уж тем более на ENC28J60. Придется для проводных вариантов анализ пакета проводить в MCU, для беспроводных - в ESP, т.е. фактически вести разработку для двух типов контроллеров. Врагу не пожелаешь такого. 

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

А вообще - было бы способ получить Wi-Fi интерфейс, который подключался бы на том же уровне OSI, что и W5100 - я бы подпрыгивал от счастья

Logik
Offline
Зарегистрирован: 05.08.2014

sadman41 пишет:

Вот у вас есть соображения по поводу того - зачем там AT-система команд? Что она облегчает?

Да, и, заметьте - я не предлагал поиметь доступ к регистрам самой ESP, как SOC-а, речь шла о виртуализированном сетевом адаптере, если можно так выразиться.

AT-система там по причине того, что является общепринятым стандартом для модемов и для варианта применения ESP как комуникационного оборудования совершенно естественна. Но у ESP есть другие варианты использования, без АТ. Очевидно на них надо и смотреть если АТ не устраивают.

sadman41 пишет:

Да, и, заметьте - я не предлагал поиметь доступ к регистрам самой ESP, как SOC-а, речь шла о виртуализированном сетевом адаптере, если можно так выразиться.

Разумеется.

sadman41 пишет:
. Но я не согласен, что она эмулирует TCP over AT-commands, просто предоставляет схожий с Ethernet lib синтаксис. Да, выдает она localIP(), но получает его совершенно идиотски - парсингом строки из UART. Вместо простого получения 4-х байт - гоним туда-сюда несколько десятков, потом режем на куски, преобразуем в uint32_t. Только в страшном сне такое могло бы приснится. 

И я с законами гравитации не согласен, но они мое несогласие игнорируют)))  Вы какую прошивку в ESP лили?! АТ! "парсингом строки из UART" - это как раз разбор ответа АТ команды. Вашего согласия не обязательно ;)

sadman41 пишет:

Цитата:
Если сильно мелкий - выкинуть нахер и перенести функционал в ESP. Если средний - разделить функционал, комуникации в ESP а остальное в MCU, связь между ними по оригинальному протоколу.

Еще один протокол никогда не бывает лишним? ))

А если два девайса чем то обмениваются - без протокола не бывает. Стандартный АТ Вам не нравится (мне кстати тоже, я им только проверю сразу новый модуль и перешиваю на свое или NodeMCU), протокол по SPI через регистры отсутствует. Остается свое сочинять, но в этом большой беды нет. Уж точно менее геморно чем TCP over AT over TCP ))) да еще и невесть какой и насколько глюкавой либой.

sadman41 пишет:

Цитата:
Это как раз похоже Выш случай был, надо в ESP прием вашего простенького протокола сделать и по UART (или SPI если он родней) гнать данные в контролер, а там уже, на уровне вашего протокола, и решать вопрос - провод или WiFi.

Переносить на сторону сетевого модуля мне нужно или всё или ничего. Частичная передача функциональности только усложнит процессы взаимодействия, так как, сами понимаете, все, что можно перенести на ESP, нельзя на W5100, а уж тем более на ENC28J60. Придется для проводных вариантов анализ пакета проводить в MCU, для беспроводных - в ESP, т.е. фактически вести разработку для двух типов контроллеров. Врагу не пожелаешь такого. 

Нет конечно, не так. То что может ESP сам (открыть порт, акцептить входящих и пр.) но не может сам W5100  выполняет ESP. А для W5100 это же делает контроллер (у Вас я так понимаю это уже написано для W5100). Полученый поток данных ESP отправляет по UART. Из W5100 контроллер тоже извлекает поток данных. Два потока данных у контролера есть, он выбирает какой нужен и начинает парсить пакет, отсылать ответ и т.д. уже единообразно.

sadman41 пишет:
Мне нужно всего лишь получать последовательно входящие байты с входящего соединения и суметь отправить несколько байтиков обратно. 
Знаем, сами плавали;) Апетит приходит во время еды, сразу еще лишь айпишник глянуть бы, затем настройку а потом лишь разрыв соединения и еще только акцептить клиента )))

Но если вобще именно "всего лишь получать последовательно входящие байты с входящего соединения и суметь отправить несколько байтиков обратно" то это совсем просто делается, типа 

while(serverClients[i].available()) Serial.write(serverClients[i].read());

Посмотрите в примерах для ESP, есть WiFiTelnetToSerial и куча подобных. Может даже готовый подойдет. Не исключаю что и АТ командами можна настроить такой прозрачный режим.

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

sadman41
Offline
Зарегистрирован: 19.10.2016

Logik пишет:
AT-система там по причине того, что является общепринятым стандартом для модемов и для варианта применения ESP как комуникационного оборудования совершенно естественна.

W5xxx - тоже коммуникационное оборудование, но никто его не причесывает под модем. Видимо тут какое-то дурацкое архитектурное наследие.

Цитата:
Но у ESP есть другие варианты использования, без АТ. Очевидно на них надо и смотреть если АТ не устраивают.

Эти варианты я и ищу, но пока что мне не попадались иные варианты. Или всё запихивают в ESP или... Запихивают всё в ESP, а AT-команды только для "уроков ардуина+ESP".

Цитата:
Вы какую прошивку в ESP лили?! АТ! "парсингом строки из UART" - это как раз разбор ответа АТ команды. Вашего согласия не обязательно ;)

Знаете, не всегда стоит тех, кто пишет на этот форум, считать глупыми рукожопами, которые на самом деле повара, но зачем-т взяли в руки ардуину ;) 

Я лил ту прошивку, под которую нашел библиотеку с подходящим мне синтаксисом. У NodeMCU, который был залит первоначально  в мой ESP, я не нашёл способа извлечения входящих данных и внешнего управления процессом коммуницирования со внешним хостом.

Цитата:
Стандартный АТ Вам не нравится (мне кстати тоже, я им только проверю сразу новый модуль и перешиваю на свое или NodeMCU), протокол по SPI через регистры отсутствует.

Я допускаю, что есть вероятность существования такого способа, просто я не в том месте копаю. Поэтому и спросил в профильной ветке форума.

[quote]Полученый поток данных ESP отправляет по UART. Из W5100 контроллер тоже извлекает поток данных. Два потока данных у контролера есть, он выбирает какой нужен и начинает парсить пакет, отсылать ответ и т.д. уже единообразно.[/quote]

Написать можно всё, но не все стоит того, чтобы писать. Мысль я вашу понимаю, но пока не вижу простого способа интеграции ESP в свой проект. А перекурочивать отлаженный код ради модной возможности засрать эфир мне как-то пока не хочется. Ethernet library тоже многово не дает делать, если не лезть внутрь W5100 driver. Поэтому мне от ESP не нужно что-то более того, что может предложить стандартная библиотека Ethernet. И ровно поэтому я ищу сочетание прошивки ESP+библиотечки для ардуино, которое мне даст возможность малокровного добавления интефейса (наверное уже в десятый раз свою мысль объясняю ;))