极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24670|回复: 5

利用一卡通的rfid寝室门禁

[复制链接]
发表于 2016-2-26 10:56:10 | 显示全部楼层 |阅读模式
本帖最后由 nepu2015 于 2016-2-26 11:12 编辑

http://www.geek-workshop.com/thread-8319-1-1.html
参照了这位仁兄的门禁,仿制做了一个,也进行了一些改进。首先去掉了5110液晶  其实也可以加,但是个人觉得 貌似没啥用,机械结构,刚开始想用这个电子门锁,淘宝上一搜索有很多,然后忘了买继电器了,....电压不够门锁不能打开....GG,,,,,然后 想来想去还是用舵机吧  ps我用的是路由器的电源,9v的 如果接298n驱动的话还是有点吃力就放弃了,
然后就用了舵机,具体型号参数我也不知道,反正感觉扭矩应该够大,而且这个如果不驱动的话 也很难拧动,门的那个小的把手完全可以带动,网上随便买的摇臂,用长点的舵盘也行,没啥要求,....控制电路其实很简单,程序都差不多就是稍微改进点,取了两位数据..不知道为什么我们学校一卡通居然有 单数的...感觉的第三位数据是0x  然后0省略了 为了简单我就取了两位,,,,,实在是太懒了...哈哈 ,,,其实我的还可以改进一下,nano驱动板拓展的 直接可以焊接一个引脚出来就行,我有供电的小模块...就是太懒了哈哈  还得改接口,懒得弄了  ,,然后 最重要的 ..我把门扣了一个跟舵机一样大的洞洞....发现rfid 可以透过门的那层胶合板 大概4mm的胶合板,这样那个读卡器外面就看不出来了 是不是很机智,!!!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2016-2-26 11:05:53 | 显示全部楼层
本帖最后由 nepu2015 于 2016-2-26 11:11 编辑
  1. #include <SPI.h>
  2. #include <RFID.h>
  3. #include <Servo.h>

  4. RFID rfid(10,9);   //D10--读卡器MOSI引脚、D5--读卡器RST引脚
  5. int temp=0;
  6. Servo myservo;//定义舵机变量名
  7. void setup()
  8. {
  9.   Serial.begin(9600);
  10.   SPI.begin();
  11.   rfid.init();
  12.   myservo.attach(8);
  13. }

  14. void loop()
  15. {
  16.   //找卡
  17.   if (rfid.isCard()) {
  18.     Serial.println("Find the card!");
  19.     //读取卡序列号
  20.     if (rfid.readCardSerial()) {
  21.       Serial.print("The card's number is  : ");
  22.       Serial.print(rfid.serNum[0],HEX);
  23.       Serial.print(rfid.serNum[1],HEX);
  24.       Serial.print(rfid.serNum[2],HEX);
  25.       Serial.print(rfid.serNum[3],HEX);
  26.       Serial.print(rfid.serNum[4],HEX);
  27.       Serial.println(" ");
  28.       
  29.       if(rfid.serNum[0]==0xA7&&rfid.serNum[1]==0x4C&&rfid.serNum[2]==0xC9)
  30.       {
  31.         temp=1;
  32.       }
  33.       if(rfid.serNum[0]==0xE9&&rfid.serNum[1]==0x6E&&rfid.serNum[2]==0x9C)
  34.       {
  35.         temp=1;
  36.       }
  37.       if(rfid.serNum[0]==0xD7&&rfid.serNum[1]==0xF6&&rfid.serNum[2]==0xAB)
  38.       {
  39.         temp=1;
  40.       }
  41.       /************/
  42.       if(rfid.serNum[0]==0x55&&rfid.serNum[1]==0xE2)
  43.       {
  44.         temp=1;
  45.       }
  46.       
  47.       if(rfid.serNum[0]==0x95&&rfid.serNum[1]==0x18)
  48.       {
  49.         temp=1;
  50.       }
  51.       
  52.       if(rfid.serNum[0]==0x54&&rfid.serNum[1]==0xC2)
  53.       {
  54.         temp=1;
  55.       }
  56.       if(rfid.serNum[0]==0xA5&&rfid.serNum[1]==0x6B)
  57.       {
  58.         temp=1;
  59.       }
  60.       
  61.       
  62.       if(rfid.serNum[0]==0x15&&rfid.serNum[1]==0xCE)
  63.       {
  64.         temp=1;
  65.       }
  66.       
  67.       if(rfid.serNum[0]==0x54&&rfid.serNum[1]==0xC2)
  68.       {
  69.         temp=1;
  70.       }
  71.       if(rfid.serNum[0]==0x25&&rfid.serNum[1]==0x7F)
  72.       {
  73.         temp=1;
  74.       }
  75.       
  76.       if(rfid.serNum[0]==0x75&&rfid.serNum[1]==0xC7)
  77.       {
  78.         temp=1;
  79.       }
  80.     }
  81.     //选卡,可返回卡容量(锁定卡片,防止多数读取),去掉本行将连续读卡
  82.     rfid.selectTag(rfid.serNum);
  83.   }
  84.   if(temp==1)
  85.   {
  86.       myservo.write(30);
  87.       delay(5000);
  88.       myservo.write(90);
  89.       temp=0;
  90.   }
  91.   rfid.halt();
  92. }
复制代码
代码很简单,就是利用rfid库文件,也不知道这么写对不对,反正不规范就是了 。实在是块熄灯了懒得改了,而且只有一个模块...让我沾上门里面去了.....你能想象坐在门口一个个刷卡的感受么
自己第一次发帖子...补充一下...那个继电器   是过了一天同学才给我带的....唉 实在是猴急哈哈哈



回复 支持 反对

使用道具 举报

发表于 2016-9-5 19:32:45 | 显示全部楼层
为什么下载的rfid提示的是无效的库文件呢
回复 支持 反对

使用道具 举报

发表于 2016-9-6 22:15:30 | 显示全部楼层
soarlucky 发表于 2016-9-5 19:32
为什么下载的rfid提示的是无效的库文件呢

如果你是用arduinoIDE,里面编译的时候提示无效库,看看程序能不能正常运行,如果不能的话可能要查看库文件是不是缺了什么东西。
我之前是有一个库一直提示无效的库文件,但是好像并没有什么问题
回复 支持 反对

使用道具 举报

发表于 2017-3-9 11:53:47 | 显示全部楼层
电磁锁方便,但需要有个大电容才好触发,原理相当于抽水马桶
逻辑是
电源 -> 大电容 ->继电器 -> 电磁锁
有2200uf就差不多,试试看
回复 支持 反对

使用道具 举报

发表于 2017-7-7 16:21:24 | 显示全部楼层
为什么读出来是00000

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 16:26 , Processed in 0.076797 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表