鄭祿+常佳
摘要摘要:為滿足高校實驗室信息化建設(shè)中的安全需求,設(shè)計了基于Arduino和Python的實驗室聯(lián)動門禁報警系統(tǒng)。提出基于Arduino開源單片機為核心模塊的設(shè)計方案,該方案利用開源的Python語言編寫API接口連接各部分功能,使它們能互相通信,解決了傳統(tǒng)門禁的弊端,提高了實驗室的安全性。
關(guān)鍵詞關(guān)鍵詞:Arduino;Python;實驗室安全;聯(lián)動報警
DOIDOI:10.11907/rjdk.162733
中圖分類號:TP319文獻標(biāo)識碼:A文章編號文章編號:16727800(2017)001007602
引言
高等院校實驗室承擔(dān)著學(xué)校實驗教學(xué)、科研等重要任務(wù),安全保障越來越受到重視[1]。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,門禁報警系統(tǒng)成為最主要的安保系統(tǒng)之一。門禁報警系統(tǒng)應(yīng)用是高校實驗室信息化建設(shè)的一個重要組成部分,是實驗室安全管理的必然要求,也是保障實驗室安全開放的必要手段和方法[2]。
實驗室聯(lián)動門禁報警系統(tǒng)與傳統(tǒng)的門禁安保設(shè)備不同,它變被動的監(jiān)控與報警為主動模式。傳統(tǒng)實驗室門禁系統(tǒng)只是簡單實現(xiàn)控制學(xué)生進出事務(wù),采用機械式門鎖和鑰匙[3],若管理人員鑰匙丟失則直接影響實驗教學(xué),嚴重者會造成教學(xué)事故發(fā)生。本文利用Arduino和Python技術(shù)設(shè)計的門禁系統(tǒng),具有很好的聯(lián)動性、擴展性、安全性和實用性,能夠滿足復(fù)雜的環(huán)境要求,適應(yīng)實驗室建設(shè)發(fā)展。
1系統(tǒng)硬件設(shè)計
1.1Arduino簡介
Arduino是基于單片機的人機互動產(chǎn)品開發(fā)平臺,具有豐富易用的模塊,常被稱為“電子積木”。Arduino的硬件平臺是開源項目,任何人都可以在Arduino的硬件平臺上做二次開發(fā)。Arduino硬件平臺有基于AVR的單片機主控板,各式I/O電子模板,以及豐富的外圍模塊[4]。本系統(tǒng)開發(fā)環(huán)境采用ATmega32u4微控制器板,它有20個數(shù)字I/O引腳,1個16 MHz的晶體振蕩器,1個Micro USB接口,1個DC接口,1個ICSP接口,1個復(fù)位按鈕。使用的Leonardo是Arduino控制器中最新的多功能微型控制器,直接使用ATmega32u4的USB通信功能,減除了USB轉(zhuǎn)UART芯片程序。
1.2聯(lián)動報警基本原理
聯(lián)動報警功能使用TCP/IP協(xié)議。系統(tǒng)將各種門禁設(shè)備的IP地址與MAC地址嵌入在Arduino單片機代碼中進行綁定,并用代碼標(biāo)記對應(yīng)的位置,用來區(qū)分不同實驗室的不同設(shè)備。報警功能實現(xiàn)方式是將控制報警的中斷函數(shù)寫在Arduino單片機代碼中,報警函數(shù)通過IP協(xié)議找到目的地址,利用TCP協(xié)議進行功能通信。
1.3系統(tǒng)結(jié)構(gòu)
實驗室聯(lián)動門禁報警系統(tǒng)可以接收到所有區(qū)域門禁發(fā)送的信息,實驗員通過門禁控制器按鈕發(fā)送報警信息到本地單片機。本地單片機調(diào)取報警中斷函數(shù),通過TCP協(xié)議80端口傳到PC端的主控制中心。主控制中心將接收到的信息傳送到實驗室聯(lián)動門禁報警系統(tǒng),系統(tǒng)根據(jù)數(shù)據(jù)庫中的設(shè)備信息進行比對,判斷是否是報警信息。如是系統(tǒng)報警則將信息記錄在數(shù)據(jù)庫中,同時開啟多線程將報警信息發(fā)送到其它門禁系統(tǒng)。報警功能開啟,LED顯示屏顯示報警位置,以此判斷找到安全出口,快速安全撤離。系統(tǒng)結(jié)構(gòu)原理如圖1所示。
2系統(tǒng)軟件設(shè)計
2.1Python簡介
Python是一種面向?qū)ο蟮慕忉屝陀嬎銠C程序設(shè)計語言。Python的源代碼和解釋器遵循GPL協(xié)議,語法簡潔清晰,具有簡潔性、易讀性以及可擴展性,同時具有豐富的庫函數(shù)支持[5],可以快速生成程序的原型。本系統(tǒng)采用Python語言編寫部分核心代碼。
聯(lián)動報警功能由C語言完成,LED屏顯示由C#語言完成,由Python語言搭建系統(tǒng)整體環(huán)境。各種功能對接使用Python的Application Programming Interface接口,它能夠便捷地對系統(tǒng)進行維護和管理。同時,Python的API接口可以快速將不同編程語言實現(xiàn)的功能模塊對接在一起實現(xiàn)相互通信功能,解決了系統(tǒng)中多語言集成的兼容性問題。
2.2系統(tǒng)流程設(shè)計
程序開始時對Arduino單片機進行初始化設(shè)置,單片機通過判斷觸發(fā)報警按鈕檢測是否有報警信號傳來,當(dāng)檢測到有報警信號傳來時,單片機會通過TCP/IP協(xié)議將報警信號傳給PC端的Python主控制器。Python主控制器會將報警信號傳遞給其它場所,進而聯(lián)動報警,LED屏顯示報警場所信息。系統(tǒng)流程如圖2所示。
實驗室聯(lián)動門禁報警系統(tǒng)實現(xiàn)了多門聯(lián)動報警功能。有報警信息時快速觸發(fā),控制器中心及時判斷報警信息并及時發(fā)送,實驗相關(guān)人員能在第一時間得到報警信息,及時安全逃出實驗室。系統(tǒng)的核心代碼實現(xiàn)主要涉及接收請求的各種設(shè)備IP地址、開啟報警時間、增加報警日志、開啟LED線程、開啟門禁線程、停止報警信息等。聯(lián)動報警核心偽代碼如下:
3系統(tǒng)實現(xiàn)
以兩門聯(lián)動報警為例。當(dāng)門禁系統(tǒng)處于正常狀態(tài)時,如圖3所示。當(dāng)1號門報警時, 2號門接收到報警聯(lián)動信息,LED屏顯示報警信息并正確顯示報警地點,如圖4所示。當(dāng)2號門報警時, 1號門接收到報警聯(lián)動信息,LED屏顯示報警信息并正確顯示報警地點,如圖5所示。
結(jié)語
基于Arduino和Python搭建的實驗室聯(lián)動門禁報警系統(tǒng)在一個實驗室發(fā)生緊急情況時,其他實驗室實驗員可立即通過本系統(tǒng)收到緊急報警信息,迅速通過安全出口撤離學(xué)生,為師生人身安全及實驗設(shè)備安全提供保障。本系統(tǒng)借助先進的信息技術(shù),消除了實驗室門禁間的信息孤島,具有安全、可靠、管理簡單等特點,提高了實驗室的安全性。
參考文獻:
[1]王治文,陳俊武,洪慧.面向開放管理的實驗室門禁系統(tǒng)[J]. 實驗室研究與探索,2009,28(6):6063.
[2]李郁峰,高小明.基于網(wǎng)絡(luò)的低成本實驗室門禁管理系統(tǒng)[J].實驗室研究與探索, 2010,29(6):169171.
[3]馮德尹.基于B/S架構(gòu)的實驗室門禁管理系統(tǒng)設(shè)計[J].數(shù)據(jù)庫與信息管理, 2014,16(38):5961.
[4]楊繼志,郭敬.Arduino的互動產(chǎn)品平臺創(chuàng)新設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用, 2012,12(4):3941.
[5]羅亮,陳紅,盧解卿.談如何用Python控制Arduino[J].中國信息技術(shù)教育,2016 (8):6567.
責(zé)任編輯(責(zé)任編輯:杜能鋼)
第1期 陳光輝,王巍琳:基于ARM與Web的養(yǎng)殖場遠程監(jiān)控系統(tǒng)設(shè)計軟 件 導(dǎo) 刊2017年標(biāo)題