林兴亮,杨潞霞,叶 添,王梦冉
(太原师范学院 计算机科学与技术学院,山西 晋中 030619)
物联网体系的建设,可为数字化服务提供支撑载体,将空间资源与时间资源进行充分利用,体现出科学技术与终端服务的合力驱动价值,为各个行业领域的发展带来了新机遇[1]。在新科技时代下,对于书包的功能开发以及创新还较单一,使得书包的用途以及性价比有限。学生经常会忘带或错带课本导致学习效率降低且影响课堂质量,在面对紧急突发情况时,也很难及时向外界求助。针对这些问题,本文采用物联网相关技术,协同开发Android和Web端管理平台,实现了一款基于消息队列遥测传输的智能书包。
智能书包设计主要由各种传感器、服务器、主控模块以及Android和Web端管理平台构建而成,整体设计架构如图1所示。
图1 整体设计架构图
其中,主控模块负责底层传感器等模块的信息接收、处理以及分析,同时对应用层管理平台下发的控制信息采取及时的响应。服务器与底层传感器模块和管理平台之间的消息存储转发通过远程通信模块搭载MQTT协议报文包实现。本设计的流程如图2所示。
图2 智能书包流程图
智能书包硬件设计结构如图3所示,主要包括STM32主控模块、多传感器模块、远程通信模块、位置信息模块以及书本检测模块。
图3 硬件设计架构图
主控模块选择型号为STM32F103ZET6芯片,它具有低功率、集成度高的特点,负责硬件逻辑电路的数据处理和分析决策。传感器模块进行学生健康情况的信息采集与分析。位置信息模块采集相关位置数据。
设计采用加权平均的多传感器信息融合方法对传感器数据进行处理。利用不同传感器的精度实现加权值的确定。为保留数据的真实性,通过对原始数据加权计算并得到最终数据,该方法能够显著提高系统的鲁棒性和精确度。以温度传感器为例,公式(1)为加权平均法测量温度公式。
T=a*DataA+b*DataB+C*DataC
a+b+c=1.
(1)
其中,T为最终温度值,a、b、c为不同温度测量值的权值,DataA、DataB、DataC为传感器测量值。
学生的书本识别通过无线射频实现,其包含射频感应部分和电子标签,对于电子标签数据传输通过无线传播方式,且对其数据设定了格式,确保传播之间的安全性[2]。书本识别结果由主控模块统计、处理以及传递,并与管理平台的可视化结果保持同步和一致。远程通信采用GSM模块,主要由移动终端和SIM卡组成;远程通信模块使用AT指令对GSM模块进行控制,配置GSM模块的开发模式有3种,分别为关机模式、正常工作模式和最小功能模式[3]。表1为所用到的AT指令。
表1 AT指令
为能够保证用户及时方便地获取信息,本设计进行了Android端和Web端的管理平台开发。在进行管理平台设计时,利用云服务器实现Web端和Android端之间的数据同步和互通,使用户能够在不同平台上访问和共享数据,实现跨平台覆盖并增强用户体验,并且能够做到消息同步显示和控制,避免信息不同步带来的混乱和错误。
远程通信使用的协议是消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT),其模式是基于发布/订阅(publish/subscribe),由于其通信量少的特点,使得在这种模式下其能保证实时性的同时也保证了通信的可靠性[4]。使用该协议的优点是其可为通信提供相对可靠的消息传输、开销低以及带宽占用少,通过附着GPRS网络能够实现超长距离通信通信传输。
MQTT协议包含固定报头,可变包头以及有效载荷三部分。固定报头一般用来描述报文类型,控制报文标志位以及一些报文长的信息,部分MQTT控制报文也包含可变报头,主要是对报文标识符进行描述、验证。有效载荷作为通信过程中传达的消息体。MQTT报文格式如表2。
表2 MQTT报文格式
服务器实现消息的转发、存储功能,底层硬件设备通过写入服务器IP地址、端口以及秘钥后可以将数据搭载MQTT协议报文包,并通过附着GPRS网络的方式发送到服务器,应用层管理平台通过相似的方式实现远程传输。图4为服务器平台数据类型图。
图4 服务器管理平台数据类型
设计主要使用嵌入式软件进行相关的程序设计,主要采用的算法有KMP算法、二进制搜索算法以及CRC校验算法。KMP算法全称Knuth-Morris-Pratt算法,是在线性时间内解决字符串匹配问题的算法[5]。由于设备需要通过MQTT报文订阅发布大量信息,采用KMP算法对报文控制字进行匹配能够很好地提高程序运行效率以及减少硬件处理时间。针对书本识别排列组合的多样性,采用了二进制搜索算法来简化排列组合和避免碰撞。在任意一个时隙如果无碰撞,则数据组合被识别[6],如果只有一个碰撞位,则可识别两个数据种类或者取消此数据种类之前的状态标志。基于在数据校验中CRC校验具有实现简单、校验速度快、错误检错能力强的特点,本设计对于MQTT报文的校验和RFID数据校验均采用CRC检验算法保证数据传输的正确性和完整性。
本设计需要对MQTT协议以及远程通信进行调试,MQTT协议调试通过软件和硬件联合调试,远程通信调试则采用串口调试形式。
首先,需要对MQTT的连通性及传输进行相关的调试,在MQTT底层和服务器中配置用户的ID、IP地址、发布-订阅会话需要的主题(Topic)以及同步双方的秘钥使其服务器端设备在线,然后进行GPRS网络的连通性调试,主要对GSM模块的GPRS网络附着、透传模式以及建立TCP连接进行测试,测试完成后,底层硬件设备的消息便可以上传到服务器,实现消息同步一致、远程通信以及智能书包消息的可视化。
本文基于消息队列遥测传输技术和嵌入式开发技术实现了智能书包设计。该设计具有移植性强,稳定性高,数据传输准确以及网络延迟低等特点。利用GSM模块实现底层硬件与服务器信息同步和控制,具有不受距离因素局限的优势;应用层管理平台可进行可视化呈现,提供灵活的操作界面,便于远程控制和管理。