寺庙食堂的数字化改造:用 SOLO 让旧考勤机开口说话——零硬件升级,软件定义一切
一、一座寺庙的食堂管理难题
一座拥有 99个部门、将近千名义工的佛教道场。每天早中晚三餐,食堂门口画风是这样的:
一大群人排队,不管你是综合办还是安保消防处,先到先吃,一拥而上。秩序?不存在的。
管理上有三个核心痛点:
- 用餐秩序混乱:各部门人数不同,但没有任何优先级机制
- 商用餐勤方案太贵:熵基考勤机如果想实现多端管理 + 语音播报,需要升级硬件和购买软件授权,花费不菲
- 人员变动频繁:义工来来去去,手动维护名单?别想了
关键约束:预算几乎为零,必须复用现有硬件。
怎么办?用软件把现有设备的潜力榨干。
二、技术演进:从"极客翻车"到"真香"的迭代之路
第一版:ESP8266 + MP3 模块(翻车现场)
最初的想法很"极客"——搞一块 ESP8266 开发板,接上 MP3 模块,考勤机刷卡 → ESP8266 读取 → 播放预录语音。
听起来很酷对吧?实际跑起来是这样的:
- ESP8266 动不动就断连,稳定性约等于"看心情"
- MP3 模块只能播放预录音频,想换个词?重新录一遍
- 整体维护成本比买商业方案还高
结论:造硬件的思路走不通,得不偿失。
第二版:TTS 音响 + TCP 指令(真香现场)
既然造硬件不行,那就用好现成的。一台 TTS 智能音响,通过 TCP 网络连接,直接发文本过去让它读出来:
- 想说什么就发什么,几百毫秒语音就播出来了
- “请优先用餐”、“请排队,谢谢”、“部门用餐名额已用尽”——全部动态生成
- 稳定运行至今,零故障
核心洞察:与其造硬件,不如用好现成设备 + 写好软件。
三、以前全是跑脚本,现在全是可视化界面
说实话,项目早期的时候,所有操作全是命令行脚本:
- 同步人员?跑一个
python dingtalk_sync.py - 调整部门名额?改配置文件再重启
- 查看打卡记录?翻日志文件
- 测试语音播报?手动发 TCP 指令
你能想象让寺庙的管理人员去命令行里操作吗?反正我是不能。
后来用 TRAE SOLO 一步步改造,现在所有操作都有了可视化界面,连语音播报内容都能在网页上直接改。先看看现在的样子:
这是系统的首页,实时展示当天各餐次的打卡情况,按部门统计优先用餐、普通用餐、名额用尽的人数,还有与昨日的同比数据对比。哪个部门来了多少人,一目了然。
四、系统做了什么?四层联动,软件定义食堂
整个系统由四个层级串联运作:
第一层:数据从哪来?——钉钉通讯录自动同步
每天自动从钉钉拉取净土苑及所有子部门的人员名单,通过手机号反查卡号,写入数据库,同步到考勤机。新增了多少人、更新了多少人、删除了多少人,同步结果页面清清楚楚。
人员变动再频繁也不怕,一键同步搞定。
第二层:硬件怎么用?——复用现有设备,软件赋予智能
熵基 M300Plus 考勤机本来只是个"刷卡器",刷一下卡记录一个号,就这么简单。
但我们通过 pyzk 协议实时读取它的打卡数据,赋予了它智能判定能力;TTS 音响本来只是个"喇叭",我们通过网络指令让文本实时变语音,成了智能播报员。
零硬件升级,两台旧设备就被玩出了新花样。
第三层:逻辑怎么判?——按部门名额实时判定用餐权限
用户刷卡后,系统按以下顺序判定:
- 不在用餐时段? → “未到用餐时间,请等候”
- 不在名单中? → 静默(不播报,避免干扰)
- 优先名额还没用完? → “请优先用餐”
- 普通名额还没用完? → “请排队,谢谢”
- 名额全满了? → “部门用餐名额已用尽”
每餐每人只计一次,重复打卡不重复计数。哪个部门有几个优先名额、几个普通名额,全在页面上配置,改完即生效。
五、连语音都能自定义——这才是真正的好用
这个功能是用户提的需求,也是我觉得最"以人为本"的一个设计。
每个用餐时段的四种语音播报内容,全部可以在页面上直接改:
| 场景 | 默认播报 | 你可以改成 |
|---|---|---|
| 优先用餐 | “请优先用餐” | “师兄请先用餐” |
| 普通用餐 | “请排队,谢谢” | “请依次排队” |
| 名额用尽 | “部门用餐名额已用尽” | “今日名额已满” |
| 非用餐时间 | “未到用餐时间,请等候” | “还没到吃饭时间哦” |
以前想改一句播报词,得改代码重新部署。现在?页面上改个字,点保存,下次刷卡就生效了。
六、TRAE SOLO 帮了我什么?
1. 从单食堂到多食堂架构——30 分钟搞定一天的活
原来系统只支持一个食堂,代码到处硬编码。我告诉 SOLO:“帮我重构为多食堂、多考勤机架构,所有配置从数据库读取,Web 界面可管理。”
SOLO 自动完成了数据库重设计、每台设备独立线程轮询、所有接口支持多食堂参数、还顺手生成了食堂管理和考勤机管理页面。手动做至少一整天,SOLO 大约 30 分钟。
2. 用餐时段可配置化——连语音都给我做成了可配
早餐/午餐/晚餐的时间原来写死在代码里。我告诉 SOLO:“把用餐时段做成数据库配置,Web 页面可以增删改,每个时段的语音内容也要可配。”
SOLO 一步到位:数据库表、管理页面、缓存刷新机制,全生成好了。我只需验收和微调。
七、总结:软件定义,让旧硬件焕发新生
这个项目最核心的价值不是用了什么新技术,而是用软件思维重构了传统硬件的使用方式:
- 熵基考勤机本身只是个"刷卡器",我们用软件赋予了它智能判定能力
- TTS 音响本身只是个"喇叭",我们让它成了智能播报员
- 钉钉通讯录本身只是个"花名册",我们让它成了自动数据源
- 以前全是跑脚本,现在连语音播报词都能在页面上改
不需要升级硬件,不需要购买软件授权,用 Python + 开源协议 + TRAE SOLO,就能让旧设备完成数万元商业方案才能做到的事情。
这才是 AI + 编程带给普通开发者的真正价值——不是替代你思考,而是帮你把想法更快地变成现实。



