一.系统框图
二.硬件
1.Arduino UNO开发板
2.蓝牙模块HC-05
2.AS608 光学指纹模块
3.HC_SR501人体感应模块
4.环形LED灯
5.12V继电器
612V电磁锁
7.12V/5V开关电源
二.电路原理图
三.软件流程图
四.部分代码
#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();
}
}