門禁鎖加裝指紋功能
STC15W201S系列微控制器文件下載
原理分析
本裝置直接使用掛鎖的指紋識別模組方案,該指紋識別模組新增和刪除指紋都通過模組獨立完成,不需要外接微控制器,使得製作難度大幅降低。
該指紋模組識別到正確的指紋後,電機驅動引腳就會輸出高電平,所以我通過在指紋模組上加裝一個微控制器,微控制器通過檢測指紋模組的電機驅動引腳的電平高低,若電平為高電平,則通過微控制器的串列埠引腳傳送一串特定的字元,而處於門內的微控制器則接受字元,並判斷字元是否符合特定的字元,若符合,則控制引腳輸出電機驅動訊號,如不符合,則不響應。(指紋模組和資料傳送微控制器可以一次性封裝在一起,防止暴力拆解指紋模組通過拉高微控制器引腳來破解開門)
本裝置安全性不高,僅用於技術學習,若您使用本裝置造成了經濟損失,後果自負。
第一步線路原理
5v供電一定要接到指紋模組的USB輸入的正極引腳,不要接到鋰電池的引腳,防止電壓過高燒壞晶片。
VCC電壓輸入一定要高於5V,若電壓等於5V,則可以去除1117-5.0v線性穩壓晶片。為了保證微控制器工作的穩定性,則可以在微控制器的VCC引腳和GND引腳之間並聯一個47uF的電解電容和一個0.1uF的瓷片電容。
電機驅動模組任意一種都可以,模組的電機輸出引腳直接接到門禁鎖的電機上。
傳送資料的微控制器的程式碼。
#include<STC15.H>
sbit key = P3^3; //高電平檢測引腳
#define A 0x00 //設定密碼第一位 十六進位制數,比如0x22,0x89,0xEF,0x3F
#define B 0x00 //設定密碼第二位
#define C 0x00 //設定密碼第三位
#define D 0x00 //設定密碼第四位
#define E 0x00 //設定密碼第五位
#define F 0x00 //設定密碼第六位
unsigned char code tab[]={A,B,C,D,E,F}; //密碼
void send(unsigned char dat) //資料傳送程式 一次傳送8位,比如0x22,對應的8位二進位制為00010110
{
SBUF=dat; //將要傳送的資料存入傳送緩衝器中
while(TI==0); //若傳送中斷標誌位沒有置1(正在傳送資料),就等待
TI=0; //若傳送完成,TI自動置1,這裡把它清零
}
//延時函式
void delay(unsigned int ms)
{
unsigned int i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void main(void)
{
unsigned char i;
TMOD=0x20; //定時器T工作於方式2(可自動重灌的8位定時器)
SCON=0x40; //串列埠工作方式1,不允許接收
PCON=0x00;
AUXR |=0X01; //啟動定時器T2
AUXR |=0X04; //波特率不倍增
T2L =0xE0; //波特率為9600b/s
T2H =0xFE;
AUXR |= 0X10;
// TH1=0xfd; //波特率為9600b/s
// TL1=0xfd;
// TR1=1; //啟動定時器T1(T1作波特率的發生器)
key = 0;
while(1)
{
if(key==1)
{
delay(10);
if(key==1)
{
for(i=0;i<6;i++)
{
send(tab[i]); //傳送資料
delay(1);
}
}
}
}
}
接收資料的微控制器的程式碼
#include<STC15.h>
//#include<reg51.h>
//sbit key = P5^5;
#define A 0x00 //設定密碼第一位
#define B 0x00 //設定密碼第二位
#define C 0x00 //設定密碼第三位
#define D 0x00 //設定密碼第四位
#define E 0x00 //設定密碼第五位
#define F 0x00 //設定密碼第六位
sbit ML = P1^2; //定義電機引腳
sbit MR = P1^3;
int i;
unsigned char pass[6];
unsigned char num[1];
void delay(unsigned int ms);
void delay(unsigned int ms) //延時函式
{
unsigned int i,j;
for(i=ms;i>0;i--)
for(j=892;j>0;j--);
}
void passclean(void) //密碼清除函式
{
i = 0;
delay(45);
for (i = 0; i < 6; i++) //for迴圈賦值
{
pass[i] = 0;
}
}
unsigned char receive(void) //資料接收函式
{
unsigned char dat;
while(RI==0); //資料沒有接收完畢時等待接收
RI=0; //接收完畢時清零
dat=SBUF; //將接收緩衝器中的資料存入dat
return dat; //將接收到的資料返回
}
void main(void)
{
TMOD=0x20; //設定定時器T工作於方式2
SCON=0x50; //串列埠工作方式1,允許接收資料
PCON=0x00; //波特率不倍增
AUXR |=0X01;
AUXR |=0X04; //波特率不倍增
T2L =0xE0; //波特率為9600b/s
T2H =0xFE;
AUXR |= 0X10;
// TH1=0xfd; //波特率為9600b/s
// TL1=0xfd;
// TR1=1; //啟動定時器T1
REN=1; //允許接收資料
// key = 0;
ML = 0; //電機方向引腳初始化
MR = 0;
while(1)
{
while((pass[1] != A)||(pass[2]!=B)||(pass[3]!=C)||(pass[4]!=D)||(pass[5]!=E)||(pass[6]!=F)) //若密碼都符合則退出資料接收迴圈
{
num[1] = receive(); //將接受的的密碼存到陣列num[1]裡
if(num[1]==A){ //判斷接受到的資料是否符合密碼A位,若符合,則將密碼放入到pass陣列第一位裡。
pass[1] = num[1]; //以下同理
}
else if(num[1]==B){
pass[2]= num[1];
}
else if(num[1]==C){
pass[3]= num[1];
}
else if(num[1]==D){
pass[4]= num[1];
}
else if(num[1]==E){
pass[5]= num[1];
}
else if(num[1]==F){
pass[6]= num[1];
}
else
{
passclean(); //清空已接收的密碼。
}
// key=0;
}
if((pass[1] == A)&&(pass[2]==B)&&(pass[3]==C)&&(pass[4]==D)&&(pass[5]==E)&&(pass[6]==F)) //若密碼符合則執行開鎖
{
// key = 1;
//delay(100);
ML = 1; //開鎖
MR = 0;
delay(120);
ML = 0; //電機停轉
MR = 0;
delay(4500); //等待時間
ML = 0; //關鎖
MR = 1;
delay(120);
ML = 0; //電機停轉
MR = 0;
//delay(50);
passclean(); //清空已接收的密碼。
//key = 0;
//key = 1;
}
}
}
相關文章
- win10怎麼加指紋密碼_win10指紋密碼鎖如何新增指紋Win10密碼
- 一加6T螢幕指紋解鎖設定使用教程 一加6T怎麼設定指紋識別?
- iOS指紋解鎖和手勢解鎖iOS
- win10指紋鎖如何設定_win10設定指紋解鎖的方法Win10
- 裝置指紋簡析
- 加個矽膠殼就能輕鬆解鎖!三星屏下指紋被爆漏洞
- 智慧門鎖安全嗎?超六成智慧門鎖IC卡鑰匙可破解複製 八成智慧門鎖可假指紋解
- 2018螢幕指紋解鎖智慧手機推薦 螢幕指紋手機哪些值得買?
- android 簡單實現指紋識別功能Android
- 如何設計APP的指紋識別功能APP
- Android 指紋識別,指紋支付demoAndroid
- 生物特徵識別之指紋識別,偽造,指紋裝置缺陷設計特徵
- 裝置指紋技術詳解丨裝置指紋知多少,看這場直播就夠了!
- 新iPhone有望加入指紋解鎖,你會買嗎?iPhone
- 簡單聊聊裝置指紋設計
- 指紋2
- 指紋3
- 基於arduino+as608+360舵機的宿舍指紋鎖UI
- 指紋鎖就安全了?防火防盜還得防AIAI
- 詳解裝置指紋核心演算法演算法
- Web操作攝像頭、高拍儀、指紋儀等裝置的功能擴充套件方案Web套件
- 聯想Z6 Pro有螢幕指紋解鎖嗎?聯想Z6 Pro有沒有螢幕指紋解鎖與支援人臉識別
- CMS指紋識別
- 服務指紋分析
- 知物由學 | iOS裝置指紋的前世今生iOS
- 端雲互動,裝置指紋的安全進化論
- Android 指紋登入、支付Android
- windows10系統中沒有指紋解鎖設定如何解決Windows
- win10系統怎麼設定電腦指紋密碼解鎖Win10密碼
- 智慧人臉識別門禁系統開發,人臉識別開鎖流程
- 垃圾賬號不勝其煩,裝置指紋快速發現
- Redis分散式鎖加鎖案例Redis分散式
- For Update 加鎖分析
- APPCNA 指紋驗證登入APP
- 指紋識別將走向何方?
- [Android]BMPrinter 指紋識別庫Android
- 利用指紋識別或面部識別,為應用新增私密保護功能
- 一加6真機渲染曝光:豎排雙攝+指紋識別 比小米更勁爆?