Arduino 寝室智能门禁(刷卡 + 手机蓝牙)

出门 忘带钥匙,回来又碰巧室友一个都不在,只能在门口干等;躺在床上,有人敲门,又得起身下床开门……
懒癌附体,无药可治。于是在暑假,利用了两天时间,倒腾出来这个智能门禁。且听我慢慢分解。

总览

左图是门内的效果,右图是门外的校园卡感应器。

元件清单

Arduino Uno R3

Arduino Uno

核心控制部分,其它元件调度的 “大脑”。其实还考虑过 Arduino Nano,体积更小。但是在实际使用的时候出现过电流过小,无法稳定驱动舵机的情况。故为了稳定性,选择使用 Arduino Uno。

RC522 IC 卡识别模块

RC522
核心模块之二,兼容大多数主流的 MIFARE 标准的 IC 卡。可以通过它来读取校园卡的 UID (唯一标识符) 的值,从而达到身份验证的效果。

舵机 MG996R

舵机
没有用常见的 SG90 舵机是因为用舵机拉门栓需要挺大的力的。所以用了贵一点的 MG996R,保证扭力足够,能够拉动门栓。

HC-06 蓝牙模块

HC-06
工作在丛机模式下,负责接收数据。

蜂鸣器等

蜂鸣器用来进行提示:刷卡成功 “滴” 一声,失败就 “滴 — 滴” 两声。
细的漆包线:IC 卡识别模块需要用 7 根线和 Arduino 进行连接,而且门缝比较窄,所以没有用普通导线。
数据线:一般买 Arduino 自带。
热熔胶抢:固定走线、固定各种元件用。

硬件制作

第一张图上可以看到,我将所有的元器件固定在了一个洞洞板上,焊了一些排针方便拔插。还可以保证整体性,更加简洁。
当然也可以用杜邦线飞,但杜邦线不稳,容易掉。而且飞线太多也不太好看。

布局

软件制作

控制舵机、蜂鸣器是小菜一碟,Arduino 的新手必备技能。下面主要说说蓝牙模块和射频模块的使用。
蓝牙模块
使用方法可以见我另一篇文章中的总结:[Arduino] HC-06 蓝牙模块使用小结
RC522 模块
GitHub 上有功能完整的库和丰富的示例了:rfid
在 Readme 中有 RC522 与 Arduino 的接口说明。第三方库的使用自行搜索。
之后就可以在 Arduino 工程文件中直接 #include <MFRC522.h> 了。

详细源代码:GitHub

注意:供电的电源一定要好,不然电机很有可能无法驱动。最好用 5V 1.2A 来进行供电

有更多问题欢迎提问。