ESP_NOW, передача данных между ESP8266 ( ESP32 )
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
У меня всё работает. Главное другие блоки для работы с Wi-Fi не вставлять в проект.
- badr555
- Рядовой
- Сообщения: 17
- Зарегистрирован: 09 май 2022, 12:04
- Откуда: Bytom, Poland
- Имя: Andrey
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
А почему?
А самое главное, что скачанные примеры работают, а как только начинаешь переделывать примеры под свои хотелки всё ломается. и нет корректного описания блоков и их нюансах работы.
А самое главное, что скачанные примеры работают, а как только начинаешь переделывать примеры под свои хотелки всё ломается. и нет корректного описания блоков и их нюансах работы.
-
ecoins
- Администратор
- Сообщения: 4486
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 224 раза
- Поблагодарили: 368 раз
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
Это так. Большинство внешних пользовательских блоков старой разработки не являются универсальными и заточены на конкретную прикладную задачу. Потому и возникают проблемы.badr555 писал(а): 04 дек 2025, 21:11 А почему?
А самое главное, что скачанные примеры работают, а как только начинаешь переделывать примеры под свои хотелки всё ломается. и нет корректного описания блоков и их нюансах работы.
Проверенные блоки внедряются в папки кандидаты . По мере успешного тестирования и использования методы переносятся в основной функционал FLProg.
С уважением ecoins.
Последний раз редактировалось ecoins 14 июн 2026, 10:07, всего редактировалось 1 раз.
-
Fm-Nafing
- Сержант
- Сообщения: 110
- Зарегистрирован: 13 июл 2016, 13:24
- Откуда: Санкт-Петербург
- Имя: Владислав
- Благодарил (а): 2 раза
- Поблагодарили: 14 раз
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
Смею предположить что на размер передаваемого пакета мало кто обращает внимание. Задефайнили и достаточно. Вот и не работает.
Я изменил бы мир. Но Бог не дал исходников.
- belyx
- Сержант
- Сообщения: 259
- Зарегистрирован: 24 июл 2016, 20:38
- Откуда: Витебск Беларусь
- Благодарил (а): 27 раз
- Поблагодарили: 6 раз
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
Если не использую широковещательный режим, а нужно передать 3 приёмникам как писать в параметрах приёмопередатчика MAC адреса приёмников ? через какой разделитель ? или нужно передавать по кольцу,от 1 ко 2,от 2 к 3,от 3 к 4 ?
-
aidar_i
- Полковник
- Сообщения: 3477
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 30 раз
- Поблагодарили: 192 раза
- Контактная информация:
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
Используйте столько блоков передачи сколько приемников, в каждом напишите свой МАК адрес. Не забудьте поставить параметр Номер блока.Каждому можно передавать разные данные.belyx писал(а): 09 фев 2026, 22:09 Если не использую широковещательный режим, а нужно передать 3 приёмникам как писать в параметрах приёмопередатчика MAC адреса приёмников ? через какой разделитель ? или нужно передавать по кольцу,от 1 ко 2,от 2 к 3,от 3 к 4 ?
-
Konstantin81
- Рядовой
- Сообщения: 2
- Зарегистрирован: 24 апр 2025, 09:55
- Имя: Константин
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
Добрый день! Подскажите пожалуйста, в чем может быть проблема? На NodMCU передача принимается, все работает. если заменить в проекте контроллер на плату (ESP07 и ESP12F пробовал) то сигнал не принимается. Сама передача есть, проверял NodMCU. Причем, передача с этих ESP07 и ESP12F работает нормально. Может ли быть проблема в обвязке (если при данной обвязке передача нормально работает, а страдает именно прием)?
-
Konstantin81
- Рядовой
- Сообщения: 2
- Зарегистрирован: 24 апр 2025, 09:55
- Имя: Константин
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
к моему сообщению выше - если в flprog проставить плату NODEMCU, и работать с ESP826612f то все волшебным образом работает, прием в том числе.
Проблема не устранена, но кривой обход найден...
Проблема не устранена, но кривой обход найден...
-
Maloy0103
- Рядовой
- Сообщения: 49
- Зарегистрирован: 27 янв 2020, 22:49
- Имя: Алексей
- Благодарил (а): 1 раз
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
Добрый день. Подскажите, пожалуйста, что делаю не так? На 2 ESP записал скетчи, но связь между ними не работает((
Адреса на устройствах:
Приемник 0xA8, 0x48, 0xFA, 0x53, 0xAF, 0xA4
Передатчик 0xEC, 0xE3, 0x34, 0x9A, 0x14, 0xAC
Пробовал и со стандартным: 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
Не работает....
FLProg 9.7.1
Адреса на устройствах:
Приемник 0xA8, 0x48, 0xFA, 0x53, 0xAF, 0xA4
Передатчик 0xEC, 0xE3, 0x34, 0x9A, 0x14, 0xAC
Пробовал и со стандартным: 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
Не работает....
FLProg 9.7.1
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
sergii2012
- Сержант
- Сообщения: 176
- Зарегистрирован: 07 янв 2019, 16:02
- Имя: Сергей
- Благодарил (а): 8 раз
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
не работает. видимо более новые контроллеры оставили на "потом"
-
aidar_i
- Полковник
- Сообщения: 3477
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 30 раз
- Поблагодарили: 192 раза
- Контактная информация:
Re: ESP_NOW, передача данных между ESP8266 ( ESP32 )
Почитал тут https://docs.espressif.com/projects/esp ... rk/esp_now.
В настоящее время ESP-NOW поддерживает две версии: v1.0 и v2.0. Максимальная длина пакета, поддерживаемая устройствами версии 2.0, составляет 1470 (ESP_NOW_MAX_DATA_LEN_V2) байт, а максимальная длина пакета, поддерживаемая устройствами версии 1.0, — 250 (ESP_NOW_MAX_DATA_LEN) байт.
Устройства версии 2.0 могут принимать пакеты как от устройств версии 2.0, так и от устройств версии 1.0. Устройства версии 1.0, напротив, могут принимать пакеты только от других устройств версии 1.0.
Однако устройства версии 1.0 могут принимать пакеты версии 2.0, если их длина не превышает 250 (ESP_NOW_MAX_IE_DATA_LEN). Если длина пакета превышает это значение, устройства версии 1.0 либо обрезают данные до первых 250 (ESP_NOW_MAX_IE_DATA_LEN) байт, либо полностью игнорируют пакет.
Сам не разбирался.
Вот что выдал ИИ:Говоря простым языком, v1.0 и v2.0 — это две версии протокола ESP-NOW, которые отличаются размером кадра и совместимостью (обратной совместимостью). Если отбросить технические детали, то:
· Устройства v2.0 (новые): Это «большие грузовики». Могут перевозить много данных (до 1470 байт). Они понимают язык как новых, так и старых машин.
· Устройства v1.0 (старые): Это «маленькие тележки». Вмещают только 250 байт. Понимают только язык старых машин (v1.0).
Главный нюанс в вашем тексте (про 250 байт):
Хотя v1.0 официально не понимает v2.0, старые устройства могут принять пакет от нового устройства, если тот не больше 250 байт. Это похоже на то, как если бы «тележка» смогла ухватить маленькую посылку от «грузовика», просто отрезав всё лишнее.
На практике это означает:
1. Чтобы все устройства (и старые, и новые) гарантированно видели друг друга, отправляйте данные размером ≤ 250 байт.
2. Если вы пошлете > 250 байт со v2.0 на v1.0, старый приемник либо обрежет данные (оставив только начало), либо проигнорирует пакет — это зависит от прошивки (версии IDF).
Историческая причина: v1.0 появился на чипах ESP8266 и ранних ESP32, у которых было мало памяти. v2.0 ввели для мощных чипов (ESP32-S3/C3 и новее), чтобы передавать, например, целые картинки или большие массивы данных.
Итоговый совет: Если не знаете версию приемника, держите размер данных до 250 байт — это гарантирует 100% совместимость. Если нужно больше — убедитесь, что оба устройства поддерживают v2.0.
В настоящее время ESP-NOW поддерживает две версии: v1.0 и v2.0. Максимальная длина пакета, поддерживаемая устройствами версии 2.0, составляет 1470 (ESP_NOW_MAX_DATA_LEN_V2) байт, а максимальная длина пакета, поддерживаемая устройствами версии 1.0, — 250 (ESP_NOW_MAX_DATA_LEN) байт.
Устройства версии 2.0 могут принимать пакеты как от устройств версии 2.0, так и от устройств версии 1.0. Устройства версии 1.0, напротив, могут принимать пакеты только от других устройств версии 1.0.
Однако устройства версии 1.0 могут принимать пакеты версии 2.0, если их длина не превышает 250 (ESP_NOW_MAX_IE_DATA_LEN). Если длина пакета превышает это значение, устройства версии 1.0 либо обрезают данные до первых 250 (ESP_NOW_MAX_IE_DATA_LEN) байт, либо полностью игнорируют пакет.
Сам не разбирался.
Вот что выдал ИИ:Говоря простым языком, v1.0 и v2.0 — это две версии протокола ESP-NOW, которые отличаются размером кадра и совместимостью (обратной совместимостью). Если отбросить технические детали, то:
· Устройства v2.0 (новые): Это «большие грузовики». Могут перевозить много данных (до 1470 байт). Они понимают язык как новых, так и старых машин.
· Устройства v1.0 (старые): Это «маленькие тележки». Вмещают только 250 байт. Понимают только язык старых машин (v1.0).
Главный нюанс в вашем тексте (про 250 байт):
Хотя v1.0 официально не понимает v2.0, старые устройства могут принять пакет от нового устройства, если тот не больше 250 байт. Это похоже на то, как если бы «тележка» смогла ухватить маленькую посылку от «грузовика», просто отрезав всё лишнее.
На практике это означает:
1. Чтобы все устройства (и старые, и новые) гарантированно видели друг друга, отправляйте данные размером ≤ 250 байт.
2. Если вы пошлете > 250 байт со v2.0 на v1.0, старый приемник либо обрежет данные (оставив только начало), либо проигнорирует пакет — это зависит от прошивки (версии IDF).
Историческая причина: v1.0 появился на чипах ESP8266 и ранних ESP32, у которых было мало памяти. v2.0 ввели для мощных чипов (ESP32-S3/C3 и новее), чтобы передавать, например, целые картинки или большие массивы данных.
Итоговый совет: Если не знаете версию приемника, держите размер данных до 250 байт — это гарантирует 100% совместимость. Если нужно больше — убедитесь, что оба устройства поддерживают v2.0.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость