引言
智能人数统计、环境监测等系统,一直以来备受无线通信及电子行业的高度关注,并被广泛应用于机场、车站、剧院等人流量较大且空间有限的环境资源中。教室作为现在大学生最为熟悉的学习场所,其环境的优劣直接关系到学生的学习效率。教室人数统计系统作为出勤率统计的辅助系统,一方面,服务于教师,使教师能将精力集中于教学活动而非出勤率考量活动(点名或签到);另一方面,便于学校教师管理部门实时获得教室利用率等信息的传递与反馈,从而合理安排教室资源,同时也有助于同学快速了解教室使用情况。
蓝牙无线技术是使用范围广泛的全球短距离无线标准之一,蓝牙技术联盟(SIG)于2010年7月发布了蓝牙4.0版本核心规范,自此蓝牙迈入了4.0时代。蓝牙4.0规范的核心是低功耗技术,即蓝牙4.0BLE。该技术最大特点是拥有超低的运行功耗和待机功耗,蓝牙低功耗设备使用一粒纽扣电池便可以持续工作数年之久。同时,该设备可以应用于对成本和功耗都有严格要求的无线方案,并广泛应用于医疗保健、体育健身、家庭娱乐、传感器物联网等众多领域[1]。
因此,本文设计了一种基于最新蓝牙4.0技术的教室人数统计系统,相比于已有的人数统计系统[2],具有低成本、低功耗和更好的通用性能,扩展了无线传感器网络在智能手机、平板电脑等移动终端上的应用,具有很高的实用价值和参考价值。
1 系统架构
系统主要由CC2540射频单片机[3]、液晶显示器、红外光电传感器、温湿度传感器及WiFi模块组成,分为教室前门和后门两个子系统,其中,前门蓝牙模块作为主节点(Central),而后门蓝牙模块作为从节点(Peripheral)。与后门系统相比,前门系统多了一个WiFi模块,其主要作用是为手机终端和上位机提供连接。系统组成框图如图1所示。
图1 硬件设计总体框图
前后门子系统的温湿度传感器和光电传感器负责采集教室的温湿度、人数信息,前门(后门)子系统将采集到的数据通过蓝牙4.0协议发送到后门(前门)子系统,接收到的数据将通过液晶显示器显示在门口,也可以通过WiFi发送给上位机监控终端和手机终端。
2 系统的硬件设计
2.1 处理器单元
主控单元以CC2540射频单片机为核心,CC2540是TI公司推出的集成了2.4 GHz射频收发器、完全兼容8051内核的无线射频单片机,它与蓝牙低功耗协议栈共同构成高性价比、低功耗的片上系统(SoC)解决方案,非常适合蓝牙低功耗应用。它也包含了丰富的硬件资源,包括21个通用I/O口、8通道12位ADC、3个通用定时器、2个串口、5通道DMA,支持SPI、USB等。
CC2540外围电路简单,外接几个阻容器件构成的滤波电路和PCB天线即可实现网络节点的构建。CC2540最小系统主要由32 MHz片外晶振、32 kHz睡眠晶振、复位电路、+5 V电源及去耦电容、射频阻抗匹配电路及单极性PCB天线组成。如果芯片不需要休眠,32 kHz晶振可以不用。CC2540芯片外部接口电路如图2所示。
图2 CC2540接口电路
其中,L1为磁珠,型号为BLM15HG102SN1D,其在100 MHz时,阻抗为1 kΩ。
2.2 WiFi模块
人数统计模块与服务器端通过WiFi模块实现数据传输,一般校园内的无线网络都使用WiFi覆盖并且会覆盖每一个教室,为了节约成本,可以合理利用现有的资源,实现每个数据统计模块与服务器之间的无线通信。
WiFi模块选用的芯片是海凌科电子推出的低成本模块HLKRM04,该模块是基于通用串行接口的符合网络标准的嵌入式模块,内置TCP/IP协议栈,能够实现用户串口、以太网、无线网(WiFi)3个接口之间的转换[4]。通过HLKRM04模块,传统的串口设备在不需要更改任何配置的情况下,即可通过Internet网络传输自己的数据。HLKRM04模块通过串口与CC2540相连。
2.3 传感器模块
温湿度传感器采用瑞士Scnsirion公司推出的一款数字温湿度传感器芯片SHT11。其主要特点如下:将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上;提供二线数字符串行接口,接口简单、传输可靠性高、测量精度可编程调节、测量精确度高、封装尺寸超小,测量和通信结束后,自动转入低功耗模式[5]。将其数据线接口外接上拉电阻,电源与地之间加上100 nF去耦电容,CC2540就可以用它来采集温湿度信息。
光电传感器选用的是上海泰武电器有限公司型号为E3FDS304C的光电传感器,其本身已经将放大器LM324、电阻等外围器件集成在该模块内,并引出三根线,分别是地线、数据线和电源线。只要将数据线直接接在CC2540的外部中断接口并接好电源和地线,就可以实现计数的功能。在前后门系统各装两个光电传感器,并排架设,一前一后。
3 系统的软件设计
系统软件设计是根据蓝牙4.0BLE协议[6],在蓝牙4.0BLE协议栈基础上构建节点应用程序,实现蓝牙设备的互联以及无线数据的发送。此协议栈不仅完全支持CC2540芯片的单模模式,而且还具有结构简单、清晰、兼容性高以及可以免费下载等优点,极大地节省了系统开发的成本。
协议栈代码以C语言为基础,具有很强的易读性,开发人员只需要修改部分代码便能实现相应的特定功能,节省了软件开发的时间及成本。协议栈的实现方式采用分层的思想,从下到上一共分了8层,分别为物理层、链路层、控制接口层、逻辑链路控制及自适应协议层、安全管理层、属性协议层、通用访问配置文件层(GAP)、通用属性配置文件层(GATT),掌握与应用紧密关联层(GAP和GATT)就可以满足大部分设计需要。
在使用BLE协议栈进行应用程序开发过程中,开发者不必关心BLE协议栈的具体细节,但要求其对BLE协议栈的基本构成和内部工作原理有个清晰的认识。关于蓝牙4.0协议栈的内容可以看相关参考文献作进一步的了解。
软件的设计主要包括3部分:一是温湿度和人数数据的采集与处理,二是无线数据的收发,三是上位机与手机终端的设计。
3.1 温湿度和人数数据的采集与处理
温湿度传感器SHT11是I2C总线接口,由于CC2540没有I2C总线接口(CC2541有I2C总线接口),因此采用模拟I2C总线进行数据的读写,SHT11的驱动程序需要参考SHT11的数据手册,这里不再详述。而对于进出人数的判断,主要是利用进出门时两个光电传感器所产生的信号顺序进行判断。比如,前门系统放着的两个光电传感器分别为A和B,当人走进教室时,A先产生信号,B后产生信号,此时判断有一个人进了教室;而当人走出教室时,B先产生信号,A后产生信号,此时判断有一个人出了教室。人数采集流程如图3所示。
图3 人数采集流程图
3.2 无线数据的收发
蓝牙节点组网中,只能存在一个主节点和单个或者多个从节点,从节点是发出信号者,主节点是扫描且发起连接者[7]。当从节点发出广告信号(包括设备地址和设备名称之类的附加信息),主节点收到此广告信号后,向从节点发出扫描请求,当从节点回应扫描时,就完成了设备发现过程。接着主节点向从节点发出连接请求(包括连接时隙、从节点待机次数、连接超时值),从节点回应连接,自此主从节点建立了连接。
蓝牙从节点与主节点间的数据传输可以分为主节点向从节点读写和从节点向主节点发送数据两种。当主节点向从节点读写数据时,主节点会调用GATT_WriteCharValue或者GATT_ReadCharValue和从节点进行通信。
而当从节点向主节点发送数据时,从节点需要通过notify的方式,也就是通过调用GATT_Notification发起和主节点的通信。在本设计中,前门系统通过调用GATT_WriteCharValue将采集到的数据传输给后门系统,后门系统通过调用GATT_Notification将采集到的数据传输给前门系统,确保了人数统计的准确性。
在CC2540的设计应用中,低功耗是尤为重要的内容,为充分发挥其作用,同时利用人员进出教室时光电传感器数据接口产生中断信号的特点,在没有人员进出教室时,蓝牙节点将处于深度睡眠状态(功耗最低,只能通过复位或者中断唤醒),而当教室有人员进出时,立刻唤醒节点进行数据的采集与传输。
3.3 上位机与手机终端的设计
由控制系统产生的教室人数、教室温湿度等数据通过WiFi模块传给上位机监控端,这样有利于管理人员对教室的管理。当教室没有人时,管理员可以第一时间知道,去关掉灯以节约能源。本次设计的上位机采用JAVA设计而成,主要是采用Swing工具实现用户操作界面,结合SQL数据库技术实现数据的存储和远程数据的访问。上位机与人数据统计模块之间采用JAVA自带的Socket中的UDP协议实现相互之间的通信。上位机与手机终端之间通过HTTP的POST方式实现全网内的无线通信。上位机界面如图4所示。
图4 上位机界面
手机终端APP程序设计是使用Myeclipse2014开发环境,在程序中通过JDBC远程访问服务器端的SQL数据库。用户仅需输入所要查询的教室编号,点击查询按钮便可获得实时的教室信息,并将查询结果显示在下面的TextView中。查询的结果包括教室是否有课、教室的人数和教室的气温。手机终端的安卓界面如图5所示。
图5 手机终端界面
结语
教室作为一个与学生息息相关的环境资源,舒适、安逸的学习环境可以极大地提高学习效率以及学习积极性。但在现阶段,大多数学校面临着教室资源的不足,其中很大一部分原因并非教室数量不足,而是因为缺乏实时数据反馈而导致资源的不均衡使用以及学校对教室资源管理不能进行实时的调控。
本文基于蓝牙4.0标准规范,提出了一种低功耗、高可靠性的教室人数统计智能系统,其利用蓝牙4.0协议进行无线数据的传输,并通过WiFi模块实现蓝牙无线网络与以太网之间的互连。
该系统能将采集到的教室内的实时人数和温湿度信息等用液晶屏幕显示出来,同时,通过WiFi模块将采集到的数据传输给远程的上位机,手机等终端设备也可以通过该模块查询教室信息。
该系统的实现和推广既方便了学生,又为教学管理提供了便利。但由于种种原因,此系统还存在一些不足,比如,目前只有安卓系统的客户端可以查询教室信息,其应用和推广还有很大限制,希望未来能够在如iOS系统等客户端上进行数据查询。