家庭助理(Home Assistant)已知道哪些垃圾桶该收运,能提示今晚倒垃圾桶并发送提醒,却不知我是否真的把桶搬出。多数人会设手机提醒或正常记住,我却不同,把六个带无线电的垃圾桶当消遣。几年前我贴蓝牙标签用户外代理判断桶在否,结果电池耗快读数飘移。后来Air标签(AirTags)让我对超宽带无线电(UWB)感兴趣,近几周这成了垃圾桶测距(BinRange)固定无线电锚点。
正文
Home Assistant 已经知道哪些垃圾桶(国际读者叫 trash cans)该收了。它能提醒我今晚该倒垃圾,在仪表盘上显示对应颜色,发通知给我。但它没法告诉我,我到底有没有去倒。
我猜大多数人会在手机上设个循环提醒。正如我妻子肯定会说,我不是大多数人。有些人像正常人一样记得去倒垃圾。我很清楚自己这是过度工程化,但也离正常太远,搞六个带无线电的垃圾桶反倒成了晚间乐事 ;)
几年前我有过个主意,在带轮垃圾桶上贴便宜的蓝牙标签,用室外蓝牙代理判断它们在不在这。结果很闹心。电池掉电快,距离读数飘,那个安装位置的代理还不靠谱。我只想知道垃圾桶动没动,结果多半是多了个要摆弄的玩具。
真正让我对超宽带无线电(UWB)感兴趣的是 AirTag。多读了些原理后,倒垃圾点子又回来了。几周下来它成了 BinRange:一个固定无线电锚点、六个小电池标签,加上一套 Home Assistant 配置,把垃圾桶出现的位置和它该不该倒结合起来。还有打印外壳、自定义固件和无线更新。这算是对「你倒垃圾没?」相当隆重的回答 :D
搭建时我大量用了 Codex。中途 Astra 可用了,我很想看看它表现如何。和 AI 协作最让我喜欢的是,能多快把一个想法落地、对结果反应、给反馈、再试新东西。这方面别的文章细说。现在,回到垃圾桶。

喏,几个垃圾桶。挺美吧?
六个垃圾桶,几套日程
我们家有一个一般垃圾筒、一个厨余堆肥筒、一个园林垃圾筒、两个回收筒和一个玻璃筒。六筒。一栋房子。它们收垃圾的日子还不一样。幸亏 Home Assistant 的 Waste Collection Schedule 集成会爬市政日程,跟踪该倒什么,不然理清楚本身就是个活儿。
用便宜蓝牙标签时,估距离是靠 RSSI(接收信号强度指示):测收到信号多强,猜标签多远。问题是信号强度取决于太多别的东西。墙、停着的车、反射、天线朝向,还有无线电和天线之间的差异,全影响它。甚至电池电压都可能影响某些硬件的发射功率。信号弱可能是桶移远了,也可能是中间挡了东西。拿它估距离非常不准,这就解释了我最初那套为何那么烦。
UWB 有意思在它测的是无线电信号在设备间穿行的时间,由此得距离,不必从信号强度猜。当然它还是得让信号穿过环境。换种无线电又不会让停着的车消失。
我还拐去想了阵学术问题:要加几个锚点才能多维度感知。想知方向加距离?还是精确位置,平面上三角定位要几个固定参考点?这活儿根本不值当,但岔念头就岔了。
对垃圾桶,我只用知道每个是不是从平时存放处移得够远,算「外出」。一个锚点就够测试了。我用了十米边界:刷新读数时,界内是「在家」,超出是「外出」。这因安装而异,但意味着我能从一块供电板起步,不必把花园变定位测试场。
两块板子和一次户外散步
头回实验用两块 Makerfabs ESP32-WROVER/DW3000 板子,都 USB 供电。在玩 Home Assistant 前,我想先看它们测距离。本地网页视图让我能分开它们、看变化,不用扯根 USB 线连着。

