Pull to refresh

Comments 8

Почему-то у меня подключенные библиотеки BLE в esp32 занимали половину памяти микроконтроллера. Даже wi-fi меньше потребляет.

 это фактически разные протоколы. Classic Bluetooth представляет собой беспроводной аналог традиционного последовательного соединения. 

Это довольно вредные преувеличения. С одной стороны - любой последовательный протокол, даже и проводной можно представить как последовательный поток байтов. с другой стороны - это пакеты байтов, с нечеткой длиной, но с жестко заданной структурой, заголовком, служебными данными и контрольной суммой. последовательно передаваемые данные (как, скажем uart, так и в общем то и звук, и даже LAN) разбиваются на куски - как было в изначальном BT, так и осталось, и плюс еще куча других профилей. Разные скорости и логика передачи пакетов, скачки по каналам - разные режимы протокола, которые прикручивали постепенно, в рамках развития, где то одни варианты поддерживаются, где то - другие.

 Платформа производит аналитику и предоставляет нам результат. 

далее все это несколько не досказано, что несколько путает и затрудняет понимание происходящего. Tensorflow ведь запущен на смартфоне? ОК, тогда что за аналитика внешняя, это остается за скобками?

Если нужна эта платформа, а интернет только на смартфоне, тогда не проще ли крутить все на esp32 (что уже было сделано) а смартфон использовать только как точку доступа? Без всего описанного тут (хотя в результате вышла хорошая статья ;) . или же еть еще какие то моменты?

Вы правы, это не досказано. Подразумевается, что существует IoT платформа, которая развернута в частном или публичном облаке. Приложение отдает данные по MQTT. Далее, конечно, зависит от конкретики. У меня был проект, где данные о производительности нефтяных скважин собирались с помощью Edge-платформы. Затем данные агрегировали в течение определённого времени и передавали в ML workflows. А логика workflow уже может предупреждать аварийные ситуации, проводить virtual rate estimation, и сравнивать с текущей и так далее.

Стоит отметить, что адвертайзинг в чистом виде позволяет передать всего пару десятков байт. Как правило этого недостаточно, и можно использовать scan-response пакеты. То есть observer может запросить дополнительную инфу и получить еще 20+ байт. Но важно помнить, что некоторые стеки (BlueZ например) не делают различия между адвертайзингом и скан-респонсом если в них используются manufacturer-specific UUID (0xFFFF). В таком случае стек может отдавать только ответ на запрос сканирования.

Другой путь - использовать extended advertising в BLE5.x - грубо говоря на стандартном канале адвертайзинга (37,38,39) передается "указатель" на обычный канал, в котором содержится до 254 байт широковещательной информации. Удобно, но далеко не все это поддерживают.

А для околосенсорных применений можно воспользоваться scheduled advertising и несколько сэкономить батарейку)

А, ну и статья про подробный гайд для начинающих не единственная. Там цикл из 5 статей, который является переводом книги Моххамада Аффане "Intro to Bluetooth Low Energy". Книга кстати очень хорошая и распространяется бесплатно

ESP32 с Bluetooth-стеком nimble поддерживает классическую схему advertising + scan response. Это значит, что можно отправлять базовый рекламный пакет (до 31 байта) и дополнять его ответом на сканирование. Насколько мне известно, ESP32 не поддерживает extended advertising, его стек не реализует передачу за пределами 37, 38, 39 adv. каналов. Scheduled advertising, как я понял, также пока не поддерживается. В Major Feature Support в таблице указано, что сейчас поддерживается, а что в разработке. Для экспериментов я приобрел также nRF52840 Dongle, думаю с ним можно эти фичи протестировать. Сейчас его использую в качестве сниффера BLE в Wireshark

В целом справедливо утверждать, что если вендор заявил поддержку BLE5.x то это не значит, что он поддержал что-то кроме полосы в два мегабита. Очень часто встречаются чипы без банального Coded PHY. У меня сложилось впечатление, что наиболее полная поддержка именно у нордика.

Для сниффинга можно использовать btleplug, удобно пользоваться встроенным в лэптоп BLE. Или bluer-tools если код писать неохота)

Sign up to leave a comment.

Articles