APP下载

基于Arduino与Python的实验室联动门禁报警系统设计

2017-03-06郑禄常佳

软件导刊 2017年1期
关键词:实验室安全

郑禄+常佳

摘要摘要:为满足高校实验室信息化建设中的安全需求,设计了基于Arduino和Python的实验室联动门禁报警系统。提出基于Arduino开源单片机为核心模块的设计方案,该方案利用开源的Python语言编写API接口连接各部分功能,使它们能互相通信,解决了传统门禁的弊端,提高了实验室的安全性。

关键词关键词:Arduino;Python;实验室安全;联动报警

DOIDOI:10.11907/rjdk.162733

中图分类号:TP319文献标识码:A文章编号文章编号:16727800(2017)001007602

引言

高等院校实验室承担着学校实验教学、科研等重要任务,安全保障越来越受到重视[1]。随着物联网技术的发展,门禁报警系统成为最主要的安保系统之一。门禁报警系统应用是高校实验室信息化建设的一个重要组成部分,是实验室安全管理的必然要求,也是保障实验室安全开放的必要手段和方法[2]。

实验室联动门禁报警系统与传统的门禁安保设备不同,它变被动的监控与报警为主动模式。传统实验室门禁系统只是简单实现控制学生进出事务,采用机械式门锁和钥匙[3],若管理人员钥匙丢失则直接影响实验教学,严重者会造成教学事故发生。本文利用Arduino和Python技术设计的门禁系统,具有很好的联动性、扩展性、安全性和实用性,能够满足复杂的环境要求,适应实验室建设发展。

1系统硬件设计

1.1Arduino简介

Arduino是基于单片机的人机互动产品开发平台,具有丰富易用的模块,常被称为“电子积木”。Arduino的硬件平台是开源项目,任何人都可以在Arduino的硬件平台上做二次开发。Arduino硬件平台有基于AVR的单片机主控板,各式I/O电子模板,以及丰富的外围模块[4]。本系统开发环境采用ATmega32u4微控制器板,它有20个数字I/O引脚,1个16 MHz的晶体振荡器,1个Micro USB接口,1个DC接口,1个ICSP接口,1个复位按钮。使用的Leonardo是Arduino控制器中最新的多功能微型控制器,直接使用ATmega32u4的USB通信功能,减除了USB转UART芯片程序。

1.2联动报警基本原理

联动报警功能使用TCP/IP协议。系统将各种门禁设备的IP地址与MAC地址嵌入在Arduino单片机代码中进行绑定,并用代码标记对应的位置,用来区分不同实验室的不同设备。报警功能实现方式是将控制报警的中断函数写在Arduino单片机代码中,报警函数通过IP协议找到目的地址,利用TCP协议进行功能通信。

1.3系统结构

实验室联动门禁报警系统可以接收到所有区域门禁发送的信息,实验员通过门禁控制器按钮发送报警信息到本地单片机。本地单片机调取报警中断函数,通过TCP协议80端口传到PC端的主控制中心。主控制中心将接收到的信息传送到实验室联动门禁报警系统,系统根据数据库中的设备信息进行比对,判断是否是报警信息。如是系统报警则将信息记录在数据库中,同时开启多线程将报警信息发送到其它门禁系统。报警功能开启,LED显示屏显示报警位置,以此判断找到安全出口,快速安全撤离。系统结构原理如图1所示。

2系统软件设计

2.1Python简介

Python是一种面向对象的解释型计算机程序设计语言。Python的源代码和解释器遵循GPL协议,语法简洁清晰,具有简洁性、易读性以及可扩展性,同时具有丰富的库函数支持[5],可以快速生成程序的原型。本系统采用Python语言编写部分核心代码。

聯动报警功能由C语言完成,LED屏显示由C#语言完成,由Python语言搭建系统整体环境。各种功能对接使用Python的Application Programming Interface接口,它能够便捷地对系统进行维护和管理。同时,Python的API接口可以快速将不同编程语言实现的功能模块对接在一起实现相互通信功能,解决了系统中多语言集成的兼容性问题。

2.2系统流程设计

程序开始时对Arduino单片机进行初始化设置,单片机通过判断触发报警按钮检测是否有报警信号传来,当检测到有报警信号传来时,单片机会通过TCP/IP协议将报警信号传给PC端的Python主控制器。Python主控制器会将报警信号传递给其它场所,进而联动报警,LED屏显示报警场所信息。系统流程如图2所示。

实验室联动门禁报警系统实现了多门联动报警功能。有报警信息时快速触发,控制器中心及时判断报警信息并及时发送,实验相关人员能在第一时间得到报警信息,及时安全逃出实验室。系统的核心代码实现主要涉及接收请求的各种设备IP地址、开启报警时间、增加报警日志、开启LED线程、开启门禁线程、停止报警信息等。联动报警核心伪代码如下:

3系统实现

以两门联动报警为例。当门禁系统处于正常状态时,如图3所示。当1号门报警时, 2号门接收到报警联动信息,LED屏显示报警信息并正确显示报警地点,如图4所示。当2号门报警时, 1号门接收到报警联动信息,LED屏显示报警信息并正确显示报警地点,如图5所示。

结语

基于Arduino和Python搭建的实验室联动门禁报警系统在一个实验室发生紧急情况时,其他实验室实验员可立即通过本系统收到紧急报警信息,迅速通过安全出口撤离学生,为师生人身安全及实验设备安全提供保障。本系统借助先进的信息技术,消除了实验室门禁间的信息孤岛,具有安全、可靠、管理简单等特点,提高了实验室的安全性。

参考文献:

[1]王治文,陈俊武,洪慧.面向开放管理的实验室门禁系统[J]. 实验室研究与探索,2009,28(6):6063.

[2]李郁峰,高小明.基于网络的低成本实验室门禁管理系统[J].实验室研究与探索, 2010,29(6):169171.

[3]冯德尹.基于B/S架构的实验室门禁管理系统设计[J].数据库与信息管理, 2014,16(38):5961.

[4]杨继志,郭敬.Arduino的互动产品平台创新设计[J].单片机与嵌入式系统应用, 2012,12(4):3941.

[5]罗亮,陈红,卢解卿.谈如何用Python控制Arduino[J].中国信息技术教育,2016 (8):6567.

责任编辑(责任编辑:杜能钢)

第1期 陈光辉,王巍琳:基于ARM与Web的养殖场远程监控系统设计软 件 导 刊2017年标题

猜你喜欢

实验室安全
基于多角度构建高校实验室安全体系的探索与研究