其中一块开发板,实验用的 DW3000 型号。硬件参考见项目文档。
天线朝向影响大得吓人。约十米处,板子从平放到竖起,那次测试观测成功率从 37% 升到 100%。慢点的无线电设置加长前导码,也在初始快设置挣扎时管用。这些是在照最初结果设计前有用的发现。
第一次用卷尺校准,看报告距离和测量差不到两厘米,我彻底惊了。俩小板子交换无线电信号,和卷尺能吻合到这地步。
后来记录的测试里,测距 10.1 米平均读约 10.09 米,标准差三厘米。对只需认桶离开存放处的项目挺鼓舞。不到两厘米是初次校准见的,不是每个标签、朝向或户外位置都保这精度。
户外散步更说明问题。读数到约三十米可靠,再远时断时续。最远记录 37.28 米,还有间隔。车能完全挡住路径。开阔地竖拿板子、把小标签贴桶沿下,显然会是不同测试。

双板步行测试,确立了有用起点,但不代表装好的桶的覆盖。记录见项目 findings。
锚点通过 MQTT 发读数,Home Assistant 给每个标签发现独立设备。我考虑过 ESPHome 组件,但对想要的安排没啥加分。没有额外 BinRange 服务器或云服务,无线电能在 Home Assistant 或 MQTT 断了时继续测距。
小到能上桶的东西
开发板证了链路有用。我不想每个桶挂一块,还附带电池和临时盒。桶端硬件得是个小的自含圆饼。
我琢磨过定制标签和商业标签,关键是我能否跑自己固件、用自己的锚点。小 UWB 标签不自动兼容另一 UWB 产品。最后买的成品标签是 KKM K4W,带 nRF52833 处理器、DW3110 无线电和 LIS3DH 加速度计。用可换 CR2477 纽扣电池(顺便说,这电池够肥!以前没见过,厚实)。
两块 Makerfabs 板含运 123.64 美元。十个样品标签每个 25 美元,加烧录夹具和运又 330 美元。那是当时实验花费,不是当前购物单或六桶套件成本。我估计还是别算回本周期了。
供应商说标签能跑我固件,给了接烧录点的夹具。我更在意他们供的硬件、以及烧录权限没被锁死。他们现成软件功能我都不关心。电池寿命的说法对我没意义,反正何时睡、啥唤醒由我定。
我熟 nRF52,用了多年,回溯到 rlab 时期。它们是很棒的低功耗微处理机,大半辈子嗜睡。调度和中断聪明点,小电池能撑好几年。这比自带固件干啥有意思多了。
我用闲置 Nesso 设备当烧录探针接 pogo 针夹具。从开发标签起,再一个个装成品:烧录、定身份、配对、贴标、分给桶、装回。涉及好几种身份,包括打印标、芯片身份和无线电用的地址。
旁注:标签外壳印了貌似唯一序列号,QR 码含这些号。估计在供应商库存固件里有用。我找不到和内置 MAC 之类的关联,对我基本无用。可惜了——比如要是无线电 MAC 就好了。


桶上标签特写。能看到多肥,电池大!不过正好塞桶沿下,雨基本淋不着。
厂把加速度计中断输出接了 nRF 的 GPIO,极有用。意味着 nRF 能睡很久,睡时不发无线电,物理事件才醒。安稳后回偶尔签到,UWB 无线电在尝试间睡。固件默认静止十分钟;我后经 Home Assistant 控制改安装群为三十分钟,移动报告仍五秒。
这应免得反复报桶还原地。实际买多少寿命还要测。我在收电压和活动信息,但短期平缓电压迹给不出月年可靠估计。我肯定没兴趣用电池大半寿命光报自己电压。那价值低 ;)
不拆桶更新六个
标签一装,每次改软件就拆开上夹具太烦。锚点现能经蓝牙给配对标签发签名固件更新。旧应用保留可回滚,仅当标签跑确切预期镜像并自证健康才报成功。
测试迭代这类事是 AI 另一妙用。Codex 帮我生成模拟一堆测试条件和失败模式,再走通,让空中部署固件尽量安全。我测了损坏镜像、中断传输、选掉电点、看门狗恢复。也测了锚点不在时:标签需无无线电回覆自证健康,不能因连不上锚点就弃可用固件。
从一标签到多标签冒出另类问题。蓝牙库一记录按同时连接数而非配对设备数定大小。加新标签可能失败,尽管密钥已存。修了后新物理标签能配对而不清旧的。六桶比一个听话演示标签更考软件。
我后来无线更新了装好的锚点和全六标签,没重配对也没拿夹具。挺满意。不过早先连接尝试要重试,所以还要更多证据才敢说全程可靠无人管。烧录探针仍是救急路。
盒子搞了好几回
锚点要外壳,自成一迷你项目。起先 OpenSCAD 设计带螺丝。首次试装不错,但小螺母螺栓、PLA 公差、板子还能响,组装比想烦。
我要全打印 PLA 无螺丝壳:板子用锥形定位针、打印弹簧压下、盖子扣住。针簧行了。盖子能到处晃。
内唇改了贴合。深卡扣改了保持,但还易拽掉。把卡扣深到和壁同深像自然下一步,结果插时两根本根都断了。那版特能变成两截破塑料。
更好改动是令底盖壁重叠、用几个浅卡扣。定位针和通风口微调后,壳好好持卡子、关得牢。我很满意,大概说明那时我已拽掉多少盖。


无螺丝壳,从打印网格渲染。色和面饰是示意。可从 MakerWorld 打;设计文件和失败尝试史在 GitHub。
和 Codex 那快速循环对壳特乐:改设计、检视、打印。仍得拿起成品看盖掉没。几何检查能定两形该合;但不告诉卡扣被推入时活不活。
锚点现挂墙,打印壳在大户外电工盒内,旁接电源件。那又下了次 Amazon 单。相关的是:
- 透明盖户外电工盒,标 IP67、8.7×6.7×4.3 英寸(£27.99)。
- DIN 装 12V DC 电源(£11.09)。
- DC 转 USB-C PD 模块,把 12V 变 USB-C 电。
- A 型 RCBO,标 10A、30mA 漏保(£14.00)。
- 三米 2.5mm² 双芯护套线(£11.99)。
- 直角 USB-C 供电尾线,25cm 引线。只一要,但六只装(£5.99)。
那小 USB-C PD 模块挺酷少有。吃 12V 给 USB-C PD。看来我会再订。
那是我单上价,非当前报价。防水盒、电源、USB-C 模块、保护、线、USB 线,就为提醒倒垃圾。我知道。
六桶全装标签。那会儿我还挺乐观全搞定。

锚点挂墙装好。打印板壳在大壳内。安装照见项目页。
提醒和通知
Waste Collection Schedule 集成该记大功。爬市政日程省我维护多个循环日期、记哪组合该倒。BinRange 加桶的物理信息,Home Assistant 把俩合起。
普通仪表盘显下次收集、紧凑桶态、要处理的。距离和无线电诊断有单独视窗。我爱看技术细节,但查明天桶不该非得解无线电迹。
提醒按相关桶归一条消息:收集前晚 6pm、9pm,若仍妥妥「在家」则明早 6am 终提醒。次日 6pm 提醒把还「外出」的桶拿回。自动化记自己尝试,重跑不一直发同消息。
读不到不该控诉谁忘桶。同样,普通拿回提醒只知排了收集、桶还外。不知收垃圾的清没清。

Home Assistant 让拿些桶出去的通知。
我也想要桶刚清掉的消息。明显诱惑是看移动、时刻、收集日程就叫够。回看一收集,显示当标签白天大半不报时这些线索多立不住。唤醒计数器能告有活动,但告不了谁动的、为啥。
标签已有加速度计,我加了更准线索。相对校准直立位,持续超九十度倾记 tipping 事件。标签在接收间隙留事件,下次达锚点报其龄。Home Assistant 可把「外出」应倒桶近期 tip 当已清假设。
首自动化每五秒查待定 tip。对一周几次的事过头了,改 MQTT 事件流加计时器,仅待 deadline 时跑。合格桶归组六十秒,存状态防重、助 HA 重启恢复。日程提醒仍是兜底。

