起因

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

材料

总共需要差不多60多软妹币,可以宿舍分摊一下,程序里面想写几张卡就写几张。

主体接线图

蜂鸣器可以根据自己的需求,选择添加

程序的实现

下面是部分程序

#include <SPI.h>
#include <MFRC522.h>//nfc头文件
#include <Servo.h>//舵机头文件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);//设定舵机的接口为6mg90s.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ㄒ)/~~。

Arduino宿舍门禁,实现刷卡(NFC)开门相关推荐

  1. 带联网功能的RFID宿舍门禁(四)-NodeMCU网站与RC522共同控制舵机转动

    文章后续更新:http://mwhls.top/?p=659 新的更新内容请到mwhls.top查看. 如果没有图片请到上方的文章首发页面查看. 带联网功能的RFID宿舍门禁项目目录 我有点厉害,这个 ...

  2. 带联网功能的RFID宿舍门禁(六)-两年后的再次总结

    文章首发及后续更新:https://mwhls.top/4066.html,无图/无目录/格式错误/更多相关请至首发页查看. 新的更新内容请到mwhls.top查看. 欢迎提出任何疑问及批评,非常感谢 ...

  3. 带联网功能的RFID宿舍门禁(五)-项目总结

    文章首发及后续更新:https://mwhls.top/1075.html 新的更新内容请到mwhls.top查看. 无图/格式错误请到上方的文章首发页面查看. 带联网功能的RFID宿舍门禁项目目录 ...

  4. 人脸识别 宿舍门禁系统(python qt opencv带数据库)

    制作过程 最新更新 其他版本基于retinaface,卷神经网络余弦相似度人脸匹配 本文章版本预览 点击下载源代码 视频效果 一.界面设计 使用Qt Designer(源代码内有设计文件ui): 二. ...

  5. 【基于Arduino RFID门禁系统】

    基于Arduino RFID门禁系统 介绍 射频识别或RFID(Radio-Frequency Identification)是一种通过无线电信号进行自动识别,通过RFID标签检索和存储数据的方法. ...

  6. python人脸识别门禁系统毕设_人脸识别 宿舍门禁系统(python qt opencv带数据库)

    源代码人脸识别宿舍门禁系统(pythonqtopencv带数据库)-深度学习文档类资源-CSDN下载​download.csdn.net 视频效果[video(video-16ReW6hG-16059 ...

  7. php做宿舍门禁管理系统项目首选公司,一种校园宿舍门禁管理系统的制作方法

    本发明涉及校园管理系统,具体而言涉及一种校园宿舍门禁管理系统. 背景技术: 目前,随着学校学生人数的增加,校园内部的人员监管工作及校园内部的安全防护工作难度相对较大.例如,在部分全寄宿的初中和高中学校 ...

  8. #智能宿舍门禁 esp8266+RC522模块+DFPlay Mini Mp3模块实现宿舍智能门锁//NFC//物联网

    esp8266+RC522模块+DFPlay Mini Mp3模块实现宿舍智能门锁//NFC//物联网 提示: 提示: 文章目录 esp8266+RC522模块+DFPlay Mini Mp3模块实现 ...

  9. 刷二维码加上微信企业号与arduino实现门禁管理

    具体实现的逻辑 1 每一个门禁对应生成带微信链接跳转二维码 2 根据刷码判断用户合法性 3 发送指令给arduino开门指令 转载于:https://my.oschina.net/nuowei/blo ...

最新文章

  1. NC:菌物组构建---随机性v.确定性、干旱胁迫、宿主筛选、统一动态(郭良栋、杨军点评)
  2. stripe pay_J2Pay –入门
  3. 织梦task_do.php,织梦20160906更新后栏目空白问题
  4. python 多次匹配_Python学习记录14
  5. R语言ETL工程系列:读写(read/write)
  6. 如何使用递归及注意事项
  7. 图灵聊天机器人小程序
  8. Win7平台上通过QQ查询对方IP地址
  9. Seaweed-fs
  10. 苹果手机浏览器$(document).on(click,function(){})点击无效的问题(转)
  11. 用于清理系统垃圾的batch文件
  12. echarts市级区域地图数据展示
  13. 项目目标的管理策略与方法︱项目目标管理专题
  14. 导出账号格式不对_朋友圈导出的架构变迁
  15. 求5个整数的平均值用c语言,编写求一组整数的和与平均值的程序
  16. 复古风的小鱼缸,还有幻彩灯效加持,忆趣TV3.0体验
  17. echarts地图双击区域展示下级市区县地图
  18. Prezi简体中文支持方法
  19. 163音乐点歌乱码分析以及解决办法
  20. 此次自驾车回家,途中吉凶情况如何?

热门文章

  1. 【转载】人工智能发展简史
  2. App Inventor 微数据库记录分数并排序
  3. 10个自动化测试框架,测试工程师用起来
  4. 微信公众平台测试号登录入口地址
  5. java byreference_深入理解Java中的引用(一)——Reference
  6. Android提高与总结的Android技能导图
  7. 编译原理:语法树,短语,直接短语,句柄
  8. Fractions (水)
  9. VBS奇葩操作 “我是猪”
  10. PMP,项目经理职业生涯不可或缺