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

Варианты передать через ESP-ESP простой массив?

Alex Vesna

New member
Вопрос следующий:
Предположим есть следующий путь, который должна пройти переменная, - генерируется на ардуине, через сериал передаётся ESPшке(предположим 10 или 11 версии платы), далее эта ESP коннектиться к другой ESP и передаёт переменную ей(предположим это D1 wemos), где с ней и делают всё, что обычно делают с переменными. :)
Точный формат переменной, в идеале аррай из 4 unsigned int, но на крайняк сойдёт и четыре однобайтовых числа.(неважно в каком формате, но если не в виде байта, а скажем в виде чара, то надо соответственный механизм конечного преобразовавния в простое десятичное число).

Я вот чего не пойму, почему класс client стандартной для ESP библы не предусматривает использования всего того же что и Serial, а точнее Stream?? Ну то есть есть print и write и в общем-то всё?! Насколько я понял сделать так - client.write(_переменная_массива, _длинна_массива), - не получится сделать? Не говоря уже о том что сервер считает что бы ему не передавал клиент, всё одно последовательность аски символов!!

И второй момент, - я бы вообще отказался от сокетов, и использовал бы тупо скозные терминалы, если бы понимал как обьяснить серверу что конечный потребитель переменной, - он сам. :)

Неужели нет простого способа тупо передать несколько чисел через ESP-ESP без нагромождений?!
 

Arthur

Active member
Вопрос следующий:
Предположим есть следующий путь, который должна пройти переменная, - генерируется на ардуине, через сериал передаётся ESPшке(предположим 10 или 11 версии платы), далее эта ESP коннектиться к другой ESP и передаёт переменную ей(предположим это D1 wemos), где с ней и делают всё, что обычно делают с переменными. :)
Точный формат переменной, в идеале аррай из 4 unsigned int, но на крайняк сойдёт и четыре однобайтовых числа.(неважно в каком формате, но если не в виде байта, а скажем в виде чара, то надо соответственный механизм конечного преобразовавния в простое десятичное число).

Я вот чего не пойму, почему класс client стандартной для ESP библы не предусматривает использования всего того же что и Serial, а точнее Stream?? Ну то есть есть print и write и в общем-то всё?! Насколько я понял сделать так - client.write(_переменная_массива, _длинна_массива), - не получится сделать? Не говоря уже о том что сервер считает что бы ему не передавал клиент, всё одно последовательность аски символов!!

И второй момент, - я бы вообще отказался от сокетов, и использовал бы тупо скозные терминалы, если бы понимал как обьяснить серверу что конечный потребитель переменной, - он сам. :)

Неужели нет простого способа тупо передать несколько чисел через ESP-ESP без нагромождений?!
Есть, и не мало - I2C или SPI, например.
Можно передавать пакетами, при этом передавая дополнительную служебную информацию, например, о размерности массива передаваемого. Можно и без неё передавать массив, полагаю.
Погуглите Arduino SPI - там всё просто...
 

Alex Vesna

New member
К сожалению я использую ESP-10 которую даже что бы просто прошить, пришлось пилить дороги, и я крайне сомневаюсь что при пяти выведенных пинах, удастся поднять SPI или I2C. В принципе второй вариант который я использую, - ESP-11 там аж на два пина больше. :) Но всё равно спасибо, я посмотрю.
 

Arthur

Active member
К сожалению я использую ESP-10 которую даже что бы просто прошить, пришлось пилить дороги, и я крайне сомневаюсь что при пяти выведенных пинах, удастся поднять SPI или I2C. В принципе второй вариант который я использую, - ESP-11 там аж на два пина больше. :) Но всё равно спасибо, я посмотрю.
А чем был обусловлен выбор именно 10ки? :)
 

Alex Vesna

New member
А чем был обусловлен выбор именно 10ки? :)
"Ну во первых это красиво" :)

Это самая простая и неприхотливая из ESPшек которые когда либо попадали в мои руки. Конечно перепиливать 15 вывод, дабы притягивать его к земле для прошивки, ещё то развлечение. Но зато и простоту и танцы с перепилом с лихой покрывает тот факт, что десятка тютелька в тютельку, входит в банальнейший rj-45 из которого элементарно делается подключалка к USB-TTL :) Вставил-прошил-вынул-следующая - не больше минуты на одну.