Home Assistant 通知桶已清可拿回。
首次生产测试
9月28日我有个园林收集能细看。桶约早7:05动,不久过十米界。报告随后在离开时停。约10:25重现时,带约9:27存的 tip,然后回「在家」区安稳。
标签侦到留了 tip。离开返回可见。但 tip 到 HA 收时约老 58 分钟,超自动化 30 分接受限。「刚清」消息没发。别的桶一直报,间隙锚点也没 MQTT 败。那标签在收集位收不到,我仍无确解。
那有效矫正我乐观。无线电能出可信测、标签能侦 tip、仪表盘能看对,手机仍漏清通知。查真收集给我更好待办单。
它也改了我想怎么显静默桶。原「外出」读旧变「未知」。那谨慎,但看桶离、路沿失联后,用「未知」换「外出」不咋有用。
现活配置记观测离开为「假定外出」,过失联或 HA 重启也记。接收健康单显。界内新读才回「在家」。若最后见「在家」然后静,变「未知」,因没见离。拿回提醒可用假定外出;拿出提醒仍要桶「在家」新证。
那让显示更近我真知。

等更多垃圾日
BinRange 装好用了。(打这我意识到,把这本通用的工具窄化进这坑了🤔)
仍有平常观察:各存放和收集位覆盖、几完整周期发对通知、数周电池表现、mount 和外壳户外顶不顶。还要更新稳连不重试。我不是真为别人消费建这,但有人启发想试或改这,欢迎(或他们机器人朋友)。
仓库有固件、壳文件、测据、HA 例,想看可去。这是我的爱好项目,还在探户外表现。
当然,见了 UWB 能耐,我想能否把标签放猫项圈、屋周四锚点绘猫位。能厘米级猫追踪吗?没测,桶已示威环境和覆盖多要紧。但我很痒。
大多数人可能就找猫去。
评论
社区普遍调侃用 UWB 标签追踪垃圾桶属过度工程,主张以摄像头、日历提醒或既有智能家居视觉方案替代;少数人则欣赏项目并补充 UWB 定位技术细节,另有读者玩笑称标签恐随垃圾车被一并收走。
认为用摄像头或视觉语言模型更省心
- 多名用户指出,已有监控摄像头配合图像识别或 LLM 可直接判断垃圾桶状态,免去标签电池与维护,有人用颜色算法或 Home Assistant 模型插件实现零电池方案。(较多人) > 若已有朝门的摄像头,直接喂图问“垃圾桶拿出来没”就行(@qurren)
认为简单日程或低功耗替代即可
- 读者认为按固定收垃圾时间设日历提醒已足够;也有人提议用金属胶带通电路、蓝牙信标等更廉价省电手段,无需复杂 UWB 系统。(较多人) > 直接设个日历闹钟提醒自己收桶就行,按表办事不难(@hk1337)
对增加电池维护负担表示抗拒
- 家中已布设大量需定期更换电池的传感器,用户普遍不愿再添电池设备,倾向有线供电或零维护设计。(较多人) > 我最怕的就是往家里加更多要换电池的东西,到处都是门窗传感器电池(@walrus01)
认为项目有趣并分享 UWB 经验
- 个别读者惊叹 UWB 标签价格已足够便宜,并回忆曾将 UWB 用于列车定位的实践,认为技术本身有探索价值。(少数人) > 二〇一九年我在纽约地铁线做超宽带定位,雪天信号反射最麻烦(@georgemcbay)
有价值的补充
- UWB 系统在实际轨道应用中采用三维坐标与连续位置采样消除歧义,厚雪天气多径效应会严重干扰测距(@georgemcbay 经验)。
- 若改为测量位置而非距离,UWB 标签可记录日常活动(如开冰箱、睡眠)以监测健康,已有相关研究(@rapjr9)。
- 蓝牙低功耗近版本已内置类 UWB 的厘米级定位且功耗极低,可能比专用标签更适合家庭(@fennecbutt)。