ESP_NOW, передача данных между ESP8266 ( ESP32 )

Без создания WiFi сети.

Создаем свой блок. Вопросы, помощь знатоков.
aidar_i
Полковник
Сообщения: 1816
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 227
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#41

Сообщение aidar_i » 27.08.2020{, 14:36}

CraCk писал(а):
26.08.2020{, 22:52}
Очень интересно увидеть сравнение по дальности ESP_NOW и BLE.
Дальность блютуз маленький.

Там же пишут про ESP_NOW:
Мы протестировали дальность связи между двумя платами, и мы можем получить стабильную связь до 220 метров (приблизительно 722 фута) в открытом поле. В этом эксперименте обе бортовые антенны ESP32 были направлены друг на друга.

Nureke
Рядовой
Сообщения: 39
Зарегистрирован: 15.03.2017{, 05:57}
Репутация: 3
Откуда: Казахстан
Имя: Нурлан

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#42

Сообщение Nureke » 09.12.2020{, 12:00}

Айдар, классный блок получился. Спасибо.
А можно в блоке передатчика настройки SSID и МАК-адреса вынести на вход блока?
ФЛПрог 6 версия.
Заранее спасибо.

aidar_i
Полковник
Сообщения: 1816
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 227
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#43

Сообщение aidar_i » 09.12.2020{, 13:55}

Я пока не могу, может кто сделает?
Последний раз редактировалось aidar_i 12.12.2020{, 01:05}, всего редактировалось 1 раз.

Nureke
Рядовой
Сообщения: 39
Зарегистрирован: 15.03.2017{, 05:57}
Репутация: 3
Откуда: Казахстан
Имя: Нурлан

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#44

Сообщение Nureke » 09.12.2020{, 21:55}

aidar_i писал(а):
09.12.2020{, 13:55}
Я не могу, может кто сделает?
А хотя бы SSID только вынести наружу?

aidar_i
Полковник
Сообщения: 1816
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 227
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#45

Сообщение aidar_i » 11.12.2020{, 22:19}

Nureke писал(а):
09.12.2020{, 21:55}
aidar_i писал(а):
09.12.2020{, 13:55}
Я не могу, может кто сделает?
А хотя бы SSID только вынести наружу?
Пробуйте
Передача данных ESP8266 WiFi_1.flp
(148.41 КБ) 42 скачивания
Отправлено спустя 2 часа 4 минуты 11 секунд:
Вывел MAC адрес, испытайте
Передача данных ESP8266 WiFi_2.flp
(191.18 КБ) 46 скачиваний
В блоке Перевод MAC адреса описание не делал, вставьте отсюда
Перевод MAC адреса строкой в массив byte.
MAC адрес писать слитно. Пример FFFFFFFFFFFF, 78ACC03090D3
Преобразует в массив типа:
byte byteArray[MaxByteArraySize] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
MaxByteArraySize = 6 (для мас адреса).
На вход подавать высокий уровень, в блоке встроен аналог R триггера.

Отпишитесь, я не проверял работоспособность, компилируется.

tornado
Рядовой
Сообщения: 5
Зарегистрирован: 14.04.2020{, 21:17}
Репутация: 0
Имя: Ivan

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#46

Сообщение tornado » 12.12.2020{, 15:50}

Как будет работать ресивер, если его нужно подключить к роутеру вместе с блоки MQTT или MODBUS?

Nureke
Рядовой
Сообщения: 39
Зарегистрирован: 15.03.2017{, 05:57}
Репутация: 3
Откуда: Казахстан
Имя: Нурлан

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#47

Сообщение Nureke » 13.12.2020{, 23:15}