Что касается 11ой, то это просто неубиваемый монстр, боже что я с ним только не делал, самое безобидное это переплюсовка и 7 вольт по питанию. А? конвертор уровней 5-3.3?! Не, не слышали.. :) Так что если надо много и часто шить, переподключать к разным устройствам, то 11 - это наше всё. Но в конечное устройство 10 гораздо оптимальнее.

P.S Я вовсе не спец по ESP так что всё выше изложенное сугубо IMHO.
 

Arthur

Active member
"Ну во первых это красиво" :)

Это самая простая и неприхотливая из ESPшек которые когда либо попадали в мои руки. Конечно перепиливать 15 вывод, дабы притягивать его к земле для прошивки, ещё то развлечение. Но зато и простоту и танцы с перепилом с лихой покрывает тот факт, что десятка тютелька в тютельку, входит в банальнейший rj-45 из которого элементарно делается подключалка к USB-TTL :) Вставил-прошил-вынул-следующая - не больше минуты на одну.

Что касается 11ой, то это просто неубиваемый монстр, боже что я с ним только не делал, самое безобидное это переплюсовка и 7 вольт по питанию. А? конвертор уровней 5-3.3?! Не, не слышали.. :) Так что если надо много и часто шить, переподключать к разным устройствам, то 11 - это наше всё. Но в конечное устройство 10 гораздо оптимальнее.

P.S Я вовсе не спец по ESP так что всё выше изложенное сугубо IMHO.
А Я - 12 поклонник, или, проще в использовании - NodeMCU 2.0.
Да и за всю жизнь убил только 1 еспшку - в самом начале, по дурости, подал 5 вольт питалова и спалил flash. При этом сам esp чип, кажись, жив - валяется теперь платка в тумбочке, ждёт, когда куплю станцию паяльную и сдую флэху на новую...
А так, перепрошивками, мне ещё не удалось есп убить.
Возможно, что мало просто с ними ещё работал, не так уж часто перешивал их...
 

Alex Vesna

New member
Сегодня экспериментировал с сабжем, такой вопрос, - вот функция client.print ей можно указать формат передаваемых данных - DEC BIN и т.д, но как я понимаю вне зависимости она всё равно передаст эти данные по одному символу в виде аски кода символа? На стороне сервера, если я использую client.read как отправленное будет принято, если для данной функции указан аррай(и какой тип аррая должен собственно быть?), ведь read из описания, принимает побайтно в указанном количестве?!
Что должно передаваться функции client.write? Не, описание я читал, но попытка передачи переменной массива ЛЮБОГО типа, вызывает у компилятора ступор на тему неправильного формата данных. :( Как её правильно использовать?
 

Arthur

Active member
Сегодня экспериментировал с сабжем, такой вопрос, - вот функция client.print ей можно указать формат передаваемых данных - DEC BIN и т.д, но как я понимаю вне зависимости она всё равно передаст эти данные по одному символу в виде аски кода символа? На стороне сервера, если я использую client.read как отправленное будет принято, если для данной функции указан аррай(и какой тип аррая должен собственно быть?), ведь read из описания, принимает побайтно в указанном количестве?!
Что должно передаваться функции client.write? Не, описание я читал, но попытка передачи переменной массива ЛЮБОГО типа, вызывает у компилятора ступор на тему неправильного формата данных. :( Как её правильно использовать?
Купите "нормальную" еспшку себе, с I2C и SPI и не мучайтесь :)...
Что колесо-то выдумывать? :)
 

Arthur

Active member
Вот что ещё подумалось - вы массив-то можете сериализовать и передать данные в сериализованном виде. Первое, что приходит на ум - JSON, XML.
По поводу данных в бинарном формате - полагаю, речь идёт о данных в виде байтового массива? Если да, то и его можно сериализовать, а для того, чтобы передать байтовые данные без потерь - можно перевести данные в base64 с последующим представлением, скажем, в виде строки в 16ричном представлении...
 

Alex Vesna

New member
Не, вообще понятно что существует миллион и один способ всё это проделать, особенно если спецом искать навороченные или не стандартные решения. :)

Но речь как раз о том случае ,когда нужно грубо говоря десяток переменных постоянно гнать между ESP шками, и это походу главное зачем они вообще нужны человечеству. :) Во всяком случае на первых порах..

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

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

Поэтому было бы прекрасно таковое решение во первых раскопать, придумать, создать, ну и вывесить где нибудь. :)

Оно должно использовать ТОЛЬКО стандартные методы, доступные "из коробки" после установки поддержки ESP в Ардуиновской ИДЕ. И методы должны быть хорошо и понятно описаны, так же как десяток наиболее распространённых засад, на пути реализации. Поскольку есть совсем не очевидные вещи, даже если ты наизусть вызубришь, всё темы касающееся. Оно всплывает только после того как ты потратишь уйму времени, и то не всегда удаётся чётко очертить причину того что не получается что-то..
 

Arthur

Active member
И нужно бы огромными буквами, сразу за мануалом по подключению, оглашать способ это делать, в 100500 вариантах примеров кода.

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

Поэтому было бы прекрасно таковое решение во первых раскопать, придумать, создать, ну и вывесить где нибудь. :)
Предлагаю Вам разобраться и написать такую документацию - новайсы будут Вам благодарны!

Не, вообще понятно что существует миллион и один способ всё это проделать, особенно если спецом искать навороченные или не стандартные решения. :)
Предложенные варианты стандартны для практики программирования и не являются навороченными.
 

pvvx

Активный участник сообщества
Но речь как раз о том случае ,когда нужно грубо говоря десяток переменных постоянно гнать между ESP шками, и это походу главное зачем они вообще нужны человечеству. :) Во всяком случае на первых порах..

И нужно бы огромными буквами, сразу за мануалом по подключению, оглашать способ это делать, в 100500 вариантах примеров кода.
Оно не реализуемо в принципе на ESP8266. В данном решении главная часть - настройки WiFi для двух модулей. Пользователь не имеет к ним доступа, кроме как жестко вписать все установки в Arduino для своего личного случая. Интерфейса настроек модулей в Arduino не представлено, кроме того соединение должно работать, а не являться решением сугубо для съемки видео со стабильностью работы достаточному всего для сьемки видео "я крутой перец - соединил 2 ESP" или аналогичного блога. Для соединения и пересоединения по WiFi одной ESP к другой ESP нет никакого рабочего API или другого отлаженного интерфейса. Все функции, предоставленные в SDK ориентированы совсем на другое - продажу и рекламу ESP8266. Сама ESP не работает по стандарту WiFi - при переключении к другому AP не сообщает, что отключилась прошлому - тот должен выявлять это по тайм-ату и подобное. И таких мелких недоработок в ESP тысячи, что не позволяет создать на их основе уверенную связь двух модулей в обычных условиях - при наличии бытовых помех в эфире, включения отключение одного из связки модулей в разных последовательностях SoftAP-Station пользователем... Это не считая встроенных в SDK провалов связи из-за кривизны его софта...
Главное назначение ESP8266 от этого и не выполняется. Остается только одно - дешевая игрушка для изучения систем с WiFi, а не для создания рабочих решений.
Написали на Arduino SSID и пароль одному модулю и второму, один врубили в SoftAP режим, второй в Station. Прилепили открытие TCP сокета на одной, и на второй клиент-сокета, да вписали чтение-запись данных из сокетов с передачей в UART, хоть по одному байту :)
Если включите это более менее последовательно в питание (сначала SoftAP модуль, потом station) - для блога сгодиться - данные будут переданы и сможете кричать - у меня всё работает на ESP8266 :) Вот только такое решение никому не нужно, т.к. нестабильно и не будет работать в большинстве реальных применений из-за разных "но". Окажется, что алго реконнекта в SDK надо переписывать, исправить и учесть ещё к сотне глюков и ваше приложение обрастет на 99% объема кода не решающего проблему передачи этих несчастных байт, а борьбой и обходами глюков китайского SDK и тупизма функциональности в Arduino. И если даже решите задачу под 90% с остатком неисправимых "фич" в SDK, то выйдет новая SDK с решением части из этих 10% и новыми китай-фичами и придется переписывать к половине прошлого кода и решать новые варианты обхода новых "подарков" от программеров Espressif в новом их глюкадроме SDK, с распухшим кодом, который уже не лезет в старые модули - это чтобы вы купили новый модуль с большей Flash :)
По этому никто, в здравом уме, не будет создавать такой API на ESP8266. Только разрозненные примеры для блогов.
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
Г-да, @Arthur @pvvx вам не кажется, что вы насколько отклонились то темы топика? Предлагаю дальнейшее обсуждение перенести в новую тему.
 
