一.系统框图

基于Arduino的指纹解锁箱

二.硬件

1.Arduino UNO开发板

2.蓝牙模块HC-05

2.AS608 光学指纹模块

3.HC_SR501人体感应模块

4.环形LED灯

5.12V继电器

612V电磁锁

7.12V/5V开关电源

二.电路原理图

基于Arduino的指纹解锁箱

三.软件流程图

基于Arduino的指纹解锁箱

四.部分代码

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8/*RX*/, 9/*TX*/); //定义一个软串口,用于蓝牙通信 
#define u8 char
#define R 10   
#define Y 11
#define G 12     //LED
#define renti A5//人体感应
#define lock 13//电磁锁
u8 style=1;//LED样式
u8 renti_val=0;

char PS_Autodentify[17]={0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x08,0x32,0x03,0xFF,0xFF,0x00,0x00,0x02,0x3C};
char Receive_Buffer[17];
char i=0;

void setup()
{
  mySerial.begin(9600);
  Serial.begin(57600);
  pinMode(R,OUTPUT);    
  pinMode(Y,OUTPUT);    
  pinMode(G,OUTPUT); 
  pinMode(renti,INPUT);   
  pinMode(lock,OUTPUT);
}
void loop()
{
  renti_val=digitalRead(renti);
  //Serial.println(renti_val);
  if(renti_val==1)
    LED_ON();
  if(renti_val==0)
    LED_OFF();
  if(mySerial.available()>0)
  {
    while(mySerial.available() > 0)
    {
      style=mySerial.read();
      switch(style)
      {
       case '0':LED_OFF();break;
       case '1':LED_ON();break;
       case '2':style1();break;
       case '3':style2();;break;
       case '4':style3();;break;
       case '5':style4();;break;
       case '6':Lock();break;
       default:break; 
      }
    }  
  }
  Serial.write(PS_Autodentify,17);
  delay(800);
  if(Serial.available()>0)
  {
   while(Serial.available() > 0)  
   {
    Receive_Buffer[i]= char(Serial.read());
    i++;
    delay(2);
    if(i>16)
      i=0;
   }
   //Serial.write(Receive_Buffer,17);
   delay(50);
   
   if(Receive_Buffer[9]==0&& Receive_Buffer[10]==5)
    Lock();
  }
}

 

 

 

 

 

 

 

 

相关文章: