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

Помогите понять принцип ESPшки. Может я вообще не туда полез?

gerkimuyda

New member
Но складывается ощущение что тут просто никто не пробовал соединять две ESP в режиме ESP-NOW. Ни примеров ни док на этом сайте нет .
А зачем соединять их в ESP-NOW ? Большинство задач, которые тут пользователи ставят и решают, выполняются через простое вайфай AccessPoint - Client. К тому-же он более удобен, т.к. позволяет еще и мобилой законектиться и ноутом посмотреть что там... Отсюда и отсутствие мало используемой ESP-NOW.
Вот смотрите, даже вы в своем девайсе можете сделать модуль с мотором - АПешкой, а пульт - клиентом. И тогда кроме основного пульта - вы легко можете создать еще один паралельный. Да и просто с мобилки в браузере через инет управлять мотором. Что легче? Изучать ESP-NOW или сделать круче на известных вещах, которые потом в другом пригодятся? - Такой выбор пользователей.
 

Ganalooloo

New member
А зачем соединять их в ESP-NOW ? Большинство задач, которые тут пользователи ставят и решают, выполняются через простое вайфай AccessPoint - Client. К тому-же он более удобен, т.к. позволяет еще и мобилой законектиться и ноутом посмотреть что там... Отсюда и отсутствие мало используемой ESP-NOW.
Вот смотрите, даже вы в своем девайсе можете сделать модуль с мотором - АПешкой, а пульт - клиентом. И тогда кроме основного пульта - вы легко можете создать еще один паралельный. Да и просто с мобилки в браузере через инет управлять мотором. Что легче? Изучать ESP-NOW или сделать круче на известных вещах, которые потом в другом пригодятся? - Такой выбор пользователей.
Да я как раз не против! Просто два человека уже посоветовали ESP-NOW, я и пошел в эту сторону!
Если можно сделать просто, то ок, но опять же - есть примеры того о чем Вы говорите, клиент/сервер с передачей данных? Но не так что бы строки URLов таскать туда сюда а передать 1-2 байта (слова) друг другу? Как это сделать?
Я так понимаю чисто физически это 2-ва скрэча (скрипта) которые заливаются в два разных модуля. Выход в инет мне не нужен. Так вот как это сделать ? Простые примеры есть? Я нахожу только какие то навороты типа метеостанций которые передают данные на раутер, оттуда на другую ESP которая передает их на сайт, и я потом смотрю а какая же у меня температура дома, находясь на Тенерифах. Да, занятно, и даже напоминает сериал "Теория большого взрыва",... но не более. Все пытаются выпендрится и показать как они круто данные закинули за бугор... а мне то жалкому нытику всего то надо передать на пол метра 2 байта... и тут у людей ступор. Мож я конечно из пушки по воробьям, но уже объяснил, ESPшка мощьная и не надо говорить что на вафлю отжирается что то. Против ардуины она ее делает в десятки раз даже с нагруженной вафлей. Так что ... покажите мне пожалуйста пример а? Работающий простой пример...
 

gerkimuyda

New member
Мне наверное легче тратить уйму времени на написание всяких вопросов чем пойти и посмотреть примеры (ЧТО Я СДЕЛАЛ В ПЕРВУЮ ОЧЕРЕДЬ!)....
Но вот я задал конкретный вопрос - покажите пример!? .. но неужели не видно по моему описанию в начале, что вопрос не простой? И никто ни разу не дал четкого примера....
Кстати, только что нашел как можно по UDP это сделать.
Столько времени на написание текста, а все ведь было под рукой:
WiFiTelnetToSerial.ino
WiFiClientBasic.ino
WiFiAccessPoint.ino

Разве тут не все, что вам нужно? И создание АП и слушание входящего запроса, и подключение к АП и передача запроса, и даже пример перекидывания данных между UART и TelNet

Все лежало в Примеры - > ESP8266WiFi


Вот последняя версия библиотеки:
https://github.com/esp8266/Arduino/releases/download/2.4.0-rc2/package_esp8266com_index.json