Последнее редактирование:

Alex Vesna

New member
Не не не, большое спасибо! Это крайне полезный пост pvvx!

Хорошо, предположим что вы действительно правы, но во многом то же самое можно сказать о любых микроконтроллерах, заточенных не под разработку готового серийного изделия, а под "не серьезное" применение, и начинать можно с ардуино в общем и серии Mega атмела в частности, - огромная куча недоработок в либах, любой проект, больший чем блинк, требует мелких но досадных правок в них же. Есть конечно вариант забить на либы, и программить а ля " DIHALT", - на "полуассемблере"(с) :) Но тогда разработка превращается в Ад.

С другой стороны вот у меня например в шкафу лежит сума, - игрушечный квадрик, с FPV, - китай и вообще дешёвка, но для FPV идет камера, подрубленная с помощью модуля, весьма похожего я думаю по функционалу и по разработке на ESP(она у меня сгорела от превышения питания, починил. Так что я видел что внутри, - пришлось изучить.). И ничего, очень даже работает и передаёт видео. Серийное изделие. Не медсканнер конечно, но и ESP никто не собирается использовать для скорой помощи(пока во всяком случае) :)
И что-то мне подсказывает, что все кто делает подобные поделки, до единого, с ЛЮБЫМ девайсом сложнее резистора, могли бы подписаться под вашим постом, по отношению к ЛЮБОМУ вайфай модулю(чипу), который нынче производиться. Стоит только опросить любого инженера, что делают коробочку лежащую сейчас где-то рядом с вами, да и вообще у любого чела, - мобильники.

Если я не прав, приведите пожалуйста контрпримеры.

По сабжу, - как раз для всего что связанно с обслуживанием самого соединения, - никаких вопросов! Все настолько запримеренно, информации ТАК много, что разберётся и трёхлетний ребёнок. Проблемы начинаются с использования установленного соединения, - в данном случае с создания носка, и клиента к нему. "Только стринговый" обмен, конечно замечательно что есть хоть такой, но хотелось бы большего. Немного. Чуть чуть, - например дописанного описания работы функций, от дуиновского довеска для ESP. Хотя бы. А если бы ещё и кто-то написал аналог Programmer Guide(кстати скачанный из док.раздела тут) но с заточкой не под Эклипс, а хотя бы под аврстудио, а лучше под ардуиновский IDE, цены бы такому челу не было бы. :)

И уж точно не надо никаких костылей в виде монструозных надстроек(МQTT), и писании на языках отличных от С, - это совершенно лишнее. Тогда уж надо наоборот, если усложнять то вниз, к железному уровню и асму.

