BLE Advertising как средство передачи данных

  Переглядів 5,393

Alex Morozov

Alex Morozov

2 роки тому

Пример использования технологии BLE Advertising для передачи данных без установления соединения при минимальном энергопотреблении для ESP-C3.
Код примеров из видео: github.com/MoonFox2006/AdvBLE
Документация на SDK BLE GAP: docs.espressif.com/projects/e...

КОМЕНТАРІ: 35
@Rejgan318
@Rejgan318 2 роки тому
Как всегда - контент хотя и сложный, но уникальный, практичный и очень интересный.
@ZedusUA
@ZedusUA 2 роки тому
о, как раз в прошлом видео просил рассказать о BLE, и тут такой подарок. Спасибо, великолепный контент.
@umbrellamax
@umbrellamax 2 роки тому
Круто !!! спасибо отличный маиериал
@EdGull
@EdGull 2 роки тому
Спасибо
@user-en9sm7ed9g
@user-en9sm7ed9g 2 роки тому
Спасибо, интересно. Как раз присматриваюсь к теме BLE для ESP. Конечно использовать ей с батарейным питанием это нонсенс, но далеко не всегда нужно супернизкое энергопотребление.
@alexmorozov73
@alexmorozov73 2 роки тому
У моей подруги в музее в фондах, в которых не может быть розеток 220В, стоит мой датчик на ESP8266 с BME280, который раз в час проводит измерение температуры и влажности и раз в 4 часа сбрасывает все это в облако Гугла. И это используя wifi, причем фонд в подвале и уровень сигнала -70-90 дБ, так еще и гугл-облако тот еще тормоз. И на 18650 на 3 Ач 40+ дней пашет, так что не так все и плохо. Там время передачи можно оценить в 30-60 сек. при энергопотреблении в 100-200 мА, а тут 0.5 сек. при 85 мА...
@user-en9sm7ed9g
@user-en9sm7ed9g 2 роки тому
@@alexmorozov73 В случае wifi я бы сказал ваш результат очень хорош, но BLE гораздо особенно в режиме Advertising обычно используют в совсем другого рода приложениях, когда от одной батарейки устройство должно работать по нескольку лет... Есть модули на Нордиках от FANSTEL, которые на 800 метров типа должны бить по заявлениям производителя. В условиях прямой видимости проверял их 400 метровые - на 250 метров пробивали. Через двойной металлический забор из профнастила метров 15 получалось...
@Nidvoraich
@Nidvoraich 2 роки тому
@@alexmorozov73 симпатичная?
@acerrusm
@acerrusm 2 роки тому
Я так понимаю, ESP-C3 это достойная альтернатива nRf52840 и CC2530 для "экономной" передачи данных. Круто, еще и mesh сеть можно создать
@alexmorozov73
@alexmorozov73 2 роки тому
Нет, ESP слишком прожорливы по сравнению с конкурентами. Но если использовать именно ESP, то самая экономичная передача данных может быть обеспечена с помощью BLE. И WiFi как бонус не стоит со счетов сбрасывать.
@acerrusm
@acerrusm 2 роки тому
@@alexmorozov73 рано обрадовался :(
@ugene4063
@ugene4063 2 роки тому
Не думаю. Проц конечно хорош, но потребление все же больше, чем у нордика и ти
@androidpasha
@androidpasha 2 роки тому
Спасибо. Было очень интересно. Измерить бы сколько мс плата активна что б понимать энергопотребление. Алекс, вы не сталкивались с аудиокодеком opus? Все что нашел по его компиляции для esp делается под linux. Забавы раде хочеться слелать wi-fi прослушку с передачей в телеграмм.
@alexmorozov73
@alexmorozov73 2 роки тому
Конкретно код под видео имеет следующие тайминги: общее время работы скетча около 1600 мс. (первый запуск около 1000 мс., потребление около 20 мА), непосредственно время передачи около 500 мс. (80+ мА). С аудиокодеком не сталкивался, но многое, что делают в linux, под окнами можно сделать в wsl. Поддержка Arduino собрана не с самыми оптимальными параметрами SDK, как минимум неплохо было бы не считать MD5 прошивки при выходе из глубокого сна, на это судя по всему в том числе уходит немало времени. И мощность BT уже не настроить, она тоже при сборке SDK выставляется (вопрос что там выбрано сейчас...).
@androidpasha
@androidpasha 2 роки тому
@@alexmorozov73 Спасибо за ответ. Да, намудрил эспресив. 1,5 сек очень много. Никаких батареек не хватит. Wifi, как я понимаю, вашу дверь не пробивает? Отправка на тот же народный мониторинг с измерениями занимает от 0,27 сек по wifi, в среднем 1сек (зависит от времени ответа сервера, замер времени делаю по millis). На домашний сервер полагаю ещё быстрее будет. Внешнюю антенну не рассматривали? Из опыта, батареек ААА хватает на 1200-2500 отправок в телеграмм (время пробуждения около 4х секунд). Алекс, возможно глупый к вам вопрос, но все же, в esp8266 счётчик милис через какое время после выхода из сна начинает считать?
@alexmorozov73
@alexmorozov73 2 роки тому
Как код ядра стартует, так миллис и сбрасывается. Т.е. практически сразу. Это у ESP32 происходит еще калибровка RTC кварца, вряд ли у ESP8266 этим заморачивались.
@DM_TECH_CHAT
@DM_TECH_CHAT 2 роки тому
Что поправить в коде чтобы пакеты отправлялись только по протоколу ble legacy . Спасибо за ваше время.
@Imstalcon
@Imstalcon Рік тому
Узкое место стабилизатор напряжения, у стандартного ams1117 3.3v большое собственное потребление... есть лучше ht7333, но нет их в готовом решении только самому паять. Посмотрел сейчас у ams ток покоя 5 мА, а у ht7333 ток покоя 4 мкА
@Nidvoraich
@Nidvoraich 2 роки тому
Есть пульт люстры, который вроде бы общается с ней через BLE. Можно ли на esp намутить перехват нажатий кнопок, чтоб потом управлять люстрой с есп? Или там просто так пакеты не посмотреть? Спасибо заранее за ответы)
@alexmorozov73
@alexmorozov73 2 роки тому
Пульты вроде бы привязаны, т.е. ведут адресную передачу. Но скорее всего кто-нибудь уже сделал перехват команд, так что ищите в Инете. Тогда на ESP32/C3 можно сделать имитатор BLE пульта.
@Nidvoraich
@Nidvoraich 2 роки тому
@@alexmorozov73 спасибо, да. Пульт в начале привязывается. Я просто ролик Ваш увидел - решил уточнить, может это где-то на поверхности. Хочу через ЕСП сделать имитатор рассвета, утром по будильнику. Пока идея - просто купить второй пульт и ЕСПшкой тыкать на нём кнопки :)
@euspro
@euspro 2 роки тому
Спасибо. А когда пакеты пропадают они есть в статусе не принятых? Можно ли в не принятых пакетах проверить мак?
@alexmorozov73
@alexmorozov73 2 роки тому
Пакеты скорее всего отбрасываются по причине несовпадения CRC. Так что никаких "непринятых" быть не может. Статусы "неполный" и "обрезанный" вероятно используются для BLE5 пакетов длиной полезной нагрузки более 39 байт, которые передаются на нескольких каналах и еще не приняты полностью.
@AntonMalygin
@AntonMalygin 2 роки тому
Т.е. получается нет необходимости вставлять в пакет передачи свою посчитанную CRC для оценки пришел нормальный пакет или битый?
@alexmorozov73
@alexmorozov73 2 роки тому
CRC добавлять не нужно. Но вот какие-нибудь уникальные признаки (сигнатуру или серийник отправителя) можно и добавить, чтобы отличать нужные пакеты не только по их длине.
@sergeibezrukov2773
@sergeibezrukov2773 2 роки тому
Как с вами связаться?
@DM_TECH_CHAT
@DM_TECH_CHAT 2 роки тому
куда вставить esp_ble_gap_set_device_name() в коде чтобы назначить имя ?
@alexmorozov73
@alexmorozov73 2 роки тому
Куда угодно, все равно ничего не изменится, никакого обмена данными не происходит. Надо в рекламный пакет добавлять поле имени. Ищите в Инете формат рекламного пакета.
@olexangrstetsiuk3092
@olexangrstetsiuk3092 2 роки тому
Наверное прошивка ,,по воздуху,,(для обновления) уже не возможна, слишком громоздкий код для bluetooth + wi fi...
@alexmorozov73
@alexmorozov73 2 роки тому
Можно или подобрать правильную партишн схему, или создать новую. Minimal SPIFFS (1.9MB with OTA/190KB SPIFFS) выглядит подходяще, если не нужно много SPIFFS. А так можно попробовать напрямую с BT контроллером взаимодействовать вообще без BT стека, это самый компактный вариант, точно раза в 3-4 будет меньше, и даже пример этого есть в SDK.
@logic4519
@logic4519 Місяць тому
знания сила - адруина магила. ну нахер эти AVR, после того как узнал про ESP я больше к AVR не притронусь(максимум на GPIO хаб тянет)
@alexmorozov73
@alexmorozov73 Місяць тому
Ну это некорректное утверждение. Для разных задач годятся разные МК. А учиться лучше именно на простом, никто же вместо букваря "Войну и мир" не предлагает. Так то и любые ESP по сравнению с любым процессором от современного телефона бледно смотрятся...
@ugene4063
@ugene4063 2 роки тому
Передача адвертайзингом чревата потерей данных поскольку не все пакеты могут быть захвачены системой и контроллировать это никак не возможно. При приеме обычного пакета мы хотябы можем задействовать уведомления и дать понять серверу принят пакет или нет.
@alexmorozov73
@alexmorozov73 2 роки тому
Ролики лучше со звуком все-таки смотреть, там картинки неинтересные :)
@ugene4063
@ugene4063 2 роки тому
@@alexmorozov73 в ide 2.0 пример скомпиллился и залился без проблем. в 1.8 не получилось. Скорее всего заморочка в пасах библиотек не вижу смысла заморачиваться.
ESP-C3 как видовое разнообразие серии ESP
22:23
Завтра в школу с... | Шоу-квиз «Вопросики»
00:28
Телеканал СОЛНЦЕ
Переглядів 4,1 млн
Помилка,  яку зробило військове керівництво 🙄
01:00
Радіо Байрактар
Переглядів 354 тис.
Спектакль для окупантів та ждунів 🤯
00:47
Радіо Байрактар
Переглядів 542 тис.
Платы LuatOS ESP32C3
29:40
Alex Morozov
Переглядів 23 тис.
Zephyr 101 - Creating a BLE Service
29:40
Circuit Dojo
Переглядів 1,1 тис.
Master BLE Basics in Just 10 Minutes: The Ultimate Guide!
9:15
Novel Bits
Переглядів 86 тис.
Отладка ESP32 в PlatformIO
26:48
Alex Morozov
Переглядів 21 тис.
Первые продажи Ryzen на Ozon и первый возврат! 😱
13:17
Герасимов Live
Переглядів 27 тис.