一种低成本的室内人数监控系统
2021-08-26秦立静
秦立静,刘 欢
(甘肃农业大学 信息科学技术学院,甘肃 兰州 730070)
0 引 言
准确的人数统计信息对于学校、车站、地铁、餐馆、展览馆等公共场所进行资源的合理分配和利用非常重要[1]。基于这种需求,人数统计系统应运而生,尽管它的发展非常迅速,但是目前进行人数统计的方式主要还是通过视频监控系统实现。相对于一些只要求记录人数数据而不要求采集人的具体特征的场所而言,一套完整的视频监控系统的制作成本较高,造成了不必要的资源浪费。利用STC89C52单片机技术和传感器技术设计的人数监控系统[2-6],集温湿度环境测量、体温检测、时钟显示和人数统计于一体,以其成本低廉,准度较高等优势,满足了当前市场的需求,可广泛应用于公共场所。
1 系统总体方案设计
基于单片机技术与传感器技术的智能人数统计系统主要以STC89C52单片机为中心进行设计和扩展,系统功能通过软硬件结合的方式实现,外围主要包括电源电路、按键电路、时钟电路、数据采集单元、数据处理与分析单元等。系统设计框图如图1所示。
图1 系统整体设计框图
2 系统硬件电路设计
2.1 STC89C52主控单元电路设计
选择STC89C52单片机作为系统的核心,主要完成一些运算并控制每个模块电路的运行。STC89C52单片机系统主要由供电电路、复位电路、时钟电路等组成。
2.2 电源电路
在单片机系统中,为电路供电的电源模块是保证系统能够稳定工作的重要前提。USB电源可以提供5 V直流电源,确保系统正常工作。该设备能真正做到“即插即用”,具有速度快、连接灵活、及时补充电源等优点,且相比使用电池供电,USB轻巧便携,更环保。
2.3 按键电路设计
按键设计选用3个独立按键实现电路的不同功能,按键的一端分别与单片机的25,26,27引脚连接,另一端接地。由于此设计采用STC89C52单片机,而P2口有一个内置的上拉电阻,因此无需再连接上拉电阻。当手动按下其中某一个按键时,该按键对应的单片机引脚被拉低,松开按键后,I/O口变为高电平。可根据单片机引脚的高低电平变化判断对应的按键操作。
2.4 数据采集单元设计
系统数据采集主要包括室内温湿度的采集和人数统计。
2.4.1 温湿度信息采集技术
科学研究表明,当室内温度处于19~24 ℃,湿度处于40%RH~60%RH时,室内空气较好,环境舒适,人的大脑运转和心理状态最佳,思维反应快,工作效率高[7],掌握室内的温湿度情况能够为人们提供良好的工作环境。该设计选用DHT11传感器检测室内的温湿度变化情况。DHT11数字温湿度传感器是一种结合温度和湿度测量的复合传感器[8],只有4个引脚,接口简单、体积小、响应速度快、抗干扰性强、质量好、价格低,为4针单排引脚封装,采用单线制串行接口连接,相比其他电路而言比较简单,可靠性和稳定性高。
2.4.2 红外光电传感器
人数统计模块选用E18-D80NK传感器实现,它是一种集发射与接收于一体的红外数字反射传感器[9],利用被检测物体对红外光束的遮挡或反射对物体进行检测。当室内有人员出入时,发射器发射的光线被遮挡后返回接收器端,然后在接收器内部将光信号转化为电信号,并在放大电路中对其进行滤波、放大、解调等操作后输出低电平信号,此时光电开关的指示灯被点亮;反之,无人员进出时,红外线反射的光不能使接收管达到饱和状态,光电开关的指示灯处于熄灭状态。
2.4.3 时钟模块设计
选用DS1302时钟芯片实时显示时间,该芯片与单片机的连线较少,很大程度上节省了单片机的系统资源。单片机通过读取DS1302中寄存器的数据就能得到正确的时钟和日历信息。
DS1302时钟芯片性能好,功耗低,内部有RAM实时时钟电路,可以对年、月、日、时、分、秒进行准确计时,对闰年进行补偿,并设置时间模式(12小时制或24小时制)。除此之外,该芯片还有充电寄存器,可在断电时工作。芯片工作电压为2.5~5.5 V,在传送数据时,只有将RST引脚端置为高电平,才能将命令字及数据送入寄存器,如果RST端为低电平,则终止数据的传送,无法显示时间。
2.4.4 红外测温设计
使用MLX90614红外测温传感器进行人体温度检测。人体热量以热辐射的形式散发到环境中,被测物体发出的能量汇集在光电探测器,将红外信号转换为对应的电信号,经过内部放大器和A/D信号处理电路后送到单片机中处理[10]。将处理后的数据送到液晶显示器中显示,由此确定人体温度是否正常。
相比传统的体温计而言,该系统进行温度测量时无需接触,只需将探测窗口对准脸的位置,即可安全、快速、准确地测出人体温度,操作简单、便捷。
2.5 数据处理与分析
2.5.1 人数统计
选用2个红外光电开关实现实时人数统计。将2个红外传感器并排安装在每个教室的前门或后门,区分传感器被先后触发的顺序,将光电信号转换成单片机能够读取的高低电平信号,单片机分析处理中断信号并计算,实现人数统计。
2.5.2 数据显示模块设计
LCD12864液晶显示模块主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成,能够实现多位运行以及多线连接[11-12],可以将单片机输出的参数显示在界面,操作方便,安装简单,成本较低。通过单片机运行处理电路,结合LCD12864液晶显示器,将放大、滤波处理后的有效数据在显示屏上使用阿拉伯数字显示出来。
3 系统软件设计
程序设计主要涉及数据检测部分和数据实时显示部分,其准确性直接影响系统的准确性与可靠性。将程序分解为独立的子程序,进行编程和调试。其中,数据检测部分负责检测来自光电开关电路的脉冲信号是否发生加减变化,并选择性记录数据;显示部分用来显示输出的数值变化。软件实现流程如图2所示。
图2 软件实现流程
3.1 LCD显示子函数
通过LCD12864内部的指令实现数据的写入和读取,并实时显示、存储[13]。显示程序主要包括初始化、写指令、读指令等,程序运行过程中其数据显示流程如图3所示。
图3 数据显示流程
3.2 室内人数统计子函数
无人经过时,2个红外传感器接收器端均为高电平,不会产生脉冲信号,单片机计数保持不变。先判断光电开关1和光电开关2的电平,如果检测到光电开关1为低电平,之后检测光电开关2也为低电平,则说明有人员进入室内,人数加1;若光电开关2为高电平,则重新开始检测。反之,如果先检测到光电开关2为低电平,之后检测光电开关1为低电平,则说明有人走出,人数减1;若光电开关2为高电平,则重新开始检测并记录人数。人数统计流程如图4所示。
图4 人数统计流程
3.3 红外测温函数设计
接通电源时,STC89C52单片机自动复位,运行程序,进行红外测温并接收数据,若测得的体温值高于36.7 ℃,则报警;若低于36.7 ℃,则正常显示温度,之后再判定是否结束温度测量程序。红外测温流程如图5所示。
图5 红外测温流程
4 系统安装与调试
本系统在设计过程中,对于软件和硬件的设计均采用模块化形式进行[13],分工明确,可确保系统在出现异常时迅速进行判断和分析。先进行硬件电路的设计和调试,再进行软件部分程序的编写与运行,完成每个模块的设计后,将程序导入单片机中运行调试。
4.1 硬件安装及调试
硬件电路是实现软件电路的基础,系统设计中,从选型到完成设计所需模块较多,涉及的电路较复杂,包含单片机微处理器、数据采集和分析模块、数据显示模块、电源模块、按键模块等,因此硬件焊接和组装的工作量较大。在制作硬件电路之前,需按照功能将电路划分为小模块,然后合理安排布线,理清元件中每个引脚的正负和功能。最后,在Altium Designer软件中绘制出各模块的原理图,检查无误后在电路板上焊接。
4.2 软件调试
本系统程序通过C语言编写,不仅效率高,程序执行速度也比较快,且容易理解,最重要的是它具有完善的模块程序结构。在编写完每个模块的程序后进行调试,只有通过调试才能查找和修改代码,起到矫正作用。选用目前较受欢迎的Keil软件进行程序的编写和调试,生成.hex文件,通过串口烧录进单片机后上电即可运行。
5 结 语
本文设计了一种以单片机为核心部件的室内人数监控系统,实现了红外信息采集、温湿度检测、人数统计、时钟显示等功能。该系统可用于车站、学校、餐馆、城市公园等场所的人数统计和温湿度提示,也可用于极端社会环境下的人员流动安全监控与体温检测。