aidar_i, Отписываюсь по результатам. При проверке выяснилось что не работает точка доступа, с помощью которой через веб-морду надо бы вносить мак-адрес и SSID. Также в проверке был использован датчик DHT22 который никак не хотел передавать свои данные.
Анатолий внес коррективы в ваш блок передатчика, за что ему большое спасибо. Также ему пришлось подкорректировать блок точки доступа wifi_ap.
Я как тестировщик произвел все проверки на ESP-01 с датчиком DHT22.
Выкладываю тестовый проверенный проект
ESP01 передатчик V11 успешно.flp
(266.17 КБ) 73 скачивания
Проверки проводил в flprog 7.2.1 , но должно работать и в 6 версии.
Также выкладываю комплект блоков (приемник, передатчик, блок записи мак-адреса)
espnow.ubl
(148.16 КБ) 66 скачиваний
Также к нему выкладываю новый блок включения точки доступа
WIFI_AP_v2_(Code_-_Basic).ubi
(7.93 КБ) 58 скачиваний
Айдар, Анатолий большущее вам спасибо за проделанную работу. :smile9:

DanilaWERT
Сержант
Сообщения: 142
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#48

Сообщение DanilaWERT » 19.01.2021{, 21:27}

aidar_i, Вконец с блоками запутался..Передавать с ESP32 на NodeMCU научился.
Но мне надо чтоб ESP32 передавал данные NodeMCU, NodeMCU передавал дальше через домашний роутер в браузер.
Подскажите какие блоки использовать правильно?
Последний раз редактировалось DanilaWERT 19.01.2021{, 22:48}, всего редактировалось 1 раз.

o615ye161
Рядовой
Сообщения: 98
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 2
Имя: Сергей

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#49

Сообщение o615ye161 » 19.01.2021{, 22:38}

Если кому то интересно или может пригодиться ESP32 толерантна по UART к +5V т.е. не нужно делать преобразование логических уровней на +3.3V! :smile9: https://yadi.sk/i/Eo2Un7uCuPVwGA

aidar_i
Полковник
Сообщения: 1816
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 227
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#50

Сообщение aidar_i » 20.01.2021{, 01:05}

DanilaWERT писал(а):
19.01.2021{, 21:27}
Но мне надо чтоб ESP32 передавал данные NodeMCU, NodeMCU передавал дальше через домашний роутер в браузер.
Подскажите какие блоки использовать правильно?
Посмотрите здесь. Почитайте там о каналах роутера.
и в старом редакторе здесь., модбас можете отключить

DanilaWERT
Сержант
Сообщения: 142
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#51

Сообщение DanilaWERT » 20.01.2021{, 13:06}

aidar_i, спасибо.Получилось :D Но я также все делал как и сейчас,но ничего не работало.А тут с первого раза.Чудеса..
Еще вопросик.А вот если мне например надо больше переменных отправлять,то надо входЫ(выходы) добавлять в редакторе блока?или как то по другому

aidar_i
Полковник
Сообщения: 1816
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 227
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#52

Сообщение aidar_i » 20.01.2021{, 15:10}

Переменные :

В declare:
typedef struct struct_message
{
char a[ buffer ];
int b;
float c;
bool e;

}

В передатчике в loop:
str = (String( data_string ));
str.toCharArray(char_array, str.length() + 1);
strcpy(myData.a, char_array); //string занимает 3 строки кода.
myData.b = data_int ;
myData.c = data_float ;
myData.e = data_bool ;

В приемнике в declare аналогично,
в функциях:
Data_str = String (myData.a);
Data_int = myData.b;
Data_float = myData.c;
Data_bool = myData.e;
Можете добавлять, удалять лишние. Соответственно и входы выходы тоже.

DanilaWERT
Сержант
Сообщения: 142
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#53

Сообщение DanilaWERT » 20.01.2021{, 16:02}

aidar_i, не,сложно.Не осилю.

aidar_i
Полковник
Сообщения: 1816
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 227
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#54

Сообщение aidar_i » 20.01.2021{, 21:34}

Тогда пишите , какие переменные Вам надо.
Попробую обьяснить, чтобы сами могли.

Отправлено спустя 34 минуты 18 секунд:
Снял видео о добавлении еще одной переменной integer.
Запись_2021_01_20_23_58_34_460.rar
(2.03 МБ) 37 скачиваний

DanilaWERT
Сержант
Сообщения: 142
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#55

Сообщение DanilaWERT » 20.01.2021{, 22:42}

