0
点赞
收藏
分享

微信扫一扫

模仿大佬制作的宿舍门禁系统(三)


接上文

arduino 的优势就是每个模块的库文件比较全

都能找到对应的库函数这里我们需要rfid 的库函数

代码如下

#include <SPI.h>

#include <RFID.h>

#include <Servo.h>

Servo myservo;

extern uint8_t SmallFont[];

RFID rfid(10,8); //D10--接上SDA、D8--接RST D13--接上SCK D11--接上MOSI D12--接上MISO RQ不接

unsigned char serNum[5];

void setup()

{

Serial.begin(9600);//串口用来读取需要添加的卡号,然后手动写到程序里

pinMode(7,OUTPUT);

myservo.attach(9);//舵机针脚位9

myservo.write(3); //舵机初始化0度

SPI.begin();

rfid.init();

}



void loop()

{

long randNumber = random(0, 20);

unsigned char i,tmp;

unsigned char status;

unsigned char str[MAX_LEN];

unsigned char RC_size;



//找卡

rfid.isCard();

//读卡号

if (rfid.readCardSerial())

{

Serial.print("your card id is : ");

Serial.print(rfid.serNum[0]);

Serial.print(" , ");

Serial.print(rfid.serNum[1]);

Serial.print(" , ");

Serial.print(rfid.serNum[2]);

Serial.print(" , ");

Serial.print(rfid.serNum[2]);

Serial.print(" , ");

Serial.print(rfid.serNum[4]);

Serial.println(" ");

//下面是改卡号区域

if(rfid.serNum[0]==001||rfid.serNum[0]==002){//第一道筛选


    
            
        
       

if(rfid.serNum[0]==001&&rfid.serNum[1]==002)//第二道筛选,支持一人一号

{



Serial.println("Welcome ");

digitalWrite(7,HIGH) ;

delay(1000);

digitalWrite(7,LOW) ;



Serial.println("open");

myservo.write(90);



}

if(rfid.serNum[0]==002&&rfid.serNum[1]==002)//rfid.serNum[0]==161 这个0是id位置,可以自行更改

{



Serial.println("Welcome ");

Serial.println("shun");

digitalWrite(7,HIGH) ;

delay(1000);

digitalWrite(7,LOW) ;

myservo.write(90);





}





}

}

if (!rfid.readCardSerial()){

}

rfid.halt(); //休眠

}

隐秘了卡号,大家在这个基础上修改即可

通过if语句比对就可以了

这里提到了休眠的问题

我们可以添加一个开关在电池与arduino 之间放到门外,

哈哈太低端的休眠装置

举报

相关推荐

0 条评论