前言
这个门禁已经用了一年多啦~实测很稳定
接线也比较简单,而且实用性拉满,适合用来入门
因为我宿舍靠阳台下雨会泼水所以就没做指纹和密码,有兴趣的也可以拓展多种解锁方式
背景
本人没有带钥匙出门的习惯,每次出门都想着要带钥匙,每次出门都没带
然后就索性随缘了…
但是经历过几次门口吹风手机还没电之后
我决定探索实现开门自由
项目准备
一块Arduino Uno开发板
一个舵机
一块RC522
杜邦线若干
充电宝或者USB延长线(稳定供电)
成品展示
视频展示:
https://www.bilibili.com/video/BV1164y1i7aV/
https://www.bilibili.com/video/BV1xb4y1U7kB/
代码
#include <SPI.h>
#include <RFID.h>
#include <Servo.h>
RFID rfid(10,9); //D10--读卡器MOSI引脚、D5--读卡器RST引脚
int temp=0;
Servo myservo;//定义舵机变量名
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();
myservo.attach(8);
}
void loop()
{
myservo.write(0);
//找卡
if (rfid.isCard()) {
Serial.println("找到卡");
//读取卡序列号
if (rfid.readCardSerial()) {
Serial.print("卡号");
Serial.print(rfid.serNum[0],HEX);
Serial.print(" ");
Serial.print(rfid.serNum[1],HEX);
Serial.print(" ");
Serial.print(rfid.serNum[2],HEX);
Serial.print(" ");
Serial.print(rfid.serNum[3],HEX);
Serial.print(" ");
Serial.print(rfid.serNum[4],HEX);
Serial.print(" ");
Serial.println(" ");
if(rfid.serNum[0]==自定&&rfid.serNum[1]==自定&&rfid.serNum[2]==自定&&rfid.serNum[3]==自定&&rfid.serNum[4]==自定)
{
temp=1;//我
}
//按照串口监视器读取数值填入,如需写入多张卡则把if语句复制多几遍即可(具体看后面教程)
if(rfid.serNum[0]==0x50&&rfid.serNum[1]==0x03&&rfid.serNum[2]==0x9B&&rfid.serNum[3]==0x14&&rfid.serNum[4]==0xDC)
{
temp=1;//NFC
}
}
//选卡,可返回卡容量(锁定卡片,防止多数读取),去掉本行将连续读卡
rfid.selectTag(rfid.serNum);
}
if(temp==1)
{
myservo.write(85);
delay(2500);
myservo.write(0);
temp=0;
}
rfid.halt();
}
接线
舵机
红色线(电源线)接板载5V接口
棕色线(地线)接板载GND接口
橙色线(信号线)接板载8号接口
myservo.attach(8);这行代码可改信号线接脚
注意:可能有些厂商生产的线的颜色不一样,需要查证后再接入相应的管脚
RC522
Arduino | RC522 |
---|---|
9 | RST |
10 | SDA |
11 | MOSI |
12 | MISO |
13 | SCK |
空 | IRQ |
GND | GND |
3.3v | 3.3v |
代码烧录
编辑器
编辑器使用Arduino IDE,由于网站在国外,所以访问速度非常感人,虽然有中文社区提供阿里云盘下载,但是速度还是很慢,这里推荐使用Windows自带的应用商店(没想到吧)搜索Arduino下载基本跑满带宽。虽然版本会低一到两个版本,但是不影响使用,还是很香的。
项目新建
把我上面的代码复制到编辑器中,选择板子为Arduino UNO,安装库文件
安装库文件RFID.h
库文件链接:https://share.weiyun.com/GjFVt9ZZ(腾讯微云)
按照上面的步骤,把云盘里的库文件添加到Arduino编辑器就可以了
然后下一步就可以点左上角那个√验证代码,验证没有问题后连接主控板,主控板接好舵机和RC522,选择对应的COM端口,点击➡烧录到板子中
第一次烧录不需要往里写卡号,烧录完成后,把需要录入的卡片靠近RC522,
打开编辑器右上角的串口监视器,看卡号,将读出来的卡号分别复制到if语句中。
然后再次烧录代码到arduino就可以正常使用了。
实测苹果的岭南通也是可以用的,只需要把苹果手机靠近RC522就会记录卡号,把卡号复制进去就可以了。(曲线救国,苹果党狂喜)
其他注意事项
如果各位自己写的代码注意避开RC522.h这个官方库!实测很不稳定,经常用个几天就会死机要重新按下复位键,而RFID这个库没有这个问题,可以正常运行。
建议使用直流电(手机充电头)直接供电,这样除了停电之外不怕没门进,如果用电宝的话很快没电然后你就会被锁在外面(别问我是怎么知道的)
最后的最后
大家记住不要把钥匙丢了,万一停电呢(狗头)