华科宿舍的大门门禁用学生卡开,而每个寝室的门却只能使用钥匙打开。这就导致了每次出门都要带上学生卡和钥匙,每次回来都要先掏出卡,再掏出钥匙。这样实在是麻烦,因此我有了用校园卡就能打开宿舍门的想法。

本项目地址 Github 仓库

准备工作

参考资料

材料准备

名称 用途 预算(RMB)
USB 延长线(公对母) 供电 6
USB 带开关延长线 开关 10
Arduino UNO R3 开发板 控制 12
MG996R 舵机 开门 13
RC522 IC 卡感应模块 读卡 5
杜邦线 接线 0 (白嫖)

合计:46 RMB

工具准备

名称 用途 预算(RMB)
热熔胶枪和若干胶棒 固定 20
焊台 焊接 0 (白嫖)

合计:20 RMB

开发环境

  • arduino-cli 0.21.1

    • core : arduino:avr 1.8.5
    • lib : MFRC522 1.4.10
  • Fritzing 0.9.9 beta

连线及原理图

RC522 模块的库是网上找的,在连线图上标识不够清晰,可以参考原理图来布线。

  • 连线

连线

  • 原理图

原理图

配置及使用

编译烧录运行./src/get-id/get-id.ino以获得卡的 UID。

创建文件./src/access-control/card-group.hpp,添加如下代码:

#define CARD_NUM {卡的数量}
#define UID_SIZE 4

static const byte card_group[CARD_NUM][UID_SIZE] =
{
    { 0x00, 0x00, 0x00, 0x00 },
    { 0x00, 0x00, 0x00, 0x00 },
//    ...
};

编译烧录./src/access-control/access-control.ino则可以使用这个简易门禁了!

效果图

  • 连线完成效果

连线完成

  • 安装完成效果

安装完成-1

安装完成-2

  • 使用效果

demo