UPD: Тут вот как раз еще один пример есть StreamHttpClient.ino - чтение потока.
 
Последнее редактирование:

gerkimuyda

New member
Посмотрел я на ESP-NOW в примере (для ESP-32): ESP32 Clock Using WiFi, ESP-NOW, & Cellular
И хоть названия библиотеки и функций другие, все их можно найти в SDK в Ардуине тут esp8266/2.4.0-rc2/tools/sdk/include/espnow.h
Но вот взглянув на код Мастера и Слейва, что-то мне кажется, что это не лучшее решение... Сложные поиски слейва, создание кучи АПешек... Зачем? В чем прикол супротив классики?
Или это просто корявая реализация данного автора?
Вот еще один пример GitHub - cho45/esp8266-esp-now-sample
 
Последнее редактирование:

Ganalooloo

New member
Посмотрел я на ESP-NOW в примере (для ESP-32): ESP32 Clock Using WiFi, ESP-NOW, & Cellular
И хоть названия библиотеки и функций другие, все их можно найти в SDK в Ардуине тут esp8266/2.4.0-rc2/tools/sdk/include/espnow.h
Но вот взглянув на код Мастера и Слейва, что-то мне кажется, что это не лучшее решение... Сложные поиски слейва, создание кучи АПешек... Зачем? В чем прикол супротив классики?
Или это просто корявая реализация данного автора?
Вот еще один пример GitHub - cho45/esp8266-esp-now-sample
Я даже не знаю как тогда мне надо задать вопрос что бы меня поняли:)))))))) Уже вроде и так итак пишу и даже прямым текстом и - мне опять советуют порыться в мусоре... Слушайте, ну если нет примеров - ПРОСТЫХ! - ну напишите вы что их нет и что надо искать в других местах и рыться в коде который, судя по названиям, делает абсолютно другое! Ну посмотрите что вы пишете?

"...И хоть названия библиотеки и функций другие..." - ура! ключевое слово - ДРУГИЕ!... и почему то в ESP32. ???
Вот еще:
"Столько времени на написание текста, а все ведь было под рукой:
WiFiTelnetToSerial.ino
WiFiClientBasic.ino
WiFiAccessPoint.ino" - да где тут простые примеры как я просил? Где названия к примеру "ESP server.ino" и "ESP slave.ino" по которым сразу ясно что делает этот скрипт? Мало того - я даже нашел такие! И уже написал, что они даже не компиляться, потому что туда напихали чтение с каких то датчиков, передачу принятых значений в Ватсон ....
"... Но вот взглянув на код Мастера и Слейва..." - вот и я туда смотрел! И что бы понять как это работает надо удалять из кода кучу мусора!
Почему мне никто не ответил короткой фразой? Нет примеров, ищи по сорсам внутри и сам разбирайся!.
Я первый раз сталкиваюсь с девайсом для которого аж целый сайт сделали, но вот для новичков НЕТ никаких простых примеров что бы они могли тупо подключить есп к компу, залить скреч и убедиться что работает (а уж потом разбираться как это работает)

Ну про это я молчу "...и даже пример перекидывания данных между UART и TelNet.." - как это относится к тому о чем я спросил - не знаю. Нахрена мне в чистом поле UART и TelNet? к чему это дополнение?:))))

В общем так - я разберусь и СЮДА же кину работающий пример. То как раз, что я хотел услышать от жителей данного сайта.
Вот более менее пример -
Хотя там управление с телефона, но заменить его на вторую ESP которая будет слать UDP и получать их от робота, думаю не составит труда.
 

gerkimuyda

New member

kab

