Автор сделал BinRange: UWB-метки на шести мусорных баках и Home Assistant
Home Assistant у автора уже знает, какие баки пора выставлять: через интеграцию Waste Collection Schedule он получает расписания вывоза от местного совета, напоминает о «мусорной ночи» и подсвечивает нужные цвета на панели. Но он не может узнать главное: вынес ли хозяин баки на самом деле. Автор признаёт, что можно было бы просто поставить напоминание в телефоне, и называет проект «ужасно переусложнённым». Так появился BinRange: стационарный радиоякорь, шесть маленьких батарейных меток и настройка в Home Assistant, которая сопоставляет, где баки видели, с тем, когда их пора выставлять. Есть напечатанный корпус, собственная прошивка и беспроводные обновления.
Баков шесть, и все в одном доме: общие отходы, пищевые отходы, садовые отходы, два для вторсырья и один для стекла; расписания у них разные. Много лет назад автор уже пробовал дешёвые Bluetooth-метки и внешний Bluetooth-прокси, но батарейки быстро садились, показания близости «гуляли», а прокси в той установке работал ненадёжно. Дело в том, что расстояние там оценивалось по RSSI (индикатор уровня принятого сигнала), а уровень сигнала зависит не только от расстояния: стены, припаркованные машины, отражения, ориентация антенны, различия радиомодулей. UWB (сверхширокополосная радиосвязь) вместо этого измеряет время прохождения радиосигнала между устройствами, поэтому расстояние не приходится угадывать по силе сигнала. Препятствия при этом никуда не деваются: как пишет автор, другое радио не заставляет припаркованные машины исчезнуть. К UWB его привели AirTag.
Для задачи достаточно знать, ушёл ли бак достаточно далеко от обычного места хранения. Автор взял границу в десять метров: ближе, «Дома», дальше, «Вне дома», если есть свежее показание. Это особенность его установки. Хватило одного якоря.
Первый эксперимент, две платы Makerfabs ESP32-WROVER/DW3000 с питанием по USB и локальным веб-интерфейсом. Ориентация антенны оказалась важной: на расстоянии около десяти метров переход от плоского положения плат к вертикальному поднял наблюдаемую долю успешных измерений с 37% до 100% (в этом тесте). Медленный радиорежим с более длинной преамбулой тоже сработал там, где быстрый начальный режим не справлялся. При первой калибровке рулеткой показания отличались от измеренного менее чем на два сантиметра, но автор оговаривает, что это результат именно первой калибровки, а не обещание такой точности для любой метки, ориентации и места на улице. В более позднем записанном тесте при реальном расстоянии 10,1 м среднее показание составило около 10,09 м, стандартное отклонение, три сантиметра. На прогулке по улице показания были надёжны примерно до тридцати метров, дальше, с перебоями; самое дальнее показание, 37,28 м, с пропусками. Машина могла полностью перекрыть канал. Якорь публикует показания по MQTT, а Home Assistant обнаруживает отдельное устройство для каждой метки. Отдельного сервера BinRange или облака нет, и радиомодули продолжают измерять расстояние, даже когда Home Assistant или MQTT недоступны.
Для баков нужны были маленькие автономные «шайбы». Автору было важно, чтобы на метки можно было поставить собственную прошивку и использовать их со своим якорем. Он купил упакованные метки KKM K4W: процессор nRF52833, радио DW3110, акселерометр LIS3DH, съёмные батарейки CR2477. Две платы Makerfabs обошлись в 123,64 доллара США с доставкой; десять пробных меток по 25 долларов, программатор-приспособление и доставка, ещё 330 долларов. Автор подчёркивает: это стоимость тогдашнего эксперимента, а не текущий список покупок и не цена готового набора на шесть баков, и сам не хочет считать срок окупаемости. Производитель подключил прерывание акселерометра к выводу GPIO процессора nRF, поэтому метка может очень долго спать без радиообмена и просыпаться от физического события. В покое она изредка выходит на связь, а UWB-радио между попытками спит. Заводской интервал в покое, десять минут; автор перевёл установленные метки на тридцать минут через элементы управления в Home Assistant, сохранив отчёты раз в пять секунд при движении. Сколько жизни это даёт батарейке, он ещё не измерил: короткая и почти плоская кривая напряжения не позволяет оценить срок в месяцах или годах.
Чтобы не разбирать установленные метки каждый раз при смене прошивки, якорь теперь доставляет подписанные обновления прошивки по Bluetooth. Предыдущее приложение сохраняется для отката, а об успехе сообщается только когда метка запустила именно ожидаемый образ и подтвердила собственную исправность. Автор тестировал повреждённые образы, прерванные передачи, выбранные моменты потери питания и восстановление по сторожевому таймеру, а также ситуацию, когда якоря нет рядом: метка должна подтвердить исправность без ответа по радио и не бросать рабочую прошивку. Для генерации и имитации условий тестов и сбоев он активно пользовался Codex. На переходе от одной метки к нескольким нашлась ошибка: запись в Bluetooth-библиотеке была рассчитана на число одновременных соединений, а не на число спаренных устройств, из-за чего добавление ещё одной метки могло не удаться, хотя ключи сохранились. После исправления новая метка стала спариваться без сброса прежних. Автор уже обновил по воздуху установленный якорь и все шесть меток без повторного спаривания и программатора, но часть прежних попыток подключения требовала повторов, поэтому он хочет больше доказательств, прежде чем называть процесс надёжным без присмотра. Программатор остаётся запасным путём. Доступный текст обрывается на разделе о корпусе якоря, который, по словам автора, потребовал нескольких попыток.
Ключевые факты
- BinRange: один стационарный UWB-якорь, шесть батарейных меток на мусорных баках и Home Assistant, который сверяет положение баков с расписанием вывоза.
- В тесте переход от плоского положения плат к вертикальному при расстоянии около десяти метров поднял долю успешных измерений с 37% до 100%; в более позднем тесте при 10,1 м среднее показание составило около 10,09 м, стандартное отклонение, 3 см.
- В уличном тесте с отладочными платами показания были надёжны до примерно тридцати метров, самое дальнее, 37,28 м, с пропусками; границей «Дома/Вне дома» выбраны десять метров.
- Эксперимент стоил 123,64 доллара США за две платы Makerfabs плюс 330 долларов за десять меток по 25 долларов, программатор и доставку; автор не считает это ценой готового набора на шесть баков.
- Метки KKM K4W с собственной прошивкой: в покое выходят на связь раз в тридцать минут (заводское значение, десять), при движении, раз в пять секунд; срок жизни батарейки пока не измерен. Обновления прошивки по Bluetooth подписаны и с откатом.
Почему это важно
Это нишевый инженерный проект одного человека, а не новость отрасли, но в нём разобрана практическая разница между двумя способами оценки расстояния. Bluetooth-метки с RSSI зависят от стен, машин, отражений и ориентации антенны, поэтому у автора они давали нестабильные показания. UWB измеряет время прохождения сигнала, и в его тестах это дало сантиметровую точность на открытом пространстве, хотя препятствия по-прежнему мешают. Отдельно показательно, как автор использует Codex: для генерации и имитации условий тестов и сбоев при обновлении прошивки по воздуху.
Кому это важно
Владельцам умного дома на Home Assistant, любителям встраиваемой электроники и тем, кто делает свои метки и датчики на nRF52 и UWB-модулях. Полезно и тем, кто разочаровался в Bluetooth-метках из-за прыгающих показаний и быстрой разрядки.
Как это применить
Автор описывает свою схему: якорь публикует показания по MQTT, Home Assistant создаёт отдельное устройство для каждой метки, а граница «дома» задаётся порогом в десять метров при свежем показании. Среди практических выводов из текста: проверять ориентацию антенны (вертикальное положение плат резко повысило долю успешных измерений), пробовать более медленный радиорежим с длинной преамбулой, заранее выяснять, можно ли ставить на купленные UWB-метки собственную прошивку, и использовать прерывание акселерометра для пробуждения процессора. Код, прошивка и схемы в доступном тексте не опубликованы.
Можно ли доверять
Это личный отчёт автора о собственной установке, независимой проверки нет. Автор сам оговаривает пределы результатов: точность менее двух сантиметров относится к первой калибровке, а не ко всем меткам и положениям; затраты, стоимость эксперимента, а не цена набора; срок работы батарейки не измерен; надёжность обновлений без присмотра пока не доказана. Доступный текст обрывается на разделе о корпусе якоря, поэтому итоговые выводы и остальные разделы не охвачены.
Риски и подводные камни
Автор называет проект сознательно избыточным: для той же задачи хватило бы напоминания в телефоне. Дальность и стабильность зависят от окружения: в уличном тесте машина могла полностью перекрыть канал, а метка под ободом бака будет работать иначе, чем плата, поднятая вручную. Небольшие UWB-метки не обязательно совместимы с чужими изделиями, а доступ к программированию нужно проверять заранее. Беспроводные обновления у автора пока требовали повторов при части подключений, и запасным путём остаётся программатор. Оценка срока жизни батарейки CR2477 при тридцатиминутном интервале ещё не сделана.