Я купил KNOT и метку TG-BT5-OUT, чтобы попробовать разобраться с BLE и IoT. Моя цель — сделать простой проект, где при обнаружении наклона меткой отправляется HTTP POST. Мне кажется, я наткнулся на ограничение работы BLE, но хочу убедиться, что это не моя ошибка.
Сначала я настроил метку так, чтобы она рекламировалась (advertise) только при обнаружении наклона, а периодические передачи отключил. Но при просмотре отчетов о рекламе на KNOT я не видел все события наклона. Думаю, дело в том, что радио просто не слушает тот канал, на котором в этот момент отправляется реклама, и я пропускаю некоторые пакеты.
Когда я поставил метку на рекламу каждые 3 секунды, то стал получать большинство сообщений, но всё равно терял часть — иногда это единичные пропуски, а иногда могут пройти 15-20 секунд без принятого пакета. По моим оценкам, около 20% рекламных сообщений не доходят. Сила сигнала около -64 дБ при прямой видимости между меткой и KNOT, так что в этом проблема вряд ли. Интервал и окно сканирования стоят по умолчанию — 10 мс.
Есть ли способ улучшить это или просто нужно уменьшать интервал рекламы (что, конечно, увеличит энергопотребление), чтобы компенсировать потерю части сообщений? Полагаю, я не смогу использовать функцию метки, где она отправляет одно сообщение при каждом наклоне, ведь гарантии, что KNOT его примет, нет. Метка посылает только одно рекламное сообщение на событие (было бы здорово, если бы она могла отправлять серию пакетов в течение пары секунд, но не уверен, можно ли это сделать в будущих прошивках).
Поэтому, похоже, мне придется анализировать данные, приходящие с метки, и в своем скрипте решать, считать это наклоном или нет.
Сначала я настроил метку так, чтобы она рекламировалась (advertise) только при обнаружении наклона, а периодические передачи отключил. Но при просмотре отчетов о рекламе на KNOT я не видел все события наклона. Думаю, дело в том, что радио просто не слушает тот канал, на котором в этот момент отправляется реклама, и я пропускаю некоторые пакеты.
Когда я поставил метку на рекламу каждые 3 секунды, то стал получать большинство сообщений, но всё равно терял часть — иногда это единичные пропуски, а иногда могут пройти 15-20 секунд без принятого пакета. По моим оценкам, около 20% рекламных сообщений не доходят. Сила сигнала около -64 дБ при прямой видимости между меткой и KNOT, так что в этом проблема вряд ли. Интервал и окно сканирования стоят по умолчанию — 10 мс.
Есть ли способ улучшить это или просто нужно уменьшать интервал рекламы (что, конечно, увеличит энергопотребление), чтобы компенсировать потерю части сообщений? Полагаю, я не смогу использовать функцию метки, где она отправляет одно сообщение при каждом наклоне, ведь гарантии, что KNOT его примет, нет. Метка посылает только одно рекламное сообщение на событие (было бы здорово, если бы она могла отправлять серию пакетов в течение пары секунд, но не уверен, можно ли это сделать в будущих прошивках).
Поэтому, похоже, мне придется анализировать данные, приходящие с метки, и в своем скрипте решать, считать это наклоном или нет.
