微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于蓝牙4.0的教室人数监测智能系统设计

基于蓝牙4.0的教室人数监测智能系统设计

时间:10-15 来源:互联网 点击:

外接上拉电阻,电源与地之间加上100nF去耦电容,CC2540就可以用它来采集温湿度信息。

光电传感器选用的是上海泰武电器有限公司型号为E3F-DS304C的光电传感器,其本身已经将放大器LM324、电阻等外围器件集成在该模块内,并引出三根线,分别是地线、数据线和电源线。只要将数据线直接接在CC2540的外部中断接口并接好电源和地线,就可以实现计数的功能。在前后门系统各装两个光电传感器,并排架设,一前一后。

3 系统的软件设计

系统软件设计是根据蓝牙4.0BLE协议,在蓝牙4.0BLE协议栈基础上构建节点应用程序,实现蓝牙设备的互联以及无线数据的发送。此协议栈不仅完全支持CC2540芯片的单模模式,而且还具有结构简单、清晰、兼容性高以及可以免费下载等优点,极大地节省了系统开发的成本。

协议栈代码以C语言为基础,具有很强的易读性,开发人员只需要修改部分代码便能实现相应的特定功能,节省了软件开发的时间及成本。协议栈的实现方式采用分层的思想,从下到上一共分了8层,分别为物理层、链路层、控制接口层、逻辑链路控制及自适应协议层、安全管理层、属性协议层、通用访问配置文件层 (GAP)、通用属性配置文件层(GATT),掌握与应用紧密关联层(GAP和GATT)就可以满足大部分设计需要。

在使用BLE协议栈进行应用程序开发过程中,开发者不必关心BLE协议栈的具体细节,但要求其对BLE协议栈的基本构成和内部工作原理有个清晰的认识。关于蓝牙4.0协议栈的内容可以看相关参考文献作进一步的了解。

软件的设计主要包括3部分:一是温湿度和人数数据的采集与处理,二是无线数据的收发,三是上位机与手机终端的设计。

3.1 温湿度和人数数据的采集与处理

温湿度传感器SHT11是I2C总线接口,由于CC2540没有I2C总线接口(CC2541有I2C总线接口),因此采用模拟I2C总线进行数据的读写,SHT 11的驱动程序需要参考SHT11的数据手册,这里不再详述。而对于进出人数的判断,主要是利用进出门时两个光电传感器所产生的信号顺序进行判断。比如,前门系统放着的两个光电传感器分别为A和B,当人走进教室时,A先产生信号,B后产生信号,此时判断有一个人进了教室;而当人走出教室时,B先产生信号,A后产生信号,此时判断有一个人出了教室。人数采集流程如图3所示。

c.jpg

3.2 无线数据的收发

蓝牙节点组网中,只能存在一个主节点和单个或者多个从节点,从节点是发出信号者,主节点是扫描且发起连接者。当从节点发出广告信号(包括设备地址和设备名称之类的附加信息),主节点收到此广告信号后,向从节点发出扫描请求,当从节点回应扫描时,就完成了设备发现过程。接着主节点向从节点发出连接请求(包括连接时隙、从节点待机次数、连接超时值),从节点回应连接,自此主从节点建立了连接。

蓝牙从节点与主节点间的数据传输可以分为主节点向从节点读写和从节点向主节点发送数据两种。当主节点向从节点读写数据时,主节点会调用GATT_WriteCharValue或者GATT_ReadCharValue和从节点进行通信。

而当从节点向主节点发送数据时,从节点需要通过notify的方式,也就是通过调用GATT_Notification发起和主节点的通信。在本设计中,前门系统通过调用GATT_WriteCharValue将采集到的数据传输给后门系统,后门系统通过调用GATT_Notification将采集到的数据传输给前门系统,确保了人数统计的准确性。

在CC2540的设计应用中,低功耗是尤为重要的内容,为充分发挥其作用,同时利用人员进出教室时光电传感器数据接口产生中断信号的特点,在没有人员进出教室时,蓝牙节点将处于深度睡眠状态(功耗最低,只能通过复位或者中断唤醒),而当教室有人员进出时,立刻唤醒节点进行数据的采集与传输。

3.3 上位机与手机终端的设计

由控制系统产生的教室人数、教室温湿度等数据通过WiFi模块传给上位机监控端,这样有利于管理人员对教室的管理。当教室没有人时,管理员可以第一时间知道,去关掉灯以节约能源。本次设计的上位机采用JAVA设计而成,主要是采用Swing工具实现用户操作界面,结合SQL数据库技术实现数据的存储和远程数据的访问。上位机与人数据统计模块之间采用JAVA自带的Socket中的UDP协议实现相互之间的通信。上位机与手机终端之间通过 HTTP的POST方式实现全网内的无线通信。上位机界面如图4所示。

d.jpg

手机终端APP程序设计是使用Myeclipse2014开发环境,在程序中通过JDBC远程访问服务器端的SQL数据库。用户仅需输入所要查询的教室编号,点击查询按钮便可获得实时的教室信息,并将查询结果显示在下面的TextView中。查询的结果包括教室是否有课、教室的人

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top