用 5 美元的 ESP32 和无服务器数据库搭建占用传感器

一名学生用 5 美元的 ESP32 微控制器和蓝牙低功耗信标搭建占用传感器,引发了关于 DIY 硬件可靠性、供电设计以及如何把项目做成成品而不只是裸开发板的广泛讨论。评论者比较了不同 ESP32 变体、电源和深度睡眠策略,建议了 LoRa、mmWave、摄像头或 ESPHome、Home Assistant 等现成框架作为替代,并讨论了何时适合定制 PCB 或 ASIC。许多人也对通过 BLE 追踪手机,尤其是在公共空间或商业用途中的隐私与伦理提出担忧,强调了 MAC 随机化、指纹识别研究,以及被动设备感知缺乏明确规则的问题。

硬件可靠性与供电

  • 有多篇报告称,只要供电得当,ESP32 和 Raspberry Pi 板子可以连续数月非常可靠。
  • 许多人怀疑不稳定源于电源噪声,而不是电流不足:WiFi/BLE 的电流尖峰会导致短暂压降。
  • 建议:在 3.3V 电源轨上加大容量、低 ESR 电容,使用短且高质量或官方电源和 USB 线,并避免廉价的无名板子。
  • 也有人提到 Pi 上的 SD 卡故障;缓解办法包括使用带 tmpfs/显式提交的 Alpine Linux 或只读根文件系统。

BLE 存在检测行为

  • 设备可能一直“活着”,但会从 WiFi 上掉线;建议加入可见状态指示,并进行激进的重连或直接完整重启。
  • 在 RF 环境繁忙、网络很多的情况下,WiFi/BLE 协议栈卡死的概率可能更高。
  • Apple 设备在某些设置未开启时常常不会出现在扫描中;这会降低基于 BLE 的人群感知覆盖率。

隐私、伦理与追踪

  • 讨论了 MAC 地址随机化及其局限。它会让把信标关联到个人更困难,但并非不可能,尤其是在 RF 指纹识别和基于应用的信标追踪场景下。
  • 有人指出,蓝牙/位置追踪 SDK 已经存在一个“西部荒野”式的产业,而执法机构也在使用这类数据。
  • 对于大学项目,有人建议咨询人类受试者/IRB 流程以及校园隐私政策。
  • 个人行为差异很大:有人为了可穿戴设备始终开启蓝牙,也有人为了隐私和电池续航而关闭它。

算法与软件栈

  • 建议使用固定大小的基数估计器来统计唯一设备数量,而不是存储所有 ID。
  • 其他人提出使用基于 TTL 的映射(看到后刷新,过期后清理),并避免在微控制器上进行动态分配。
  • ESP32 上的 Rust 支持已有改进(尤其是 RISC‑V C3),但在 Linux 上交叉编译并处理 BlueZ/DBus 会很痛苦;有人提到在 Pi 上用 Python/Home Assistant 或简单的 shell 脚本更容易。
  • 对于许多用例,ESPHome、Home Assistant 和 MicroPython 可以省去大部分自定义固件。

替代感知方法与应用

  • 其他感知思路包括:摄像头、mmWave/UWB 雷达、24 GHz 雷达、麦克风、WiFi RSSI、自行车尾部雷达用于交通、TPMS 用于校园占用,以及车辆/场馆人群分析。
  • 市面上已有基于 BLE 的占用产品;它们表示信标数量与占用人数相关,但需要针对场地进行校准,而且随机化 MAC 会让停留时间估计不可靠。

产品化与外壳

  • “成品”设备有很多选择:项目盒、通用外壳、M5Stack/基于 ESP 的盒装模块、现成传感器、3D 打印或激光切割外壳。
  • 关于使用 ESP32 模块、超低价 MCU 甚至定制 ASIC 的争论很多;大多数人认为,对于低到中等规模的产量,ESP32 模块实用且在商业 IoT 中被广泛使用。