New member
Слушайте, ну если нет примеров - ПРОСТЫХ! - ну напишите вы что их нет и что надо искать в других местах и рыться в коде который, судя по названиям, делает абсолютно другое!
Вообще-то, любой специалист в своей жизни проходит стадию новичка.
Я сам толкаюсь тут только с сентября месяца. Но уже понял, что оптимальный алгоритм для новичка следующий:
1. Сформулировать для себя и остальных свою задачу. Это Вы сделали.
2. Самостоятельно и/или используя советы с сайта - поискать на сайте/в интернете готовые решения, близкие к Вашей цели. Очень редко везёт так, что находится решение, подходящее Вам один в один. Оптимальнее всего найти решение более, заведомо "включающее" Ваши Нужды. :) Выкидывать (отключать) функциональность обычно легче, чем дописывать чтобы то ни было.
3. Понимаю, сразу вникнуть в чужой текст сложно. Сразу смиритесь, что далеко не всё понятно. Но попытайтесь выделить нужное, отключив лишнее. Естественно, у Вас сразу ничего не заработает. Проблемы возникают совершенно разноплановые, как программные, так и схемотехнические. Но в этом случае, при возникновении конкретных проблем, Вам на сайте помогут с большим удовольствием. Выкладываете свои тексты программ, свои схемы устройств. В таком варианте обсуждение в большинстве своём становится конструктивным. И чаще всего, приводящим к положительным результатам...

@Сергей_Ф - я тут не срываюсь во флуд и оффтоп?:D
 

nikolz

Well-known member
Я пишу в Arduino. В принципе пофиг где писать, просто грузить скреч удобней.

Но складывается ощущение что тут просто никто не пробовал соединять две ESP в режиме ESP-NOW. Ни примеров ни док на этом сайте нет . Это что, какой то секрет большой?
Показать просто пример, без наворотов, в 5 строчек, даже без сериал порта! Не ужели это ппц как сложно? И видимо да, сложно.
Просто здесь никто и никому не обязан ничего, но некоторые любителей халявы так к ней привыкли, что уже считают, что им обязаны ее дать.
---------------------------------------------
У меня например есть два проекта ESPNOW1 и ESPNOW2 а для контроля их работы еще прога на компе. проекты на СИ В основной программе строк по 200.
----------------------------
Но выкладывать нет смысла, так как уровень потребителей халявы очень низкий а запросы у них как у Вас - все обязаны.
 

Ganalooloo

New member
Просто здесь никто и никому не обязан ничего, но некоторые любителей халявы так к ней привыкли, что уже считают, что им обязаны ее дать.
---------------------------------------------
У меня например есть два проекта ESPNOW1 и ESPNOW2 а для контроля их работы еще прога на компе. проекты на СИ В основной программе строк по 200.
----------------------------
Но выкладывать нет смысла, так как уровень потребителей халявы очень низкий а запросы у них как у Вас - все обязаны.
Любителей халявы? А нахрена тогда вообще этот сайт и форум? Задаю вопрос "покажите пример как данные передать и получить?" - и я любитель халявы? Ну тогда тут все такие - но это лично Ваше мнение. Никто не обязан - не отвечай тогда, не лезь в разговор.
 

Ganalooloo

New member
Вообще-то, любой специалист в своей жизни проходит стадию новичка.
Я сам толкаюсь тут только с сентября месяца. Но уже понял, что оптимальный алгоритм для новичка следующий:
1. Сформулировать для себя и остальных свою задачу. Это Вы сделали.
2. Самостоятельно и/или используя советы с сайта - поискать на сайте/в интернете готовые решения, близкие к Вашей цели. Очень редко везёт так, что находится решение, подходящее Вам один в один. Оптимальнее всего найти решение более, заведомо "включающее" Ваши Нужды. :) Выкидывать (отключать) функциональность обычно легче, чем дописывать чтобы то ни было.
3. Понимаю, сразу вникнуть в чужой текст сложно. Сразу смиритесь, что далеко не всё понятно. Но попытайтесь выделить нужное, отключив лишнее. Естественно, у Вас сразу ничего не заработает. Проблемы возникают совершенно разноплановые, как программные, так и схемотехнические. Но в этом случае, при возникновении конкретных проблем, Вам на сайте помогут с большим удовольствием. Выкладываете свои тексты программ, свои схемы устройств. В таком варианте обсуждение в большинстве своём становится конструктивным. И чаще всего, приводящим к положительным результатам...

