查看: 21587
回复: 8
参赛作品《基于STM32的RFID寝室门禁系统》

主题

回复
发表于2017-06-09 20:50:59 | 显示全部楼层
1# 电梯直达

【报名阶段需要填写的内容】


1. 参赛者姓名(必填项):

肖维东 李卓城

2. 单位或学校名称(必填项):

华南农业大学

3. 当前职务或职称(必填项):

学生

4. 参赛作品的名字(必填项):

基于STM32的RFID寝室门禁系统

5. 简要陈述您的idea和作品(必填项):

idea来源】在学校中学生经常离开寝室很经常会忘记带钥匙,如果舍友不在寝室,就不可避免的出现在寝室门口等待的尴尬。但是学生出门很少不带校园卡,因为这是去食堂吃饭必备的东西,因此能不能利用这个一般都会带的东西打开寝室的门呢?这就是本小组想设计的系统,基于STM32的RFID寝室门禁系统。最核心的原理时同学可以根据刷自己的校园卡自动的打开寝室的门。

【作品简介】本系统的功能应包括:校园卡识别、自动开门、校园卡信息录入、相关信息显示、通过按键控制相关功能,与之相对应的时校园卡识别电路、自动开门电路、校园卡信息录入电路、显示电路、按键电路等。本系统利用STM32系列单片机为主控制器,RFID读写器作为校园卡信息的识别和录入工具,使用电磁继电器组成自动开门系统电路。主要原理如下:按键控制进入信息录入模式,通过RFID读写器将本寝室同学的校园卡信息录入并存储在控制器内存中;按键控制进入识别模式,在此模式下如果由校园卡信息被读取了,主控制器将对读取的信息与系统中本已存储的信息的进行比对,如果发现信息一致,控制自动开门电路进行开门,如果信息有误则不开门。

6. 拟用到的立创商城在售物料(必填项):

STM32模块、RFID读写器、电磁继电器、显示屏、电阻、电容、二极管、三极管、按键、杜邦线、焊锡等。

7. 拟用到的非立创商城物料或其它补充(必填项):

门禁系统模型材料(塑料或泡沫等)。

【作品正式发表(报名成功后进入设计阶段)需要填写的内容】


一、作品简介

基于STM32的RFID寝室门禁系统采用STM32F103C8T6核心板作为主控制器,利用RC522射频模块录入、删除用户信息,并识别所用卡是否已经录入,若已录入则打开门,否则关闭。

作品的整体外观(模型):

  


 


作品研究背景和目的:在学校中学生经常离开寝室很经常会忘记带钥匙,如果舍友不在寝室,就不可避免的出现在寝室门口等待的尴尬。但是学生出门很少不带校园卡,因为这是去食堂吃饭必备的东西,因此能不能利用这个一般都会带的东西打开寝室的门呢?这就是本小组想设计的系统,基于STM32的RFID寝室门禁系统。最核心的原理同学可以根据刷自己的校园卡自动的打开寝室的门。

作品功能:校园卡识别(开门/关门)、校园卡信息录入(只有录入的校园卡才可以通过识别打开门)校园卡信息删除(删除已经不需要校园卡信息,删除后将无法打开门)、密码保护(在录入、删除用户信息时均需要输入密码)

市场应用前景:基于RFID的门禁识别系统在银行、办公大楼等场所的应用已经相对广泛,但在学校学生公寓的应用几乎为零,因此该系统在学校学生公寓的市场前景仍然可观。

作品的亮点:

1】可识别多种卡片,不局限校园卡,一旦将卡片信息录入,便可以打开寝室的门;

2】安全性较高,在录入校园卡信息、删除校园卡信息时需要输入密码;

3】采用64K FLASH芯片储存卡片信息,存储数据较大,可存储用户多;

4】成本较低;


二、系统构架图

   


三、硬件部分的描述

(一)原理图

 

源文件:原理图.zip 

(二)作品实现原理、系统工作过程

系统以STM32F103C8T6作为中央控制器,主要要两个工作模式:用户模式、识别模式(通过键盘选择)。

进入用户模式时需要通过按键输入密码(可修改),密码正确时进入用户模式,否则不能进入;用户模式中分为三个部分:添加用户、删除用户、删除全部用户。添加用户时将校园卡信息通过RC522射频模块将卡片ID(4个字节数据)存储到FLSAH芯片中(掉电不丢失);删除用户时通过RC522射频模块将FLASH中的相应用户信息输出;删除全部用户时一键清除所有用户信息。

