秦彩杰,肖家波,李 勇
(三明学院信息工程学院,福建 三明 365004)
伴随着物联网、云计算、人工智能等技术的飞速发展,智能设备在消费市场掀起一股热潮,吸引了众多消费者的眼球。另一方面我国交通技术的发展,人民生活水平的日益提高,也使得居民出行愈加便利,而行李箱的使用也愈加频繁。传统的行李箱箱体笨重,功能比较单一,安全系数不高,智能化程度较低[1-3],因此该课题研究开发了这款基于NB-IOT的智能行李箱。该智能行李箱实现了实时获取行李箱内的环境参数、自动跟随、防盗追踪、语音控制、智能称重等功能。该智能行李箱功能齐全,稳定性高,性价比优于其它智能行李箱产品。该智能行李箱能够很好的解决人们旅途中的不便,从而为智慧出行时代带来一道美丽风景线。
系统的主要框架如图1所示:客户端可以使用微信小程序实时查看行李箱内的环境参数如温度、湿度、重量等,实时定位行李箱的位置,能够通过点击手机屏幕的按钮对行李箱进行控制,另外还可以通过语音对智能行李箱进行控制。管理人员通过Web端实现系统维护,包括设备数据管理、用户管理、用户反馈管理、设备管理、设备位置信息维护等,以便保障设备的正常使用。
图1 系统总体框架图
该智能行李箱主要由STM32单片机、箱内环境监测模块、通信模块、自动跟随模块、称重模块、定位模块、语音控制模块、驱动模块等组成,以下为主要硬件模块简介。
箱内环境监测模块主要由已校准数字信号输出的温湿度传感器DHT11组成,其精度为湿度±5%RH,温度±2℃,湿度量程范围为30-90%RH,温度量程范围为0~50℃[4]。该系统采用DHT11模块来监测行李箱内的环境,并且当温湿度异常时对用户进行提醒。
通信模块采用的是BC-95芯片,这是一款使用NB-IOT网络进行无线数据传输的嵌入式终端。该模块支持链接、IDLE、PSM状态,实现低达几μA的值守功耗,消耗带宽大约只有180kHz,支持UDP、CoAP网络协议,为用户提供全透明数据传输模式[5]。该模块体积小、接口简单,用户能方便的集成到自己的主板设备上去,可直接部署于现流行的三大网络(GSM,UMTS,LTE),大大的降低开发成本。
该智能行李箱系统采用NB-IOT通讯模块,实现了手机端、PC端、设备之间的交互,各硬件模块采集到的数据通过NB-IOT模块发送到云平台[6],再上传到阿里云服务器。手机端通过4G网络连接到阿里云服务器,打开微信小程序绑定设备后可进行相关操作。PC端则通过以太网连接阿里云服务器进行通信,可以实现对系统进行相关管理,本系统网络拓扑图如图2所示。
图2 系统网络拓扑图
智能行李箱的自动跟随模块主要由低功耗蓝牙模块组成,该蓝牙拥有抗干扰性强、超低功耗、提高电池寿命、测距等功能[7]。自动跟随模块框图如图3所示,系统中两个从蓝牙的RSSI数据通过主蓝牙发送给控制器,经过滤波之后,控制器将两个平稳的RSSI数据对比:RSSI的数值越小即信号强度越弱,表示距离越远,并根据两个RSSI数值的差进行智能行李箱的行进控制,从而实现自动跟随控制。
图3 自动跟随模块框图
行李额超重可能会使用户面临罚款等处罚,为旅途带来不便,因此该行李箱设计了称重模块。称重模块采用的是电子秤专用A/D转换器芯片HX711,该芯片拥有两个模拟通道,在内部拥有可编程放大器,是一款低成本高精度采样模块[8]。单片机通过I/O端口接收模拟信号值后,经过放大以及数模转换后转为数字信号,并通过微信小程序显示箱内物品的重量,方便用户了解行李箱的重量,避免行李箱超重带来的尴尬。
智能行李箱的定位模块采用的是ATGM336H芯片,这是一款低成本、低功耗、高精度的定位模块,支持多种卫星导航系统,是一款真正意义上的六合一多模卫星导航模块,能够实现联合定位、导航与授时[9]。如图4所示,将ATGM336H芯片的相关引脚与单片机相连后,通过定时中断的方式将该芯片输出的原始定位信息,发送到单片机进行处理,并将提取的地理坐标数据显示到微信小程序的地图上,方便用户实时定位行李箱的位置,使安全出行得到保障。
图4 定位模块引脚电路图
该智能行李箱还设计了语音识别模块,该模块使用的是基于关键词列表识别技术的LD3320芯片。该芯片除了语音识别处理器以外,还包含有AD/DA转化器、麦克风接口、声音输出口等外围电路[10]。使用时芯片会将输入的语音信号进行分析提取,并和预先设定好的关键词语列表进行匹配,得到最佳匹配结果,然后通过单片机进行控制,最终实现良好的人机对话和语言控制。
该智能行李箱系统采用JAVA语言编写,基于Spring MVC框架实现Web端的开发[11],采用了基于MyBatis框架的MySQL数据库进行数据存储[12]。系统前端采用微信小程序实现,易于制作及发布,而且用户使用起来也比较便捷。系统客户端可以通过微信小程序实时查看行李箱的相关参数,如温湿度、光照强度、跟随距离等,并可以点击控制按钮驱动行李箱,其流程如图5所示。Web端管理与微信小程序和设备间两两交互,将接收到的服务器数据进行分析,从而进行一系列的后台操作,系统流程如图6所示。
图5 微信小程序流程图
图6 后台管理系统流程图
设备通过电源上电后可将获取的传感器数据通过通信模块传输到阿里云服务器,后台管理系统可以从云服务器获取数据,微信小程序也可以通过云服务器获取数据。
(1)软件的单元测试使用的是Maven工程,Maven工程的特点是自带单元测试模块。每个功能完成后,可以在Maven工程的配合下,验证代码和设计是否相符,发现代码中存在的缺陷,最后再对每个方法进行检查,判断状态是否符合预期,保证了代码的准确有效性。
(2)集成测试可以根据实际情况,对程序模块采用合适的集成测试策略组合起来,对系统的各个接口以及集成后功能进行检验,达到正确的实现效果。本系统采用的是一次性集成策略进行测试,这样可以在最短的时间内把系统组合起来,缩短了测试时间。
Web后台管理系统开放于系统管理人员,系统管理员包括超级管理员和普通管理员两种角色,超级管理员还拥有对普通管理员信息管理的权限。后台管理系统还实现对用户信息以及设备信息的管理,传感器数据汇总查看,信息的提交与审核以及公告信息与反馈信息管理等功能,Web部分功能展示如图7、图8所示。
图7 Web端设备管理功能效果图
图8 Web端设备位置查看效果图
在微信小程序中注册登录之后,进入图9所示的微信小程序主界面,用户可以扫码添加智能行李箱设备,并实时查看箱内参数,跟随距离,以及重量等。图10为行李箱定位界面,可以使用户实时了解行李箱的位置。图11为设备控制界面,用户可以通过点击手机界面上的按钮,实现行李箱的自动控制。
图9 主页面图
图10 位置显示图
图11 设备控制图
该智能行李箱系统具有自动跟随,实时定位,实时显示箱内物品重量及环境参数等功能,并能通过微信小程序智能化管理行李箱。通过传感器组,可以实时显示箱内环境参数;通过蓝牙模块与驱动模块结合,实现了智能行李箱的自动跟随;通过GPS模块实现实时定位,方便用户了解行李箱的位置并可以在发生丢失时对行李箱进行定位;智能称重模块可以使用户了解箱内物品的重量,避免超重引发的各种损失。该智能行李箱系统具有低成本,低功耗,多功能的特点,具有较好的市场推广价值。