@Сергей_Ф - я тут не срываюсь во флуд и оффтоп?:D
2. Я ищу решение СВОЕ проблемы САМ. Ни у кого за меня решить не прошу. Спросил про пример, как передавать, рассказали что можно так и эдак, спасибо. Но только рассказали. Примеров рабочих нет. Тут.
3. Понял, вот это по делу.

Теперь оглашаю, нашел решение на UDP - все быстро и достаточно для моих целей. Про протокол в курсе что не стабильный но запрос-ответ и сам организую. Самый прикол что из разных источников в итоге собрал два работающих скрипта, один и правда сервер, другой клиент но общение по UDP. Тексты кодов на 1-2 пейдждауна. Простые и понятные любому новичку который хочет быстро соединить 2 ESP.

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

Но вот то чувак про дребезг меня порадовал:)))) Кондеи у него не при чём:) Мне прям даже ну ооооочень интересно, какой у него то способ?:)
 

nikolz

Well-known member
2. Я ищу решение СВОЕ проблемы САМ. Ни у кого за меня решить не прошу. Спросил про пример, как передавать, рассказали что можно так и эдак, спасибо. Но только рассказали. Примеров рабочих нет. Тут.
3. Понял, вот это по делу.

Теперь оглашаю, нашел решение на UDP - все быстро и достаточно для моих целей. Про протокол в курсе что не стабильный но запрос-ответ и сам организую. Самый прикол что из разных источников в итоге собрал два работающих скрипта, один и правда сервер, другой клиент но общение по UDP. Тексты кодов на 1-2 пейдждауна. Простые и понятные любому новичку который хочет быстро соединить 2 ESP.

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

Но вот то чувак про дребезг меня порадовал:)))) Кондеи у него не при чём:) Мне прям даже ну ооооочень интересно, какой у него то способ?:)
Попробуйте прочитать сначала весь пост.
Вам в начале сказали что есть три решения два на WIFI -это протоколы tCP и UDP и один на ESP-NOW.
Вы агрессивно начали кричать что это х... и зачем какие-то сервера.
Потом начали требовать примеры (именно требовать почитайте ваши посты) и ругать всех кто что -либо советовал.
И в конце-концов нашли пример того, что Вам сказали ранее.
про ESP-NOW Вам было сказано -возьмите документацию SDK там все есть.
Но вместо этого Вы начали требовать чтобы именно на форуме Вам выложили.
Ну как я правильно изложил ход Ваших претензий?
Если бы не ругались а делали то что советовали Вам то все бы нашли быстрее.
----------------------
На форуме никто Вам ничего не должен, сказали бы спасибо за советы, пусть и не исчерпывающие, но давшие Вам новую информацию для направления движения.
 

kab

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

Ganalooloo

New member
Если действительно интересно, могу пояснить - с точки зрения теории. Дребезг - это более высокочастотная составляющая итогового сигнала, чем его "информационная часть". Устройство, режущее часть частотного спектра сигнала (в нашем случае - частоты дребезга) - называют фильтром. Так вот, фильтры бывают аналоговые и цифровые. А конденсатор - простейший пример аналогового решения фильтра (в зависимости, включается ли он параллельно или последовательно нагрузке - это будет НЧ, либо ВЧ-фильтр). Но сейчас народ более разбалован цифровыми решениями. И опять же цифровые фильтры бывают программные и "в железе", т.е. в отдельной микросхеме. Принцип цифрового фильтра очень простой - после прихода фронта (например) импульса в течении времени задержки не реагировать на сигнал совсем (типа ждем, пока дребезг закончится). Естественно, если частоты дребезга и информативных импульсов начинают сближаться - реализацию и настройку фильтра приходится усложнять.
Ну в таком случает зачем было говорить что ёмкость тут не при чем? Я программист уже 30 лет и знаю что "железо" работает намного надежней программных методов. Всю жисть убираю кондеями и прекрасно работает. Пробовал убрать дребезг и программно. Если честно - это не нужно. Ну по крайней мере мне проще поставить ёмкость чем загромождать код. Параллельно той же кнопке сажаешь 0.1мкФ и проблема решена.
 

