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

Поделиться
HTML-код
  • Опубликовано: 26 окт 2024

Комментарии • 37

  • @Rejgan318
    @Rejgan318 2 года назад +8

    Как всегда - контент хотя и сложный, но уникальный, практичный и очень интересный.

  • @Melhisedek618
    @Melhisedek618 5 месяцев назад

    Прекрасная подача информации. Спасибо. Хотелось бы больше видео о ble, ble proxy, ble mesh

  • @ZedusUA
    @ZedusUA 2 года назад +3

    о, как раз в прошлом видео просил рассказать о BLE, и тут такой подарок. Спасибо, великолепный контент.

  • @Электроникавдеталях-з7д

    Спасибо, интересно. Как раз присматриваюсь к теме BLE для ESP. Конечно использовать ей с батарейным питанием это нонсенс, но далеко не всегда нужно супернизкое энергопотребление.

    • @alexmorozov73
      @alexmorozov73  2 года назад +6

      У моей подруги в музее в фондах, в которых не может быть розеток 220В, стоит мой датчик на ESP8266 с BME280, который раз в час проводит измерение температуры и влажности и раз в 4 часа сбрасывает все это в облако Гугла. И это используя wifi, причем фонд в подвале и уровень сигнала -70-90 дБ, так еще и гугл-облако тот еще тормоз. И на 18650 на 3 Ач 40+ дней пашет, так что не так все и плохо. Там время передачи можно оценить в 30-60 сек. при энергопотреблении в 100-200 мА, а тут 0.5 сек. при 85 мА...

    • @Электроникавдеталях-з7д
      @Электроникавдеталях-з7д 2 года назад +1

      @@alexmorozov73 В случае wifi я бы сказал ваш результат очень хорош, но BLE гораздо особенно в режиме Advertising обычно используют в совсем другого рода приложениях, когда от одной батарейки устройство должно работать по нескольку лет... Есть модули на Нордиках от FANSTEL, которые на 800 метров типа должны бить по заявлениям производителя. В условиях прямой видимости проверял их 400 метровые - на 250 метров пробивали. Через двойной металлический забор из профнастила метров 15 получалось...

    • @Nidvoraich
      @Nidvoraich 2 года назад

      @@alexmorozov73 симпатичная?

  • @umbrellamax
    @umbrellamax 2 года назад +1

    Круто !!! спасибо отличный маиериал

  • @acerrusm
    @acerrusm 2 года назад +2

    Я так понимаю, ESP-C3 это достойная альтернатива nRf52840 и CC2530 для "экономной" передачи данных. Круто, еще и mesh сеть можно создать

    • @alexmorozov73
      @alexmorozov73  2 года назад +4

      Нет, ESP слишком прожорливы по сравнению с конкурентами. Но если использовать именно ESP, то самая экономичная передача данных может быть обеспечена с помощью BLE. И WiFi как бонус не стоит со счетов сбрасывать.

    • @acerrusm
      @acerrusm 2 года назад +1

      @@alexmorozov73 рано обрадовался :(

    • @ugene4063
      @ugene4063 2 года назад +1

      Не думаю. Проц конечно хорош, но потребление все же больше, чем у нордика и ти

  • @androidpasha
    @androidpasha 2 года назад +3

    Спасибо. Было очень интересно. Измерить бы сколько мс плата активна что б понимать энергопотребление.
    Алекс, вы не сталкивались с аудиокодеком opus? Все что нашел по его компиляции для esp делается под linux. Забавы раде хочеться слелать wi-fi прослушку с передачей в телеграмм.

    • @alexmorozov73
      @alexmorozov73  2 года назад +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 этим заморачивались.

  • @euspro
    @euspro 2 года назад +2

    Спасибо. А когда пакеты пропадают они есть в статусе не принятых? Можно ли в не принятых пакетах проверить мак?

    • @alexmorozov73
      @alexmorozov73  2 года назад +2

      Пакеты скорее всего отбрасываются по причине несовпадения CRC. Так что никаких "непринятых" быть не может.
      Статусы "неполный" и "обрезанный" вероятно используются для BLE5 пакетов длиной полезной нагрузки более 39 байт, которые передаются на нескольких каналах и еще не приняты полностью.

    • @AntonMalygin
      @AntonMalygin 2 года назад +1

      Т.е. получается нет необходимости вставлять в пакет передачи свою посчитанную CRC для оценки пришел нормальный пакет или битый?

    • @alexmorozov73
      @alexmorozov73  2 года назад +3

      CRC добавлять не нужно. Но вот какие-нибудь уникальные признаки (сигнатуру или серийник отправителя) можно и добавить, чтобы отличать нужные пакеты не только по их длине.

  • @Imstalcon
    @Imstalcon 2 года назад +1

    Узкое место стабилизатор напряжения, у стандартного ams1117 3.3v большое собственное потребление... есть лучше ht7333, но нет их в готовом решении только самому паять. Посмотрел сейчас у ams ток покоя 5 мА, а у ht7333 ток покоя 4 мкА

  • @EdGull
    @EdGull 2 года назад

    Спасибо

  • @DM_TECH_CHAT
    @DM_TECH_CHAT 2 года назад

    Что поправить в коде чтобы пакеты отправлялись только по протоколу ble legacy . Спасибо за ваше время.

  • @olexangrstetsiuk3092
    @olexangrstetsiuk3092 2 года назад +1

    Наверное прошивка ,,по воздуху,,(для обновления) уже не возможна, слишком громоздкий код для bluetooth + wi fi...

    • @alexmorozov73
      @alexmorozov73  2 года назад +3

      Можно или подобрать правильную партишн схему, или создать новую.
      Minimal SPIFFS (1.9MB with OTA/190KB SPIFFS) выглядит подходяще, если не нужно много SPIFFS.
      А так можно попробовать напрямую с BT контроллером взаимодействовать вообще без BT стека, это самый компактный вариант, точно раза в 3-4 будет меньше, и даже пример этого есть в SDK.

  • @Nidvoraich
    @Nidvoraich 2 года назад

    Есть пульт люстры, который вроде бы общается с ней через BLE.
    Можно ли на esp намутить перехват нажатий кнопок, чтоб потом управлять люстрой с есп?
    Или там просто так пакеты не посмотреть?
    Спасибо заранее за ответы)

    • @alexmorozov73
      @alexmorozov73  2 года назад +2

      Пульты вроде бы привязаны, т.е. ведут адресную передачу. Но скорее всего кто-нибудь уже сделал перехват команд, так что ищите в Инете. Тогда на ESP32/C3 можно сделать имитатор BLE пульта.

    • @Nidvoraich
      @Nidvoraich 2 года назад

      @@alexmorozov73 спасибо, да. Пульт в начале привязывается.
      Я просто ролик Ваш увидел - решил уточнить, может это где-то на поверхности.
      Хочу через ЕСП сделать имитатор рассвета, утром по будильнику. Пока идея - просто купить второй пульт и ЕСПшкой тыкать на нём кнопки :)

  • @sergeibezrukov2773
    @sergeibezrukov2773 2 года назад

    Как с вами связаться?

  • @DM_TECH_CHAT
    @DM_TECH_CHAT 2 года назад

    куда вставить esp_ble_gap_set_device_name() в коде чтобы назначить имя ?

    • @alexmorozov73
      @alexmorozov73  2 года назад +2

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

  • @ugene4063
    @ugene4063 2 года назад

    Передача адвертайзингом чревата потерей данных поскольку не все пакеты могут быть захвачены системой и контроллировать это никак не возможно. При приеме обычного пакета мы хотябы можем задействовать уведомления и дать понять серверу принят пакет или нет.

    • @alexmorozov73
      @alexmorozov73  2 года назад +1

      Ролики лучше со звуком все-таки смотреть, там картинки неинтересные :)

    • @ugene4063
      @ugene4063 2 года назад

      @@alexmorozov73 в ide 2.0 пример скомпиллился и залился без проблем. в 1.8 не получилось. Скорее всего заморочка в пасах библиотек не вижу смысла заморачиваться.

  • @ololololo-l5z
    @ololololo-l5z 7 месяцев назад

    знания сила - адруина магила. ну нахер эти AVR, после того как узнал про ESP я больше к AVR не притронусь(максимум на GPIO хаб тянет)

    • @alexmorozov73
      @alexmorozov73  7 месяцев назад +1

      Ну это некорректное утверждение. Для разных задач годятся разные МК. А учиться лучше именно на простом, никто же вместо букваря "Войну и мир" не предлагает.
      Так то и любые ESP по сравнению с любым процессором от современного телефона бледно смотрятся...

  • @vakdread
    @vakdread 2 месяца назад

    как бы эту ble передачу правильно поймать в Home Assistant как сенсор?