进入识别模式时,直接将校园卡在RC522射频模块上刷一下,系统得到该卡的ID信息之后自动和存储在卡内的信息比对,一旦比对成功,打开寝室门;比对失败则不打开寝室门;

以上所有提示信息均有LCD1602液晶屏进行显示。

四、材料清单(BOM列表)

器件

型号

单片机

STM32F103C8T6

液晶显示屏

LCD1602

校园卡识别模块

RFID-RC522

FLASH存储模块

25Q64

按键

6*6独立按键


五、软件部分的描述(选填)

(一)流程图

 

流程图源文件:流程图.pdf 

(二)部分软件描述

(1)ID识别

void Get_ID()
{
    unsigned char CT[3];//?¨?à??
    unsigned char status;
   //unsigned char s=0x08;
   InitRc522();//初始化RC522
   while(1)
  {
      status = PcdRequest(PICC_REQALL,CT);//识卡
      if(status==MI_OK)//识卡成功
      {
         status=MI_ERR;
         status = PcdAnticoll(SN);//防冲撞
      }
       if (status==MI_OK)//防冲撞成功
      {
         sound();
         status=MI_ERR;  
         break;
     }
  }

ID识别函数成功通过时数组SN中会有4个字节的数据,这是ID卡的固定信息,每张卡都不一样,利用这些信息便可成功得区分不同得卡而达到是否开门得目的。

(二)FLASH_ReadData函数和FLASH_WriteData函数

       这两个函数是将信息写入FLASH中储存以及读取FLASH中得信息。在加入用户时,刷卡后首先读取FLASH中原有得数据,如果比对成功提示该用户已经存在;比对不成功则将数据存入最近的内存中;删除用户时一样,刷卡之后读取内存数据,比对成功则将数据删除掉,比对不成功提示错误;删除所有用户时直接删除全部用户,即将数据0xff写入内存中。

(三)用户识别模式

if(KEY_B==1)//识别模式
   {
      KEY_B=0;
     LCD1602_ClearScreen();
     LCD1602_Show_Str(4,0,"-Check-");
     LCD1602_Show_Str(1,1,"Check Your ID:");
     Get_ID();
     for(num=0;num<48;num=num+4)
     {
       FLASH_ReadData(SN_Read,num,4);
                         
       if(SN[0]==SN_Read[0]&&SN[1]==SN_Read[1]&&SN[2]==SN_Read[2]&&SN[3]==SN_Read[3])
       {         
         LCD1602_ClearScreen();
         LCD1602_Show_Str(4,0,"-OPEN-");
         put_user_num();
         delay_ms(1500);
         delay_ms(1000);
         softReset();
       }
       
     }
     LCD1602_ClearScreen();
     LCD1602_Show_Str(0,0,"-NO RIGHT USER-");
     LCD1602_Show_Str(3,1,"-CLOSE-");
     GPIO_SetBits(GPIOA,GPIO_Pin_11);
     delay_ms(1500);
     delay_ms(1000);
     GPIO_ResetBits(GPIOA,GPIO_Pin_11);
     softReset();
   }

刷卡之后自动进行信息比对,比对成功,开门;比对失败,关门;

六、作品演示

视频链接:https://v.qq.com/x/page/x0540cbnldk.html (请复制链接到新页面打开)

七、总结

完成作品之前,我们首先进行了方案的设计的以及器件的选型:核心板STM32F103C8T6、RC522射频模块、FLASH 25Q64模块、LCD1602液晶显示屏、按键模块。采用模块化原则,边搭建硬件电路边进行模块测试,即把LCD1602模块电路焊接好之后立刻进行LCD1602模块的测试,测试成功确保可用之后进行下一个模块的电路搭建以及测试;在所有模块的电路设计并测试好之后开始整体电路的设计以及测试。通过这样的一种有条理的方式,减少了搭建电路时的错误,避免了较多的冲突,降低设计难度。

感谢立创电子商城举办这样有意义的比赛,给我们这些电子爱好者一些学习的平台。祝越办越好。


主题

回复
发表于2019-12-11 19:09:22   |  显示全部楼层
8#
求大佬的资料

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部