趙 鵬
(西昌衛(wèi)星發(fā)射中心,四川 西昌 615000)
基于開源硬件的門禁控制系統(tǒng)
趙 鵬
(西昌衛(wèi)星發(fā)射中心,四川 西昌 615000)
本文設(shè)計了一種基于開源硬件的門禁控制系統(tǒng)。該系統(tǒng)以開源硬件arduino控制板為控制芯片,將IC卡門禁讀卡器讀取的IC卡號,通過以太網(wǎng)板卡發(fā)送到信息中心服務(wù)器進(jìn)行權(quán)限判斷,并利用arduino控制板實現(xiàn)門磁的控制。采用開源硬件raspberry pi實現(xiàn)門禁數(shù)據(jù)的顯示。測試證明本系統(tǒng)成本低、功耗低、擴展性好,運行穩(wěn)定可靠。
門禁;arduino;raspberry pi; 開源硬件
門禁控制系統(tǒng)是采用現(xiàn)代電子與信息技術(shù),在建筑物內(nèi)外的出入口實現(xiàn)對人或者物的進(jìn)出實施放行、拒絕、記錄和報警等操作的一種電子化系統(tǒng),適用于智能化小區(qū)、銀行、倉庫等各種場合。隨著網(wǎng)絡(luò)化進(jìn)程的深入,門禁控制器產(chǎn)品逐步由傳統(tǒng)型向網(wǎng)絡(luò)型門禁系統(tǒng)轉(zhuǎn)變,通過局域網(wǎng)實現(xiàn)控制中心服務(wù)器與前端控制器的互聯(lián)互通,通過終端可以隨時查看人員進(jìn)出的刷卡記錄,同時可以實現(xiàn)前臺和門禁的遠(yuǎn)程控制[1-3]。門禁控制器不僅僅完成門禁功能,同時具有區(qū)域人數(shù)統(tǒng)計、遠(yuǎn)程控制、防盜報警等功能。
本文采用開源硬件實現(xiàn)了一套門禁控制和顯示系統(tǒng),用于擴展目前部署的信息化系統(tǒng)的功能,可以無縫連接到已經(jīng)部署的系統(tǒng)。該系統(tǒng)門禁控制部分采用了當(dāng)前比較流行的arduino開源硬件,門衛(wèi)顯示終端采用了開源硬件raspberry pi。
Arduino是一款開源電子原型平臺,采用ATmega328微處理器,具有6個模擬輸入接口,采用10bit的解析度,具有14個數(shù)字輸入/輸出管腳,可以由程序自定義為輸入或者輸出。arduino的硬件原理圖、電路圖、IDE軟件及核心庫文件均是開源的,在開源協(xié)議范圍里可以任意修改原始設(shè)計及相應(yīng)的代碼。arduino在本文中實現(xiàn)門禁控制器的功能,利用arduino的硬件串口和軟件串口接收門禁控制器發(fā)送的 IC卡卡號等數(shù)據(jù)以實現(xiàn)對門磁電源的控制[2]。
Rasberry pi搭載ARM架構(gòu)的處理器、運行性能和智能手機相仿,體積只有信用卡的大小,預(yù)裝linux操作系統(tǒng)。在接口方面,raspberry pi提供了USB接口、以太網(wǎng)接口、SD卡接口、HDMI接口等。HDMI可以實現(xiàn)視頻輸出功能。本文采用 raspberry pi從控制中心服務(wù)器獲取相關(guān)的門禁進(jìn)出數(shù)據(jù),進(jìn)行圖形化顯示。
門禁系統(tǒng)包括門禁讀卡器、門禁控制器、門禁電源、顯示終端以及后臺服務(wù)器。該系統(tǒng)部署在已經(jīng)完成的信息化管理系統(tǒng)中,因此需要該門禁控制系統(tǒng)具有較強的兼容性,可以方便的接入當(dāng)前的信息管理系統(tǒng)。
門禁讀卡器采用工業(yè)標(biāo)準(zhǔn)的wiegand 34協(xié)議讀取IC卡卡號,wiegand接口是門禁系統(tǒng)讀卡器的標(biāo)準(zhǔn)接口,目前市場上的大多數(shù)讀卡器(包括指紋機、掌紋儀等)都提供了該接口,Wiegand的信號通過 2條數(shù)據(jù)線實現(xiàn)將卡號通過數(shù)據(jù)線發(fā)送到門禁控制器[6]。
門禁控制器收到IC卡號后,將數(shù)據(jù)傳送到控制中心服務(wù)器,判斷該卡號對應(yīng)人員的權(quán)限,然后將相關(guān)數(shù)據(jù)發(fā)送到門禁控制器,門禁控制器控制門禁電源實現(xiàn)門磁的控制。本文采用開源硬件 arduino控制器的硬件串口和軟件串口獲取IC卡卡號,實現(xiàn)該門禁控制器。
顯示終端部署在門衛(wèi),圖形化直觀的顯示人員和車輛的進(jìn)出信息。本文采用raspberry pi實現(xiàn)該功能,采用http技術(shù),基于browser/server結(jié)構(gòu)進(jìn)行數(shù)據(jù)交換。所有的系統(tǒng)參數(shù)可以下載到前端的arduino控制器,同時還可以將參數(shù)上傳到控制主機。
門禁控制器采用arduino實現(xiàn),通過arduino單片機獲取門禁讀卡器傳來的IC卡卡號,然后將該卡號通過以太網(wǎng)板卡,用http post的方式,將IC卡號發(fā)送到控制中心服務(wù)器,中心控制服務(wù)器做出相應(yīng)的判斷后,返回一個 httpresponse的結(jié)果,arduino控制器根據(jù)收到的數(shù)據(jù)控制相應(yīng)的門磁設(shè)備、LED顯示設(shè)備[8]。基本流程如圖1所示。
Arduino控制器獲取數(shù)據(jù)后通過 http發(fā)送請求的方式將相關(guān)的 IC卡號等數(shù)據(jù)發(fā)送到控制中心服務(wù)器,實現(xiàn)代碼如下。
void openDoor(){
digitalWrite(MC_PIN,LOW);
delay(500);
digitalWrite(MC_PIN,HIGH);}
void getInput(){
memset(&icNo,0,sizeof(icNo));
圖1 門禁控制流程Fig.1 Access controller process
if(Serial.available()>0){
buffer[4]='0'; //進(jìn)營區(qū)
delay(100);
for(byte i=0;i<4;i++){
sprintf(&icNo[i*2],"%02X",Serial.read());
} }
if(cyqSerial.available()>0){
buffer[4]='1'; //出營區(qū)
delay(100);
for(byte i=0;i<4;i++){
sprintf(&icNo[i*2],"%02X", cyq-Serial.read());
} }}
void httpRequest() {
client.stop();
client.flush();
memset(retCmd,0,sizeof(retCmd));
if (client.connect(server, 8080)>0) {
Serial.println("connecting...");
client.print("GET /menJinV2/?data=");
client.print(buffer);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(Ethernet.localIP());
client.println(); }
else {
Serial.println("connection failed"); }
if(client.connected()){
if(client.find("TXYT")){
client.readBytesUntil('E',retCmd,4);
Serial.println(retCmd);
if(retCmd[0]=='0'){yuyin(VOICE_WXK);}else
{
if(retCmd[2]=='1'){
openDoor();
if(retCmd[1]=='0'){
yuyin(VOICE_YXJR);
}else if(retCmd[1]=='1'){
yuyin(VOICE_YXTX); }
}else if(retCmd[2]=='0'){
yuyin(VOICE_JZWC); } }
}else{
Serial.println("get data from web server error"); } }
client.stop();
client.flush();
}
void loop() // run over and over
{
getInput();
if(strlen(icNo)>0){
for(byte i=0;i<8;i=i+2){
buffer[11-i]=icNo[i];
buffer[11-i+1]=icNo[i+1];
}
Serial.println(buffer);
memset(icNo,0,sizeof(icNo));
httpRequest(); } }
門禁顯示終端部署在門衛(wèi)處,用圖形的方式直觀顯示人員進(jìn)出和車輛進(jìn)出記錄。門禁顯示終端采用了開源硬件raspberry pi的實現(xiàn)方式。raspberry pi采用了linux,本文在raspberry pi中部署了一個小型的web服務(wù),如果系統(tǒng)如果產(chǎn)生了人員進(jìn)出營區(qū)或者車輛進(jìn)出營區(qū)的記錄,控制中心服務(wù)器向顯示終端發(fā)送http post請求,同時將相關(guān)的數(shù)據(jù)作為post數(shù)據(jù)的參數(shù),發(fā)送到顯示終端,以實時顯示門衛(wèi)的人員和車輛進(jìn)出信息[10-12]。顯示終端的界面如下圖所示。
圖2 門禁顯示Fig.2 Access controller info
本文實現(xiàn)的基于開源硬件的門禁控制系統(tǒng),結(jié)合了網(wǎng)絡(luò)技術(shù)、開源技術(shù)、數(shù)據(jù)庫技術(shù),實現(xiàn)了跨平臺無需客戶端軟件的工作模式,為組建跨地域、大規(guī)模門禁管理系統(tǒng)提供了可能。本系統(tǒng)經(jīng)過測試,運行良好,具有比較好的可維護(hù)性和擴展性,可以方便接入現(xiàn)有的信息控制系統(tǒng)。隨著支撐環(huán)境的不斷升級,本系統(tǒng)也要進(jìn)一步加強和完善,并達(dá)到一個理想的水平。
[1] 劉雍. 基于S3C6410 的嵌入式Web視頻仿真門禁系統(tǒng)設(shè)計[J]. 軟件, 2013, 34(2): 4-6.
[2] 鄭祿, 常佳. 基于Arduino與Python的實驗室聯(lián)動門禁報警系統(tǒng)設(shè)計[J]. 軟件導(dǎo)刊, 2017, 16(01): 76-77.
[3] 柯資穎. 嵌入式門禁系統(tǒng)軟件的設(shè)計與實現(xiàn)[D]. 西安電子科技大學(xué), 2008.
[4] 張鯤, 陳美伊, 李壯, 等. 基于單片機的家庭智能火災(zāi)報警系統(tǒng)的設(shè)計[J]. 軟件,2014, 35(4): 87-89, 96.
[5] 王瑩, 王曉麗. 基于物聯(lián)網(wǎng)技術(shù)的智能門禁系統(tǒng)的設(shè)計與研究[J]. 吉林建筑大學(xué)學(xué)報, 2017, 34(01): 83-86+92.
[6] 黃鶴松, 劉容良, 郭恒蘭, 魏國招. 一種基于CPU卡的門禁系統(tǒng)的設(shè)計[J]. 電子技術(shù)應(yīng)用, 2017, 43(01): 137-140+ 144.
[7] 瞿小玲, 王潔. RFID在智能門禁系統(tǒng)中的應(yīng)用[J]. 黑龍江科技信息, 2011, (21): 32-33.
[8] 張鯤, 陳美伊, 李壯, 等. 基于單片機的家庭智能火災(zāi)報警系統(tǒng)的設(shè)計[J]. 軟件, 2014, 35(4): 87-89, 96.
[9] 原巍春. 基于RFID技術(shù)的門禁系統(tǒng)的研究和設(shè)計[D]. 哈爾濱工業(yè)大學(xué), 2015.
[10] 嚴(yán)士超, 果莉, 李明, 房俊龍, 張繼成. 基于泛在網(wǎng)技術(shù)的實驗室智能門禁考勤管理系統(tǒng)的研究[J]. 實驗技術(shù)與管理, 2014, 31(05): 162-163+170.
[11] 廖云升. 生產(chǎn)區(qū)門禁系統(tǒng)技術(shù)方案淺談[J]. 科技資訊,2013, (13): 14+16.
[12] 瞿小玲, 王潔. RFID在智能門禁系統(tǒng)中的應(yīng)用[J]. 黑龍江科技信息, 2011, (21): 32-33.
[13] 馬文科. 基于ARM的指紋識別門禁系統(tǒng)的設(shè)計與實現(xiàn)[D].湖南大學(xué), 2009.
Design of Door Access System Based on Open Source Hardware
ZHAO Peng
(Xichang Statlite Launch Center, Sichuan Xichang, 615000)
The paper introduce a door access control system based on open source hardware. The system uses the open source hardware Arduino control board as the control chip, the IC number readed by IC reader, through the Ethernet shhied sent to the information center server and Judgment authority, To control the Arduino board to control the door open. Using open source hardware raspberry pi to realize the display of access control data. Test shows that the system is low cost, low power consumption, good scalability, stable and reliable operation.
Access control; Arduino; Raspberry pi; Open source hardware
TP29
A
10.3969/j.issn.1003-6970.2017.12.053
本文著錄格式:趙鵬. 基于開源硬件的門禁控制系統(tǒng)[J]. 軟件,2017,38(12):267-269
趙鵬(1986-),男,工程師,網(wǎng)絡(luò)管理。