还在为公司前台那套动辄几万、还动不动就宕机的门禁系统头疼?今天分享一个我用纯 Python + Tkinter 写的企业门禁视频监控系统,单文件、零依赖(可选 OpenCV)、SQLite 持久化,登录、多路监控、员工 / 门禁卡 / 出入记录 / 访客 / 数据统计六大模块开箱即用。文末附完整源码,直接
python main.py跑起来。
一、需求背景:小公司的门禁痛点,谁用谁知道
做过行政或 IT 的朋友大概率都遇到过这些场景:
- 硬件厂商方案贵:一套带视频联动的门禁系统,硬件 + 软件授权 + 年维护,轻松五位数起步,小公司预算直接劝退。
- SaaS 方案不放心:员工人脸、出入记录全在别人服务器上,数据安全和合规性没法交代。
- Excel 手工登记:访客来了手写本子,月底查记录翻到眼花,还经常字迹潦草认不出。
- 监控和门禁是两套系统:摄像头一个软件、刷卡记录一个软件,出了事要两边对时间轴,效率极低。
- 二次开发难:想加个 "今日访客统计"" 部门通行排行 ",厂商要么不支持,要么报价再收一波。
核心诉求其实很朴素:一个能本地部署、数据自己掌控、监控和门禁打通、还能随便改的轻量系统。
于是就有了这个项目 —— 用 Python 标准库 Tkinter 做界面,SQLite 存数据,OpenCV 可选接入真实摄像头,一个.py文件就是完整产品。
二、效果展示:六大模块,界面不输商业软件
1. 登录界面
左右分栏设计,左侧品牌展示区,右侧登录卡片。默认账号admin / 123456,支持 "忘记密码一键重置",再也不怕管理员离职后账号锁死。
2. 实时监控(核心亮点)
- 4 路模拟摄像头同屏:大门 A 区、停车场、电梯口、办公走廊,每路画面独立动画,带时间水印、通道名、REC 录制红点,视觉效果拉满。
- 一键切换真实摄像头:装了
opencv-python后点 "开启本地摄像头",直接调用索引 0 的真实设备,后台线程采集 + 主线程渲染,不卡 UI。 - 门禁闸机远程控制:右侧面板可对大门 A/B 区、车库入口手动开闸 / 关闸,状态实时变色。
- 自动模拟刷卡事件:每 3 秒随机生成一条刷卡记录并写入数据库,右侧实时事件日志用绿 / 黄 / 红三色区分放行、警告、拒绝,演示效果非常直观。
- 全部上线 / 离线:一键模拟摄像头断网场景,画面显示 "⚠ 无视频信号"。
3. 员工管理
工号、姓名、性别、部门、职位、电话、门禁卡、状态全字段管理,支持模糊搜索、新增、编辑、删除,双击行直接弹出编辑窗口。新增员工时自动同步发放门禁卡,省去两步操作。
4. 门禁卡管理
卡号、持卡人、状态、发卡日期、有效期一目了然。支持发放、挂失、恢复、注销四种操作,状态变更即时生效,和员工表双向关联。
5. 出入记录
按姓名 / 卡号关键词 + 进 / 出方向组合筛选,最多展示 500 条。一键导出 CSV(UTF-8 BOM,Excel 打开不乱码),审计、对账、做月报直接用。
6. 访客管理
访客姓名、电话、来访单位、事由、到访 / 离开时间、状态全记录。支持登记、签离、删除,签离时自动写入当前时间,在访 / 已签离状态清晰可辨。
7. 数据统计
顶部 5 张数据卡片:在职员工、门禁卡总数、累计出入记录、今日通行、访客记录。下方近 7 天通行趋势柱状图用原生 Canvas 绘制,每 15 秒自动刷新,不用装 matplotlib。
三、技术亮点(程序员最关心的部分)
表格
| 特性 | 实现方式 |
|---|---|
| 零依赖运行 | 纯 Tkinter + SQLite,不装任何第三方库也能跑模拟版 |
| 真实摄像头 | OpenCV 后台线程采集,转 PPM 格式喂给tk.PhotoImage,跨线程零冲突 |
| 数据持久化 | SQLite 单文件access_control.db,自动建表 + 种子数据 + 版本兼容(旧表缺字段自动重建) |
| 密码安全 | MD5 哈希存储,默认账号强制初始化,兼容任何残留旧库 |
| UI 主题 | 统一配色常量 + ttk clam 主题,卡片式布局,自适应缩放 |
| 资源释放 | 窗口关闭时主动release()摄像头,避免设备占用 |
四、应用场景
- 中小企业本地部署:前台一台电脑跑起来,配合 USB 摄像头就是一套完整门禁监控,数据全在本地。
- 课程设计 / 毕业设计:Python 课设、数据库课设、软件工程大作业的绝佳选题,功能完整、界面美观、有视频有图表,答辩加分项拉满。
- 门禁硬件厂商 Demo:给客户做方案演示时,用这个系统快速搭一个可视化原型,比 PPT 有说服力得多。
- 园区 / 仓库 / 实验室管理:访客登记 + 出入留痕 + 视频联动,满足基本安防审计需求。
- 二次开发底座:代码结构清晰(
LoginWindow/MainApp/ 各Page类),想接人脸识别、刷卡器串口、钉钉 / 企微通知,在对应页面加方法即可。
五、快速开始
# 基础版(模拟摄像头,零依赖) python main.py # 完整版(支持真实摄像头) pip install opencv-python python main.py默认账号:admin/123456
写在最后:这个项目从想法到可运行只用了一个下午,但覆盖了门禁系统 80% 的核心场景。如果你也在找一个轻量、可控、能随便改的门禁方案,或者需要一个完整的 Python GUI 项目练手,欢迎 Star、Fork、二次开发。有任何功能建议或 Bug,评论区见。
Python企业级门禁视频监控系统.zip资源-CSDN下载https://download.csdn.net/download/anananajiushiwo/93282140
更多内容在主页
👇热门内容👇
python使用案例与应用_安城安的博客-CSDN博客
软硬件教学_安城安的博客-CSDN博客
Orbslam3&Vinsfusion_安城安的博客-CSDN博客
网络安全_安城安的博客-CSDN博客
教程_安城安的博客-CSDN博客
python办公自动化_安城安的博客-CSDN博客