[Code with SOLO]从零搭建食堂智能打卡语音播报系统——不升级硬件,用软件定义一切

寺庙食堂的数字化改造:用 SOLO 让旧考勤机开口说话——零硬件升级,软件定义一切

一、一座寺庙的食堂管理难题

一座拥有 99个部门、将近千名义工的佛教道场。每天早中晚三餐,食堂门口画风是这样的:

一大群人排队,不管你是综合办还是安保消防处,先到先吃,一拥而上。秩序?不存在的。

管理上有三个核心痛点:

  1. 用餐秩序混乱:各部门人数不同,但没有任何优先级机制
  2. 商用餐勤方案太贵:熵基考勤机如果想实现多端管理 + 语音播报,需要升级硬件和购买软件授权,花费不菲
  3. 人员变动频繁:义工来来去去,手动维护名单?别想了

关键约束:预算几乎为零,必须复用现有硬件。

怎么办?用软件把现有设备的潜力榨干。


二、技术演进:从"极客翻车"到"真香"的迭代之路

第一版: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 + 编程带给普通开发者的真正价值——不是替代你思考,而是帮你把想法更快地变成现实。