Ganalooloo

New member
Попробуйте прочитать сначала весь пост.
Вам в начале сказали что есть три решения два на WIFI -это протоколы tCP и UDP и один на ESP-NOW.
Вы агрессивно начали кричать что это х... и зачем какие-то сервера.
Потом начали требовать примеры (именно требовать почитайте ваши посты) и ругать всех кто что -либо советовал.
И в конце-концов нашли пример того, что Вам сказали ранее.
про ESP-NOW Вам было сказано -возьмите документацию SDK там все есть.
Но вместо этого Вы начали требовать чтобы именно на форуме Вам выложили.
Ну как я правильно изложил ход Ваших претензий?
Если бы не ругались а делали то что советовали Вам то все бы нашли быстрее.
----------------------
На форуме никто Вам ничего не должен, сказали бы спасибо за советы, пусть и не исчерпывающие, но давшие Вам новую информацию для направления движения.
 

Вложения

kab

New member
Параллельно той же кнопке сажаешь 0.1мкФ и проблема решена.
В каких-то конкретных случаях задержка, вызванная временем заряда/разряда конденсатора - может стать неприемлемой. Я к тому, что любое решение должно применяться не "огульно", а по "разумению" :)
 

rst

Member
И да, я это написал также не только для Вас, но и для @rst
Вы неправы.
Тот факт, что всякие "радиолюбители" лепят на кнопки кондёры и думают, что это защитит от дребезга - мне прекрасно известен.
Но сами подумайте - как это может защитить? RC-цепочка только сгладит колебания, получаемые от кнопки, но не уберёт ведь их. Какая разница будут это колебания амплитудой от 0 до Ucc или небольшой амплитуды - вокруг порога переключения цифрового элемента.
Можно конечно и грамотно RC-цепочкой давить дребезг, но для этого после неё должен быть триггер Шмидта - тогда это будет работать. Но вешать RC-цепь + триггер Шмидта, когда этот сигнал заходит напрямую в МК и там это легко решается программно без каких-либо затруднений - это совершенно излишние внешние цепи. А если таких кнопок надо несколько? Всё что можно сделать программно в устройстве с МК - должно делаться программно.
К тому-же в случае с RC-цепью, через кнопку проходят токи заряда или разряда кондёра. Импульсные. Они значительно больше чем токи в схеме без кондёра. А контакт кнопки - вещь изнашивающаяся, и чем больше ток замыкания/размыкания через неё - тем быстрее (искрение контактов).
Зачем весь этот гемор если есть МК? Только люди вообще не имеющие понятия о программировании так будут делать.
В нормально реализованной процедуре программного подавления дребезга это можно сделать либо как Вы описали, либо просто опрашивая кнопки с некоей фиксированной частотой с периодом заведомо больше максимального времени дребезжания контактов. Обычно хватает 50Гц.

Этот момент уже многократно обсосан вдоль и поперёк на разных форумах. Но всё равно чайники так и продолжают лепить RC-цепочки на кнопки - это неизлечимо... o_O
 
  • Like
Реакции: =AK=

kab

New member
Да, и кстати: конденсатор - это всё-таки не фильтр. Фильтр - это RC-цепочка.
Знаете, зачастую складывается так, что разные конкретные правила - "что такое хорошо, что такое плохо" - имеют, всё-таки, ограниченную область применения. Я сторонник того, что заниматься техническим творчеством (хобби) надо, ограничивая себя минимумом правил (которые являются незыблемыми для профессионалов). Это круто, весело и доставляет гораздо больше удовольствия :).

Естественно, правил - "не суй пальцы в розетку" и "не подавай высокое напряжение на электролит в неправильной полярности - он взорвётся" - это не касается. Это соблюдать надо...

:DПравда, старые электрики иногда учат молодых: "Прежде чем проверять пальцем, ноль или фаза на проводе, на палец надо поплевать, чтобы контакт был лучше":D Шутка
 
Сверху Снизу