智能黑客空间电子签到系统 - Arduino Mega 与 RFID 实现
组件与物料清单
| 组件 | 数量 |
|---|---|
| Arduino Mega 2560 | 1 |
| MFRC522 RFID 读卡模块 (13.56MHz) | 1 |
| LED | 2 |
| 轻触开关 | 2 |
| 电阻 | 4 |
项目背景
台北黑客空间常面临一个问题:大家不知道空间是否开放。规则是:有钥匙会员在场时,任何人可入内。但没人知道当下是否有人。
解决方案:利用台北通用的 EasyCard (13.56MHz RFID 卡) 构建电子签到系统,实时在网站显示在场人员。
系统架构
- Arduino Mega + RC522 读取 EasyCard UID
- 两个按钮区分"签到/签退"
- LED 提供视觉反馈
- Node.js 服务器通过串口通信,管理数据库并提供 API/实时推送
- 网站前端显示签到状态
RFID 电路
RC522 通过 SPI 接口连接 Mega:
- SDA(SS) → Pin 53
- SCK → Pin 52
- MOSI → Pin 51
- MISO → Pin 50
- GND → GND
- RST → 任意数字引脚
- 3.3V → 3.3V
读卡代码参考国内技术博客,经整理可稳定读取 UID。
按钮与视觉反馈
绿灯(D1)/红灯(D2)对应签到/签退按钮。读卡后 LED 闪烁提示按键,10 秒无操作则放弃。按下后对应 LED 高亮确认,经串口发送 UID 与事件类型至电脑。
Node.js 服务端
serialport库监听串口事件,比 Python pyserial 更适合事件驱动sqlite3存储签到记录,文档欠缺但原型足用- REST API 查询在场人员,
socket.io实时推送更新 - 跨域配置与路由器端口映射使服务可公网访问
- 前端加载自包含脚本,仅需预留 HTML 容器
SpaceAPI 集成
接入 SpaceAPI 规范,兼容 "My Hackerspaces" 等客户端应用。
实测效果
网站显示格式:"Right now there are three people checked in: Greg, and two other people." 匿名用户仅计数不显名。
演示视频:YouTube
实时状态:taipeihack.org/#open
完整源码:GitHub 仓库
原理图
电路连接图请参考项目附件。
制造工艺
- 电子墨水:原理、历史与未来应用
- Arduino RFID 门锁系统 – RC522 模块实现安全门禁
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- 电子变色龙:Arduino Nano RGB LED 与颜色传感器项目
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南
- Arduino 向日葵:制作电子向日葵追踪阳光