孙亮亮
返回 小企业智能化

小企业智能化

小微企业用 Wiegand 读卡器 + ESP32 搭建门禁考勤台账:刷卡上报、后台统计与异常告警

2026年9月28日

ESP32 接 Wiegand 读卡器上报刷卡记录,落库生成考勤台账并微信告警。

小企业智能化门禁考勤ESP32Wiegand

小微企业用 Wiegand 读卡器 + ESP32 搭建门禁考勤台账:刷卡上报、后台统计与异常告警

摘要:用 ESP32 接 Wiegand 26 读卡器读取工牌卡号,经 MQTT 上报到后台落库,自动生成考勤台账并在异常刷卡时微信告警,一套几百元就能落地的轻量门禁考勤方案。

一、场景与架构

小微企业常面临两件事:一是车间/仓库门禁谁进谁出说不清,二是考勤还停留在人工签到或昂贵的人脸机。其实一套 Wiegand 读卡器(几十元)+ ESP32(二十元)+ 一台云服务器,就能把"刷卡—上报—台账—告警"闭环做出来。架构很简单:读卡器吐 Wiegand 时序 → ESP32 解码出卡号 → 通过 MQTT 发到后台 → 后台写库并判断考勤状态 → 异常(非白名单、非工时刷卡)推企业微信。

二、硬件清单

  • ESP32 开发板(带 Wi-Fi,推荐 ESP32-DevKitC)。
  • Wiegand 26 读卡器(常见 13.56MHz IC 卡或 ID 卡读头,D0/D1 两线输出)。
  • 5V 电源、防水接线盒、电磁锁/出门按钮(门禁联动时用)。
  • 一台能跑 MQTT Broker 和 Web 后台的服务器(1 核 1G 足够)。

三、Wiegand 协议解析

Wiegand 用两根数据线 D0、D1,平时高电平。每 bit:D0 拉低表示 0,D1 拉低表示 1,脉冲宽约 50µs,bit 间隔至少 1ms。26 位格式为:1 位偶校验 + 8 位站点码 + 16 位卡号 + 1 位偶校验。实际取中间 16~24 位即可拿到卡号。解码核心是用中断捕获 GPIO 下降沿并按时间差拼位,超过 50ms 无新 bit 认为一帧结束。

四、ESP32 固件要点

用 Arduino 框架,把 D0、D1 配置为 INPUT_PULLUP 并挂中断。维护一个 bit 缓冲,每来一个下降沿根据引脚记录 0/1,用定时器(或 loop 里判断 millis 差值)在静默超时后组帧。示例片段:

volatile uint8_t buf[34]; volatile int cnt=0; unsigned long last=0;
void IRAM_ATTR onD0(){ if(cnt<34) buf[cnt++]=0; last=millis(); }
void IRAM_ATTR onD1(){ if(cnt<34) buf[cnt++]=1; last=millis(); }
// loop: if(cnt>0 && millis()-last>50){ 组帧; 解析卡号; cnt=0; }

得到卡号后用 PubSubClient 连 MQTT,主题 access/scan,payload 含 {"device":"door1","card":"123456","ts":1695000000}。建议给 ESP32 配固定 AP 或 Wi-Fi 断线自动重连,并在 MQTT 里用 Last-Will 标记设备离线。

五、MQTT 上报与后台落库

后台(Node.js/Python 均可)订阅 access/#,收到消息后:先查卡号是否在员工白名单;在则写 attendance 表(员工ID、刷卡时间、设备、方向);不在则写 unknown_card 表并触发告警。用 mosquitto 或 EMQX 作 broker,开启 auth 避免匿名写入。落库表结构至少含索引:卡号、时间,方便按日/月聚合。

六、考勤台账与异常告警

考勤逻辑:以上班 09:00、下班 18:00 为例,首刷记为上班、末刷记为下班,中间为在岗。后台定时(如每天 19:00)跑统计,输出每人出勤/迟到/缺勤日报。异常用企业微信群机器人 webhook 推送:陌生卡号、非工时(如凌晨)刷卡、同一卡号 1 分钟内重复刷,都即时告警并附设备位置。注意隐私合规:只存卡号不采人脸,台账本地留存并做好访问权限。

七、部署注意

  • 读卡器线长别超建议距离(一般 30~50m),超长要加屏蔽和终端电阻,否则误码率高。
  • ESP32 用看门狗定时复位,防止 Wi-Fi 假死。
  • 门禁联动电磁锁务必加出门按钮和断电开锁,符合消防要求,别把人锁在里面。

小结

这条路子的好处是成本极低、协议开放、可自己改逻辑。核心难点在 Wiegand 时序解码的鲁棒性——务必处理好静默超时和帧校验,避免偶发卡号错乱。落库后考勤统计和告警都是标准 CRUD,配合企业微信机器人即可让老板随时收到异常提醒。

本模块其他文章

小微企业工厂能耗远程抄表实战:Modbus/DLT645 电表 + 边缘网关采集 + 峰谷优化看板小微企业自建 MQTT 物联网消息中枢:EMQX 与 Mosquitto 部署、设备认证与主题分层实战小微企业仓库条码出入库实战:ESP32 + 扫码枪 + 轻量 WMS 做库存台账与低库存告警小微企业一体化监控实战:Prometheus + node_exporter + Grafana 监控主机、服务与设备并微信告警小微企业室内定位与电子围栏实战:蓝牙 Beacon + ESP32 网关做资产/人员区域定位与越界告警小微企业设备预测性维护实战:ESP32 + 振动传感器做异常监测、FFT 频谱与企微告警小微企业安灯(Andon)系统实战:ESP32 驱动三色报警灯做产线异常呼叫与看板小微企业设备二维码巡检系统实战:扫码点检、异常上报与维护台账小微企业智能车间照明实战:ESP32 + 继电器 + 人体感应做分区节能灯控门店电子价签与促销信息屏实战:ESP32 + 墨水屏无线刷新、断网缓存与批量管理小微企业用 ESP32 + 称重传感器做原料出入库自动计量:HX711 标定与微信日报实战小微企业本地大模型落地:用 Ollama 在工控机部署 Qwen 做制度问答助手小微企业用 4G DTU 实现异地设备远程采集:无公网 IP 的分散站点组网与告警实战小微企业冷库无线环境监测实战:LoRa 温湿度节点 + 网关上报 + 超限微信告警小微企业用 ThingsBoard 搭建设备物联网平台:MQTT 遥测上报、规则链告警与可视化看板小微企业用 Node-RED 搭建设备联动中台:从 MQTT 到企业微信告警小微企业设备数据采集与看板上墙:用边缘网关把 Modbus PLC 接入 Grafana门店 AI 视觉智能化落地:用摄像头 + 轻量模型做客流统计与区域安防小微企业低成本环境监控实战:ESP32 + 温湿度/水浸传感器 + 微信告警小企业经营异常自动告警实战:企业微信机器人把问题主动推到群里给小企业搭一套本地 AI 知识库客服:用 Ollama + 向量检索把老员工经验变成可查答案用二维码+手机扫码给小企业做轻量库存盘点:零设备成本的智能化落地当老系统没有接口:用 RPA 补上自动化用实时看板取代每天手填的日报
小微企业用 Wiegand 读卡器 + ESP32 搭建门禁考勤台账:刷卡上报、后台统计与异常告警 · 孙亮亮