Я верю что максимум к сентябрю, люди которые хотят решить эту задачу, - гонять десяток переменных, - будут с лёгкостью находить кучу готовых скриптов, как минимум с грамотными каментами, позволяющими сходу вьехать. А лучше с FAQ`ом по теме. :)
 

Arthur

Active member
Не не не, большое спасибо! Это крайне полезный пост pvvx!

Хорошо, предположим что вы действительно правы, но во многом то же самое можно сказать о любых микроконтроллерах, заточенных не под разработку готового серийного изделия, а под "не серьезное" применение, и начинать можно с ардуино в общем и серии Mega атмела в частности, - огромная куча недоработок в либах, любой проект, больший чем блинк, требует мелких но досадных правок в них же. Есть конечно вариант забить на либы, и программить а ля " DIHALT", - на "полуассемблере"(с) :) Но тогда разработка превращается в Ад.

С другой стороны вот у меня например в шкафу лежит сума, - игрушечный квадрик, с FPV, - китай и вообще дешёвка, но для FPV идет камера, подрубленная с помощью модуля, весьма похожего я думаю по функционалу и по разработке на ESP(она у меня сгорела от превышения питания, починил. Так что я видел что внутри, - пришлось изучить.). И ничего, очень даже работает и передаёт видео. Серийное изделие. Не медсканнер конечно, но и ESP никто не собирается использовать для скорой помощи(пока во всяком случае) :)
И что-то мне подсказывает, что все кто делает подобные поделки, до единого, с ЛЮБЫМ девайсом сложнее резистора, могли бы подписаться под вашим постом, по отношению к ЛЮБОМУ вайфай модулю(чипу), который нынче производиться. Стоит только опросить любого инженера, что делают коробочку лежащую сейчас где-то рядом с вами, да и вообще у любого чела, - мобильники.

Если я не прав, приведите пожалуйста контрпримеры.

По сабжу, - как раз для всего что связанно с обслуживанием самого соединения, - никаких вопросов! Все настолько запримеренно, информации ТАК много, что разберётся и трёхлетний ребёнок. Проблемы начинаются с использования установленного соединения, - в данном случае с создания носка, и клиента к нему. "Только стринговый" обмен, конечно замечательно что есть хоть такой, но хотелось бы большего. Немного. Чуть чуть, - например дописанного описания работы функций, от дуиновского довеска для ESP. Хотя бы. А если бы ещё и кто-то написал аналог Programmer Guide(кстати скачанный из док.раздела тут) но с заточкой не под Эклипс, а хотя бы под аврстудио, а лучше под ардуиновский IDE, цены бы такому челу не было бы. :)

И уж точно не надо никаких костылей в виде монструозных надстроек(МQTT), и писании на языках отличных от С, - это совершенно лишнее. Тогда уж надо наоборот, если усложнять то вниз, к железному уровню и асму.

Я верю что максимум к сентябрю, люди которые хотят решить эту задачу, - гонять десяток переменных, - будут с лёгкостью находить кучу готовых скриптов, как минимум с грамотными каментами, позволяющими сходу вьехать. А лучше с FAQ`ом по теме. :)
Только кто это всё - "кучу готовых скриптов, как минимум с грамотными каментами, позволяющими сходу вьехать. А лучше с FAQ`ом по теме." - будет писать? Я готов Вам помочь с кодом. А Вы готовы потом гарантированно всё это аккуратно задокументировать?
 

pvvx

