Arduino宿舍门禁,实现刷卡(NFC)开门 您所在的位置:网站首页 刷卡门锁母卡 Arduino宿舍门禁,实现刷卡(NFC)开门

Arduino宿舍门禁,实现刷卡(NFC)开门

2023-09-05 01:57| 来源: 网络整理| 查看: 265

起因

最近在学习智能车程序,突然对开发产生了极大的兴趣,一个合格的懒人就要自己做一个刷手机开门。再也不用带沉重的钥匙了,也不需要为忘记带钥匙的室友开门了。选择Arduino是因为它简单,不需要配置寄存器。

材料

在这里插入图片描述总共需要差不多60多软妹币,可以宿舍分摊一下,程序里面想写几张卡就写几张。

主体接线图

在这里插入图片描述蜂鸣器可以根据自己的需求,选择添加

程序的实现

下面是部分程序

#include #include //nfc头文件 #include //舵机头文件 MFRC522 rfid(10, 9);//创建一个rc522读卡器对象 Servo mg90s;//创建一个舵机控制对象 // 初始化数组用于存储读取到的NUID byte nuidPICC[4]; void setup() { SPI.begin(); // 初始化SPI总线 rfid.PCD_Init(); Serial.begin(9600); mg90s.attach(6);//设定舵机的接口为6 mg90s.write(0);//设定舵机旋转角度复位为0.(可调0~180) pinMode(5, OUTPUT); } void loop() { // 找卡 if ( ! rfid.PICC_IsNewCardPresent()) return; // 验证NUID是否可读 if ( ! rfid.PICC_ReadCardSerial()) return; MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); // 将NUID保存到nuidPICC数组 for (byte i = 0; i < 4; i++) { nuidPICC[i] = rfid.uid.uidByte[i]; //Serial.println(nuidPICC[i]); } if ((nuidPICC[0]==xxx&& nuidPICC[1]==xxx&& nuidPICC[2]==xxx&& nuidPICC[3]==xxx)||.........) //改成自己卡的uid { mg90s.write(170); delay(1200); digitalWrite(LED_BUILTIN, HIGH); mg90s.write(0); } }

利用Arduino自带的串口监视器来读取自己的序列号 在这里插入图片描述在下载程序之前,需要在Arduino IDE中导入RC522的库文件 在这里插入图片描述

读取自己的卡ID

程序下载到Arduino中在这里插入图片描述 点击右上角这个放大镜进入串口监视器,需要注意的是接的com口和程序中波特率的设置的是多少,然后把卡或者手机放到RC522上,就能看到自己的卡号,四个数。 在这里插入图片描述 如果还有不理解的建议看一看b站上佑來老师讲的,最后一集不要跳过! 在这里插入图片描述

最重要的电源问题 问题

电脑usb连接时,一切正常,当我用移动电源供电时,却发现程序不能正常工作了,百度一番才知道是舵机工作时,需要的电流太大了,导致板子无法正常工作,程序不能正常执行,现在有两种方法,一种是网上的,一种是我自己做的。

充电宝供电

如果有多余的充电宝,可以尝试充电宝供电,注意,我没有试过这种方法,因为Arduino论坛上不建议用充电宝供电,而且需要具有微电流能力的充电宝,或者买一个持续供电头。防止充电宝休眠。在这里插入图片描述

自己做电池组供电

Arduino有几种常用的电源供电方法,可以参考

链接: 太极创客 几种常用的为Arduino供电方法.

链接: bilibili arduino常用主控板供电需求和方式介绍.

而要想要板子正常工作,就要给舵机单独供电,MG966R需要4~6v的电源,因为正好宿舍有多余的18650电池,直接用两节18659(3.7v每节)串联在一起再加一个降压芯片(LM2596S)就搞定了。

Arduino我采用了DC头供电方式,同样两节18650电池串联在一起就行了,Arduino的DC接口可以接7.2v的电源。

电池充电

在这里插入图片描述 我给两组电池都加上了这个防过放过充的保护模块,可以在电压过低或者电池充电中电压太高时自动截至。防止过放后无法再充。 在这里插入图片描述接线方法也很简单,直接按图焊上去就行了。焊好该模块后,需要充电才能激活,否则没有电压输出,只要电池不取下来,就不需要再次激活。

充电需要9~12v的充电器,正好实验室有学长不要的12.6V充电器,加上降压芯片(LM2596S)降压到12v以下,充电刚刚好。 在这里插入图片描述

耗电大

如果给Arduino一直供电,3700mAh的电池也只能供电几个小时,而最省电的方法,就是加一个开关,只需要一个加在给Arduino板子供电的电池开关,在板子断电的情况下,舵机电源几乎一天只掉0.0x的电压,供一个星期没问题在这里插入图片描述最后我加了一个摇臂开关,开门时打开,用完之后关掉电源。

总结

1.舵机单独供电的GND需要和板子的GND连在一起,即共地。 2.供电方式多种多样,我用18650因为正好充电器和电池都不用自己买了。 这种充电器某宝上只卖10块钱。 3.Arduino有休眠模式,我只是略微了解了一下,觉得还是开关最省电。 4.我采用的是Arduino UNO,有需要的可以了解一下Arduino nano,上佑老师提到过,它更小,更方便,应该比UNO省电。 5.可以用胶枪固定在门上。 6.思考加一个电量低蜂鸣器报警,防止忘记给电池充电。欢迎一起来讨论。 7.指纹模块更简单,不过模块比较贵。 8.还可以加入蓝牙模块等,不过每次都需要打开手机连接蓝牙。 在这里插入图片描述 门外照片 在这里插入图片描述 门内照片 在这里插入图片描述电源照片,DC头用来供电,插上之后不会脱落,杜邦线用来充电。

还有很大的改进空间,开始做这个东西之前,我没有想到最难的不是程序,而是外接电源的问题,在这个过程中,也学习了很多东西,包括电池模块,降压模块,蓝牙模块,ESp8266模块,省电模式…受益匪浅,如果诸位有什么更好的方法或者高明的见解,欢迎来一起讨论,有什么问题可以在评论区提问,大家一起解决。

2022.10.28更新 如果对耗电有疑问的,可以参考一个别的大佬做的STC15低功耗宿舍门禁,可以待机3~6个月 大佬的STC15低功耗宿舍门禁

arduino也有低功耗模式,我之前了解过,这个项目中,我怀疑主要耗电的应该是那个DC降压芯片,没有实际测试过,大家可以用万用表测一下,当时我还比较菜,现在觉得可以用LDO芯片替代一下。可以参考上面那个链接,建议打成电路板,我这个老是杜邦线线虚/(ㄒoㄒ)/~~。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有