北斗应用之物流信息跟踪系统设计
共 6370字,需浏览 13分钟
·
2021-12-26 14:21
针对现代生活中快递在运输过程中出现的丢失、损坏,客户对重要包裹在运送途中的担心等问题,提出一种基于全球卫星导航系统(GNSS)的物流信息跟踪系统设计。基于嵌入式实时操作系统,以STM32L151RCT6单片机为主控模块,驱动传感部分(GNSS位置传感器、温湿度传感器、加速度传感器)采集包裹的各项物流信息,并通过窄带物联网(NB-IoT)通信将物流信息传输至快递公司的物联网云平台;用户通过Web网页即可查询包裹的物流信息,包括精确位置、温湿度、运动状态等。测试结果表明,该系统能够完成对包裹信息的跟踪和稳定上传,其定位跟踪精度在2.5 m以内,能够实现对快递包裹的集中化、规模化管理。
全球卫星导航系统(globalnavigation satellite system, GNSS)是能在地球表面或近地空间的任何地点为用户提供全天候的三维坐标和速度以及时间信息的空间无线电导航定位系统[1],正广泛应用于交通、测绘、大地测量、气象预报等领域,已经成为人们正常生活中不可缺少的一部分。高德地图、饿了么、滴滴打车、去哪儿等与人们生活息息相关的软件都在使用卫星导航定位技术[2]。
随着交通运输行业和电子商业的蓬勃发展,快递运输的普及度越来越高,快递运输在带来便利的同时也存在缺陷[3]。包裹在运送过程可能存在丢失、损坏等问题,不仅对用户产生损失,同时对快递公司的正常运转也产生了很大的影响。对于重要包裹的丢失、损坏,显然是快递公司和用户双方都不愿发生的事情。
文献[4]利用差分全球定位系统(differential global positioning system,DGPS)和电子感应技术,设计了鱼雷罐车定位跟踪系统,能有效地把鱼雷罐车的各种信息都汇总起来。文献[5]以ATmega128A单片机和MPU6050位核心器件,设计了基于北斗卫星导航系统(BeiDou navigation satellite system, BDS)卫星的定位与跟踪系统,利用卡尔曼滤波算法来优化外界对目标定位跟踪的干扰。文献[6]基于全球定位系统(global positioning system, GPS)卫星及BDS卫星,设计了一款针对移动目标的高精度定位与跟踪系统,由ATGM331模块实现GNSS定位,系统主要包括核心处理单元、全球移动通信网络(global system for mobile communication, GSM)、地理信息系统(geographicinformation system, GIS)。
针对包裹在运输过程中出现的问题,本文提出一种基于GNSS的物流信息跟踪系统。该系统是将卫星导航定位技术、物联网通信融为一体的嵌入式系统,能够实现对包裹的定位跟踪与状态监测,可以有效解决包裹丢失与损坏的问题,降低用户与快递公司的损失,为解决用户与快递公司之间的利益纠纷提供途径。
总体方案如图1所示。该系统由主控芯片、传感部分、GNSS定位模块、电源模块、一维码扫描器、有机发光二极管(organic light-emitting diode, OLED)显示屏、按键等组成。主控模块选用STM32L151RCT6芯片,负责控制和驱动整个系统的运行。传感部分由MPU6050运动状态传感器、DHT11温湿度传感器、DS18B20温度传感器组成,实时采集包裹的运动状态、温湿度信息。一维码扫描器完成包裹与物流信息跟踪系统的绑定,绑定之后系统开始实时跟踪该包裹。OLED显示屏对物流信息进行实时显示。供电模块为锂电池充放电电路,为系统提供3.3 V的工作电压。GNSS定位模块选用移远通信公司研发的BC20模块,完成对包裹的实时定位和窄带物联网(narrow band internet of things, NB-IoT)通信。
1)主控模块电路设计。图2为主控制器电路,包括时钟电路、复位电路、电源电路、下载电路,是处理器正常运行的必要条件[7]。时钟电路、复位电路和电源电路构成的系统也称为单片机最小系统,下载电路用于给主控芯片烧录程序。主控制器采用3.3 V的供电。连接STM32-OSC-IN和STM32-OSC-OUT引脚的为时钟电路,由 8MHz的晶振、两个22 pF的电容、1 MΩ的电阻组成,为处理器提供时钟信号。与STM32-NRST引脚相连接的为复位电路,复位电路由10 kΩ的电阻、按键、电容组成。程序下载电路主要由串行线时钟(serialwire clock, SWCLK)接口和串行线数据(serialwire data, SWDAT)接口组成,其中VCC(voltcurrent condenser)为电源端,GND(ground)为接地端。
2)电平转换电路设计。BC20模块与微处理器通过串口进行数据通信,由于BC20与微处理器接口协议里面定义的电平不同,这里使用TXB0104芯片设计电平转换接口(图3),它是一款带自动方向检测和静电释放(elestro-staticdischarge, ESD)保护功能的双向电压电平转换器[8],A端口支持1.2~3.6 V电压,B端口支持1.65~5.5 V电压,A端电压不得大于B端。当输出使能端(outputenable,OE)输入为低电平时,所有输出均处于高阻抗状态。为确保在上电或掉电期间均处于高阻抗状态,必须将OE通过下拉电阻接地。驱动器的拉电流能力决定该电阻的最小值[9]。该芯片被设计成OE输入电路由模拟电源(voltcurrent condenser analog,VCCA)供电。将BC20模块的主串口和调试(debug,DBG)串口同时连接到TXB0104电平转换器,其中DBG串口连接A1、A2引脚,主串口连接A3、A4引脚,将STM32微处理器的PB11、PB10引脚与TXB0104芯片的B1、B2引脚连接,PA2、PA3与B3、B4连接。
3)传感电路设计。本系统涉及到的传感器分别为温度传感器DS18B20、湿度传感器DHT11、六轴运动传感器MPU6050。DS18B20的数据传输接口与STM32单片机的PB4相连接,测温范围为-55~+125℃,测温分辨率达0.5℃。DHT11的数据传输接口与STM32的PB5连接,湿度测量范围为20%~90%相对湿度(relativehumidity, RH),工作电压3.3~5.5 V直流。MPU6050运动传感器与STM32之间通过集成电路总线(inter-integrated circuit,IIC)通信协议进行数据传输,其中SCL(system clockline)为系统时钟线,SDA(serial data line)为串行数据线。MPU-6000可在(2.5± 2.5×5%)V、(3.0±3.0×5%)V或(3.3±3.3×5%)V这3种供电电压下工作。传感器电路设计的原理图如图4所示。
4)电源电路设计。图5是锂电池充电电路,由TP4056、电阻、发光二极管、电容组成,其中BAT(batteryterminal)为电源终端,CE(chipenable)为芯片使能输入端。TP4056是单节锂离子电池,采用恒定电流电压线性充电器,充电电压固定于4.2 V,而充电电流可通过一个电阻器进行外部设置,当充电电流达到最终浮充电压之后降至设定值1/10时[10],TP4056将自动终止充电循环;当输入电压被拿掉时,TP4056自动进入一个低电流状态,将电池漏电流降至2 μA以下。图6为锂电池放电电路,将4.2 V的电压经过滤波、整流、降压变成3.3 V的直流电压。当开关S1接通时,4.2 V的电压输出,从EN(enable)引脚输入到RT2。C9、C11为滤波电容,R4、R11、R17为分压电阻。电感的作用为“通直流、阻交流”,二极管起保护电路的作用。
软件设计是基于开源实时操作系统(free real-time operatingsystem, FreeRTOS),作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,任务调度机制是其核心技术,调用开始任务函数,即可开始所有任务(子程序),实现任务同步进行。主程序流程如图7所示,进入主程序,先对串口、定时器、延时函数、中断优先级等进行初始化设置,随即获取BC20窄带物联网模块接收的命令,识别包括鉴权应答、绑定/解除绑定设备、唤醒设备、数据上传等在内的8个命令,通过判断Comd和Clock1-flag的当前值来识别BC20模块接收到的指令,从而完成相应的操作。
BC20定位使用辅助全球定位系统(assisted globalpositioning system,AGPS)技术。AGPS是由外界提供接收机信号捕获与定位所需信息数据的方式和技术,通过获取远程服务器上的星历数据,终端将获取到的辅助数据注入到GNSS芯片中,提高定位的速度。先对BC20模块进行初始化,如串口通信波特率的设置。初始化完之后,单片机发送AT+QGNSSC=1命令开启GNSS功能,开始进行定位工作,确认网络连接,网络连接正常后,通过AT+QGNSSAGPS=1命令使能AGPS,BC20开始从远程服务器处获取星历数据、偏差改正参数等,联合进行定位。部分应用于终端设备与PC应用之间的连接与通信指令(AT指令)及其含义如表1。最后,通过DBG串口将美国国家海洋电子协会(National Marine Electronics Association, NMEA)统一的GPS协议格式的数据打包传输给STM32单片机。图8为定位子程序流程图。
图9为NB-IoT通信子程序流程图。本系统中的NB-IoT通信集成在BC20模块上,BC20模块支持标准的NMEA0183协议,其协议格式如表2。NB-IoT有3种工作模式:省电模式、不连续接收模式、扩展不连续接收模式。考虑本系统定位的实时性,所以选用实时性较好的不连续接收工作模式[11]。该模式的周期为1.28 s,其间包括连接(Connect)和空闲(IDLE)2个状态的切换。用户在IDLE状态时,每个不连续接收周期监听一次寻呼信道,检查是否有下行业务到达[12-13]。若有,则触发用户设备建立空口连接,然后再转发下行数据包,主控制器可通过AT命令唤醒NB-IoT模块向云服务器发送数据。
物流信息查询网页的设计分为用户和管理员两部分。首次登录的用户需要注册,登录后界面会显示多个包裹的物流信息,用户输入订单号即可查询到自己的包裹信息。对于已经签收的包裹,管理员可以对包裹信息进行手动删除。网页设计内容如图10所示。
首先,将终端设备与物联网云平台进行对接。步骤分为设置终端设备标识号(identification,ID)、需要对接物联网平台的地址与端口号、频段、核心网(access point name,APN)、终端入网;查询终端是否获取到核心网分配的互联网协议(internet protocol,IP)地址[14-15],如果获取到IP地址,表示终端入网成功,对接完成。然后,手持设备进行测试,用电脑端打开web网页,查询设备信息。
图11为物流跟踪系统成品。图12为物流公司的物联网云平台展示的数据,包括包裹的寄出时间、温湿度情况、震动情况、经纬度信息以及终端的电量情况等。其中,2019年起为调试过程中所测得到的数据,其经纬度符合当时快递所在区域,震动情况、温度、电量等也都正常,当电量过低时,发出了相应的警告标志。但是出现了3次温度为0的情况,考虑可能是因为监测仪震动导致DS18B20与STM32接触不良,STM32无法稳定获取到温度数据。将DS18B20传感器重新与STM32焊接,重新调试,测试结果如图12中2020年所示,温度、震动情况、经纬度全都在正常范围内,能够完成对快递包裹的稳定跟踪。
经过多个经纬度数据计算,得出3个方向的位置误差在2.5 m以内。东北天3个方向的偏差曲线如图13所示,定位结果较为准确,满足对包裹位置跟踪的要求。测试表明,该系统基本能够完成运送过程中对物流信息的稳定跟踪和数据上传。
本文提出了一种基于GNSS的物流信息跟踪系统设计,以STM32L151RCT6为主控制器,利用NB-IoT通信将包裹的位置信息、温湿度信息、运动状态等稳定上传至远程服务器,用户从web网页可以实时查询包裹的物流信息。经测验,该系统能够完成对包裹信息的跟踪和稳定上传,其定位跟踪精度在2.5 m以内,为用户的财产安全提供了保障,为快递公司物流的正常运转提供了保证,为规模化、集中化管理快递包裹提供了途径。
参考资料 略
本文转载自“导航定位学报”,原标题《基于GNSS的物流信息跟踪系统设计》,文 | 尹海博1,2,徐 熊2,郭 杭(1. 南昌大学 空间科学与技术研究院;2. 南昌大学 信息工程学院)
为分享前沿资讯及有价值的观点,卫星与网络微信公众号转载此文,并经过编辑。
支持保护知识产权,转载请注明原出处及作者。
部分图片难以找到原始出处,故文中未加以标注,如若侵犯了您的权益,请第一时间联系我们。
实体店回归与商业航天的机会
电子杂志,扫码阅读
期期精彩,不容错过
· 《卫星与网络》特别顾问
· 《卫星与网络》编辑委员会
· 卫星与网络微信公众号(ID:satnetdy)团队