Активный участник сообщества
Я верю что максимум к сентябрю, люди которые хотят решить эту задачу, - гонять десяток переменных, - будут с лёгкостью находить кучу готовых скриптов, как минимум с грамотными каментами, позволяющими сходу вьехать. А лучше с FAQ`ом по теме. :)
Для этого надо что-то типа унификации основных процедур и их действий, что ещё не сделано для данного класса устройств. Arduino в этом не имеет ведущей роли, она построена уже на отработанных путях и вариантах. Кто сегодня создает свой проект, уже сталкивается с описанными проблемами, не стандартизированного API в области конфигурации и управления драйвером WiFi. Сначала это сделает кто-то другой и если оно выйдет востребованным, то тому-же Espressif или другому производителю придется включать в поддержку на своих SDK. Затем уже подтянется и Arduino. У вас почему-то процесс выглядит наоборот :) Сначала FAQ, а потом всё остальное? :)
 

Alex Vesna

New member
Долго не отвечал, потому что думал. :)
На самом деле, я понял что ничего по большому счёту не знаю о том, что твориться внутри этой штуки. И как оно всё там накоженно. Обычно в таких случаях, я лезу в исходник, - чем бы он ни был, и пытаюсь разобраться. С ESP так почти не получается. Я теперь уже в курсе что сама espressif не любит делиться о том что они там понапихали и понаписали в ESP, ну да чёрт с ними.
К примеру пытался найти внятное обьяснение того, что вылазит в сериал назначенный как debug, при установке bebug режима в all. :) Это сначала внятное, а потом хоть какое, хоть капельку.. :( Кончилось всё тем что я нашёл все куски кода, по всей SDK для дуиныИДЕ, которые это всё выводят, и теперь хотя бы знаю КТО это выводит. Но вот со структурами отвечающими непосредственно за например номер который выводит wifi evt: или :er так и не разобрался. Буду крайне признателен за любую инфу по теме дебаг порта. Особенно меня озадачивает :ww и :wr подозреваю что это связанно с процессом записи чтения, но и только.


Что касается помочь и задокументировать.. Похоже(ну ИМХО конечно) на то, что все кто не являются действующими создателями устройств, типа мобил там или планшетов и т.д. В ближайшие 2-3 года, будут вынужденны, если хотят таки вайфая, делать его на ESP. Другие альтернативы ещё хуже, пожалуй кроме Реалтековской подделки, но её у нас просто не будет пока. Только штучно, с али, и за бешеные деньги. Учитывая что у них сообщество на китайском общается, развиваться реалтековское творение будет медленно и мучительно. Хотя я слышал что в Китае это писк сезона, - многие с ним щас и играются и пытаются в нормальные девайсы пихать.

Это я к чему, к тому что при моей, иногда маниакальной скрупулёзности, не проблема пару тройку дней потратить на обобщение всей своей возни с ESP в виде нескольких текстов а ля FAQ. Но сначала мне необходимо самому в достаточной степени разобраться в теме.

pvvx: Давайте дальше наверное в личку писать, а то походу злостный оффтоп. :)
 

pvvx

Активный участник сообщества
Вы немного путаете, разные назначения модулей. Для детей, помигать светодиодом вполне сгодиться ESP8266, со своей нестандартной операционной системой. Для тех, кто желает освоить RTOS и программирование чего-то большего, сгодится RTL или ESP-32S. Бешенных денег они не стоят :) Разница у RTL00 от ESP8266 не более 1.5 раза, а возможностей - более. Вы говорите, что всё задокументировано и есть примеры соединения. Ну и где можно посмотреть пример соединения со списком AP, по желаемым критериям? Или вдрух пользователь хочет защищенное соединение с WPA2-Enterprise… :) Где регулировки установки алгоритмов пересоединения?

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

Возьмем к примеру, что писано у Espressif по поводу пересоединения в случае разрыва связи по любой причине. А там, стоит повторное подключение WiFi через 1 секунду и пересоединение TCP клиента так-же – 1 сек и не регулируется. Одна галочка - Автореконнект включен или выключен. Рассмотрим сторону TCP сервера – он открыл соединение и у него стоит, предположим, тайм-аут в 15 секунд на тишину от клиента, по которой он закроет соединение. Связи с событиями от WiFi у него нет. Клиент отвалился и пытается заново соединиться, а сервер на порту ждет таймаута прошлого соединения. Т.е. клиенту надо долбится до момента закрытия прошлого соединения и открытия нового. Он посылает запросы на соединение, а сервер не принимает, т.к. не многопользовательский (ограничены ресурсы в ESP8266). Через тайм-аут в 15 сек сервер закрывает прошлое соединение и начинает обрабатывать новый поступивший запрос, за это время клиент посылает новый запрос, т.к. тайм-аут на соединение по TCP у него вышел, сервер соединиться не может, пытается отработать новое, а клиент уже долбится с ещё нового порта. Так продолжается в течении нескольких минут… (Такова реализация в прошивке AT от Espressif) :) Это всё лечиться разными методами – например, отработкой событий WiFi (хоть в скетче, но пока не видел реализации именно для Arduino), по которым мы управляем TCP сокетами и совместно с опциями сокетов (тоже не наблюдаю в Arduino). Ситуация, когда второй модуль на короткое время выходит из области связи при WPA шифровании тоже не отрабатывается должным образом в ESP8266. Узнать про это вы сможет только по тому, что соединение не пингуется. Там чего-то китайцы крутили, и как всегда сделали кривое решение, не сильно помогающее этому делу, но в версии SDK, используемой в Arduino это ещё не правлено никак.

Вот вам и факты – каждый хотя-бы это решает по своему - для мигания светодиодом в Arduino это безразлично, а в других приложениях, которые сложно описать в Arduino– критично (в реальности установить новое соединение модулей можно однозначно за 2 сек). Описывать все глупости в SDK Espressif и как их обходить я не смогу – у меня нету несколько недель на набивку текста, а так-же месяцев для разработки, проверки и отладки алгоритмов их обхода. В RTL WiFi API уже написал – основные функции работают. Уж лучше их допишу, т.к. там я могу влиять и менять практически на всё - есть исходники или “реверс” даже драйвера WiFi... А вам остается попрошайничать у писателей Arduino для ESP-32S и потом писать свой FAQ, т.к. с ESP8266 всё более менее разбирающиеся давно ушли на ESP-32S или другие модули...
 
Последнее редактирование:

Alex Vesna

New member
Теперь мне понятны, некоторые казалось необьяснимые(точнее я их списывал на плохие контакты, или питание).. Скажите, вот вы похоже собаку сьели на коде для 8268, как вы наблюдали поведение модулей? Наверняка что нибудь типа полноценного дебага как в АВР студио, или вообще на отладочном комплексе типа как STK500 для атмела? Всё же не дадите хотя бы направление поиска на тему расшифровки того, что ESP выдает в UART назначенный как дебаг, с опцией выводить всё? :)
 

pvvx

Активный участник сообщества
Всё же не дадите хотя бы направление поиска на тему расшифровки того, что ESP выдает в UART назначенный как дебаг, с опцией выводить всё? :)
А в SDK нет дебаг в UART. Есть приложение к SDK "gdbstub", но к сожалению оно не поддерживается в UDK. В Arduino свои "фантики", а его я на ESP8266 не использовал - на нем ничего приличного не собрать в "амбразуре". Там же нет возможности вывода даже хидеров объектов и всё рассчитано на повторение примеров из блогов или видео. Ни шагу в сторону... В итоге это даже не обучение, а копипастинг уже имеющихся примеров. Прям как нынешняя система образования с ЕГЭ :) С него и возникают желающие иметь FAQ для копипастинга. Ни какого творчества и собственных мыслей...
Основной принцип Arduino – читаете блог, повторяете, путем копирования “скетча”. Открываете “хелп” и заучиваете куцые команды. Разбавляете код из примера пару командами из “хелп” и пишите новый блог. Если не получается - пишите вопрос на форуме - "что я делаю не так". Исправляете путем копирования того, что дадут. На этом работа закончена, устройство направляется на полку, и через пару лет в помойку. Покупается новая Arduino платка и всё повторяется.

При этом такие пользователи всегда возмущаются, почему, когда они купили самый дешевый модуль, к нему нету примеров, бесплатных книжек с примерами, всевозможных учебников по современному типу с разжовыванием до уровня 5-ти летнего ребенка, картинками с цветными проводками примеров включения и примеров на видео, … ?

Предлагаю вам купить, к примеру, модуль на STM32F7xx или просто проц без платы. Его цена будет составлять от 1500 руб, а памяти RAM до 320 килобайт и встроенные устройства минимальной функциональности. Зато в цену входит “документация” для данных телепузиков с примерами и ПО с картинками. :) На SoC с WiFi и таким-же подходом, модули тоже есть - цена от 10 т.руб. Вы же с ними (в данном случае с AVR) сравниваете? :) Оплатите и будет вам FAQ по вашему заданию. Желающие на такое всегда найдутся.

Но мир построен не так. С каждым годом интеграция в микроконтроллерах (ныне зовут более модно ‘SoC’) постоянно увеличивается и их возможности растут. ПО не успевают писать, полную документацию с разжовыванием до уровня 5-ти летнего ребенка производители уже не в состоянии подготовить – слишком дорогой выйдет чип и конкуренты сожрут. По этому выпускают описание в виде автоматически сгенерированных СИ файлов к целой серии чипов с сотнями условий и отсылками к стандартным моделям (IP) по встроенному оборудованию и общее описание чипа, более похожее на краткий перечень того что в нем вообще есть :) Если вам надо уточнение – заключаете договор с производителем со всякими подписями NDA. Он на ваши средства наймет инженера и напишет то, что вас интересует.
 
Последнее редактирование:
Сверху Снизу