第 128 期边缘 AIESP32非商用许可
痛点其实很日常:你想知道这个月哪天用水突然翻倍、想知道出门这几天有没有漏水、想给家里的能耗做个长期曲线,但表盘在楼道的水表箱里,读数只有抄表员上门那一刻才存在。换成智能表?要报装、要停水停电、要走物业流程,很多房子根本批不下来。于是一个折中思路就有了——表不动,只给它加一双眼睛。
一、它到底是做什么的
项目叫 jomjol/AI-on-the-edge-device,是一套跑在 ESP32 上的 C++ 固件。README 开头那句话把它概括得很准,原文是:
Easy to use device for connecting "old" measuring units (water, power, gas, ...) to the digital world
它的工作流也很朴素,README 原文这样描述:设备按设定的间隔给表盘拍一张照,从图像里裁出若干感兴趣区域(ROI),再把这些小图送进人工智能模型,最后得到表盘的数字读数。拿到读数之后有三条出路:发给 MQTT broker、写进 InfluxDB、或者通过 REST API 对外提供。
值得注意的是「边缘」这两个字不是噱头:拍照、对齐、裁 ROI、跑 TFLite 模型,全过程都在那块几厘米见方的 ESP32 上完成,不需要联网、不需要调云 API、没有月费,表盘照片也永远不会离开你家。
README 列出的能力清单大致是这些:
- TFLite 集成,并且带一层易用封装,不用自己从零接 TensorFlow Lite for Microcontrollers;
- 图像内处理:特征检测、对齐、ROI 裁剪,都在设备端完成;
- 体积与成本极低,README 自述整机约 3 x 4.5 x 2 cm³,不到 10 欧;
- 自带摄像头和补光灯,应对表盘照明不足;
- 网页管理界面,配置与查看全在浏览器里;
- 支持 OTA,之后升级固件不用再插线;
- 完整接入 Home Assistant,同时支持 InfluxDB 1 和 2、MQTT、REST API。
二、怎么用:先刷一次固件,之后全在网页里
硬件部分需要自备:一块带摄像头且被支持的 ESP32 开发板(具体型号要查官方文档的 Hardware Compatibility 页面),加一张 microSD 卡。外壳要自己解决——README 直接给了水表、电表、燃气表、纯 ESP32-CAM 外壳以及顶盖天线架的Thingiverse 与 Printables 链接,也就是说3D 打印外壳是这个项目的标准动作,不是可选项。
烧录固件这一步,README 的原话是:
Initially, you will have to flash the ESP32 via a USB connection. Later updates are possible directly over the air (OTA using Wi-Fi).
它给了三条路径,第一条是官方推荐:
| 方式 | README 原文 | 适用 |
| Web Installer and Console | a browser-based tool to flash the ESP32 and extract the log over USB | 推荐,浏览器里点几下即可 |
| Flash Tool from Espressif | 乐鑫官方图形化烧录工具 | 习惯官方工具链的 |
| ESPtool (command-line tool) | 命令行烧录 | 需要脚本化/批量刷机的 |
SD 卡这块有个容易踩的细节。README 说固件装好之后 SD 卡可以自动配置,但前提是原话:
the SD card must be FAT formatted (which is the default on a new SD card)
也就是说新卡直接用没问题,但如果你手边是一张被格式化成 exFAT 或 NTFS 的旧卡,就得先重新格式化成 FAT。之后的工作流基本都在网页界面里完成:设一张参考图,在参考图上框出每个数字位的 ROI,调补光,配 MQTT 或 InfluxDB 的地址,然后等它按间隔出数。
需要说明:本文未做实机安装验证,以上步骤均为 README 原文转述,实际操作请以官方文档为准。
三、优点:省钱、不动表、数据在自己手里
- 完全本地:不上云、不调 API、没有订阅费,表盘照片不出家门,隐私面很小;
- 不动计量装置:只是在表盘外面加一个摄像头,不涉及拆表、改管道、动封印,这是它能落地的前提;
- 生态接得顺:Home Assistant 一等公民,同时给 MQTT、InfluxDB 1/2 和 REST API 四条出口,数据进 Grafana 做长期曲线非常自然;
- 成本极低:一块 ESP32-CAM 加一张 SD 卡,README 自述整机成本不到 10 欧;
- 后续维护轻:首次 USB 刷机之后就可以走 OTA,不用每次爬到水表箱边上插线;
- 社区配件现成:外壳模型、改造方案、排障经验都能在社区里找到现成的。
四、缺点:许可证这条最硬,其次是硬件门槛
先说最不能绕开的一条。这个仓库根目录放的不是常见的 LICENSE,而是英式拼写的 Licence.md,标题是 Dual Use License for AI-on-the-Edge Device,版本 1.0,日期 2025 年 1 月 5 日。核心条款如下:
- §1.1 私人使用:允许为私人、非商业目的免费使用、修改和分发;
- §1.2 商业使用:任何商业场景——包括销售、出租、作为服务提供、或集成进商业产品——都需要另行取得商业许可;
- §2 衍生版本义务:修改版必须保留原许可与出处链接,并明确标注这是修改版,不得让人以为它出自原作者;
- §4 贡献条款:你贡献的代码和功能,可能被用于商业版本,且不向你支付报酬。这一条对想贡献代码的人尤其要看清楚;
- §5.2 使用禁区:由于图像处理依赖神经网络,结果可能因训练数据而出现错误或意外输出,因此明令不得用于安全相关系统或对可靠性要求高的系统。
剩下的坑,基本都来自「它是个硬件项目」这件事本身:
- 不是装软件,是做东西:要买对型号的板子、要打印或自制外壳、要调镜头对焦和补光、要在参考图上一个一个框 ROI。有人专门为这件事重做了一个可调 X/Z 轴、带对焦工具和柔光罩的外壳(#4056),足见这一步有多劝退;
- 配置体验不佳:#3898 和 #3943 说的是同一件事——你在改配置的时候,识别流程并不会暂停,于是不断弹出对齐错误,配置做不下去,用户希望能暂停一轮识别;
- 性能天花板真实存在:#2847 有用户反馈刚重启时网页界面要十分钟才渲染出来,建议把计算甩给外部服务器,作者把这个请求明确标记为不在项目范围内;
- 稳定性有雷:#4043 是一个开放的 bug,用户升级后每次重启都必须断电才能恢复,日志里是摄像头初始化失败;同一份日志里还能看到网页界面版本与固件版本不匹配的告警,以及读数出现负速率报错;
- 长期运行的损耗:#3732 有用户反馈设备 7×24 不停拍照,用了约一年半就换了一块板,他提议加夜间模式和度假模式来降低拍摄频率,这个请求至今还开着;
- 有些表型不支持:#1936 针对的是那种会在多个显示模式之间自动轮换的数码表,从 2023 年提出到现在仍在讨论;
- 不是官方计量依据:许可 §5.2 已经写明不能用于高可靠性场景,读数可以拿来看趋势和报警,别拿去当结算凭证。
五、最终效果:从月度账单变成分钟级数据
装上并且调稳之后,你会得到的是一条连续的数据流:每几分钟一个读数点,直接落进 Home Assistant 或者 InfluxDB。这样一来,漏水能在当天而不是下个月被发现,出门忘关水龙头可以设自动化报警,长期曲线能看出季节变化和异常尖峰。这是「换智能表」之外的另一条路,成本差了两个数量级。
谁适合:
- 家里还是机械表,且不方便或不愿意换表的人;
- 已经在玩 Home Assistant / MQTT / Grafana,缺的只是数据源的人;
- 愿意折腾硬件、有 3D 打印机或能找到打印服务的人;
- 纯个人自用,不涉及任何商业场景的人。
谁不适合:
- 想拿它做产品、接项目、做成收费服务的人——许可不允许;
- 想要开箱即用、不想动烙铁和打印机的人;
- 表盘是那种轮换显示多屏的数码表;
- 指望读数作为正式计量或结算依据的场景——许可里明令禁止。
下期预告:同样是「把物理世界数字化」这条线,下一篇做自建环境监测与能耗统计方案的横向对比,讲清传感器选型、数据落地方式和许可证差异。