aidar_i, Спасибо огромное.С горем пополам и матюками разобрался сам. Только в приемнике пропустил символ в названии выхода и сооьветственно он не работал.Пол дня пытался найти ошибку.Так эти контроллеры долго прошиваются!! Начал смотреть ваше видео и сверяться с собой..тут она и показалась. Чего делаю конечно же не понимаю :D просто копирую.. Одно не получается никак.В скетч не прописывается созданный мной новый выход.Если добавить в ручную,то все работает. Не посмотрите?

Отправлено спустя 56 минут 55 секунд:
Все,починил :D Как всегда невнимательность.Добавил для тренировки еще один int,все работает.

Отправлено спустя 5 минут 35 секунд:
Я может глупость спрошу.Про каналы вайфай..Раз передатчик определяет канал,он не может определить что канал,к которому он успешно подключился - пропал?и выполнить новый поиск.
Вложения
Передача данных ESP32 clientЯЯЯ.flp
(1.3 МБ) 25 скачиваний

aidar_i
Полковник
Сообщения: 1816
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 227
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#56

Сообщение aidar_i » 21.01.2021{, 00:25}

DanilaWERT писал(а):
20.01.2021{, 23:44}
Раз передатчик определяет канал,он не может определить что канал,к которому он успешно подключился - пропал?и выполнить новый поиск.
Код поиска канала стоит в сетап и выполняется при включении или перезагрузке ESP.

DanilaWERT
Сержант
Сообщения: 142
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#57

Сообщение DanilaWERT » 21.01.2021{, 00:35}

aidar_i,
aidar_i писал(а):
21.01.2021{, 00:25}
Код поиска канала стоит в сетап и выполняется при включении или перезагрузке ESP.
так он не может понять что канал утерян?

Отправлено спустя 13 минут 47 секунд:
Сейчас специально пробовал несколько раз перезагружал роутер.А ESPшки не трогал.Канал менялся,но все работает все равно.В роутере стоит АВТО.

aidar_i
Полковник
Сообщения: 1816
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 227
Откуда: Уфа
Имя: Айдар
Контактная информация:

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#58

Сообщение aidar_i » 21.01.2021{, 08:41}

Вы попробуйте в роутере поставить канал не авто, а числом.

DanilaWERT
Сержант
Сообщения: 142
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#59

Сообщение DanilaWERT » 21.01.2021{, 22:41}

aidar_i,
aidar_i писал(а):
21.01.2021{, 08:41}
Вы попробуйте в роутере поставить канал не авто, а числом.
А зачем?У меня почему то и так все работает.
Подключаюсь к роутеру.Передача работает.Смотрю через браузер что приходит на приемник.Открываю в браузере терминал роутера.Смотрю канал.Перезагружаю.Вижу что канал сменился,но через несколько секунд передача вновь работает без перезагрузки контролеров.

Qwert855
Сержант
Сообщения: 110
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 3
Имя: Alex

ESP_NOW, передача данных между ESP8266 ( ESP32 )

#60

Сообщение Qwert855 » 24.02.2021{, 12:17}

Добрый день.
Огромное спасибо за блоки :smile9: .

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

подскажите по блоку двухстороннего обмена есть ли ограничения по ресурсу ESP8266 или самого блока?
а именно - как часто рекомендуется обновлять передачу и сколько примерно переменных типа флоат он пропускает не выводя контроллер из стабильного режима?
планируется объединить данным блоком 3 мак адреса.
Прошу поделиться опытом, есть ли трудности в работе с ESP8266, ошибки в передаче, срывы связи?
Спасибо.

Отправлено спустя 12 минут 18 секунд:
aidar_i,
aidar_i писал(а):
20.01.2021{, 22:08}
Тогда пишите , какие переменные Вам надо.
Попробую обьяснить, чтобы сами могли.

Отправлено спустя 34 минуты 18 секунд:
Снял видео о добавлении еще одной переменной integer.
Запись_2021_01_20_23_58_34_460.rar
можно попросить вас сделать еще один ролик добавления переменных по блоку ESP_NOW EXCHANGE DATA для 2х сторонней связи который идет в новом редакторе 7хх .
Спасибо.

Ответить

Вернуться в «Разработка пользовательских блоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость