时间:2024-07-28
于 蒙,周 密,李文锋,宋金龙
(武汉理工大学 物流工程学院,武汉430063)
食品保鲜作为食品安全中的一个重要组成部分,已经受到各行业的高度关注,在这样的情况下,冷链物流的监控尤为重要,目前冷链监控以视频监控和路径导航居多[1-2],监控系统的功能比较单一,不少冷链监测系统主要是通过RFID 和WSN技术的结合设计出冷链监测平台,但这种监测系统无法实时监控物品信息[3-4]。 本设计融合了传感器技术、无线通讯技术、GPS 定位技术,结合安卓开发技术开发冷链物流监控系统, 对系统进行一系列的测试,验证了系统可运行性,通过安卓手机作为定位、温湿度查询终端,实时灵活地监测冷藏车的行驶路径和温湿度变化,从而有效提高产品质量的安全。
冷链物流监控系统需要进行相关环境参数的监测,还需要对车辆的实时位置进行监测,针对冷链车载运输环节进行设计,系统框架如图1 所示。
图1 冷链运输监测环节架构Fig.1 Cold chain transportation monitoring link structure
对冷链物流运输环节的监控分为车载终端和监控中心两个模块。 车载终端模块就是监控系统的硬件模块,温度传感器DS18B20、湿度传感器DHT11、CO2传 感 器MG811 和HM06 蓝 牙 集 成 于ATMEGA328P 单片机上,组成环境参数监测传输装置,通过温、湿度传感器、CO2浓度传感器定时采集(约10 s 一次)冷藏厢内的环境参数,主控芯片对传感器采集的数据进行解析、打包并发送给蓝牙完成数据处理。 监控中心硬件仅为一部装载有冷链物流监控APP 的智能手机构成,监控中心模块就是监控系统的软件模块,硬件装置与手机APP 通过蓝牙通信完成数据传输, 蜂鸣器连接主控芯片的串口,当手机接收到数据时会对数据综合判断,当数据超过参数范围时便会进行预警,同时将接收到的数据通过4G 网络上传云端服务器进行保存, 便于日后的管理。
环境信息监测模块的设计主要是对相关传感器的电路进行设计,在硬件选型时选择湿度传感器型号为DHT11, 它具有极高的可靠性和长期稳定性,DHT11 有4 个管脚,传感器的Pin2 端口为数据发送串口, 传感器的Pin1 接通5 V 电源,Pin4 端口连接GND,Pin3 端口悬浮放置, 电路中放置一个二极管用于指示传感器是否正常通电工作。 选用温度传感器为DS18B20, 其测量范围为-55 ℃~+125 ℃,能够很好地满足冷链车载监控系统的监控需求,同时可在1 s 内就把温度数据变换成数字信息, 能很好地满足实时性及精度要求。 该传感器有3 个引脚,引脚1 接电源,引脚2 为数据输出接口,引脚3接GND。 选用MG811 型CO2传感器, 其测量精度高、功耗小、体积小、测量范围广,对二氧化碳具有很高的检测灵敏度。 电路设计时,其引脚1 接电源,引脚2 为GND 接地,3、4 引脚为传感器的数据发送串口。
无线通信模块主要负责将传感器获取的环境信息转发到手机移动终端,作为对系统进行监控的基础数据。 本系统设计采用HM-06 蓝牙模块,它共有16 个引脚, 工作时有5 个引脚被接通,2、4 引脚分别为TX、RX 串口,与处理器进行通信,引脚9 连接稳压电路提供3.3 V 工作电压, 引脚12 为GND接地,15 引脚接通LED 用于指示蓝牙是否正常工作。 图2 为HM-06 的电路图。
图2 HM-06 蓝牙原理图Fig.2 HM-06 bluetooth schematic
处理器是系统硬件电路的基础,直接影响系统精度和处理性能, 本文采用ATMEGA328 为主控芯片,该型单片机具备高速、节能等特点,同时满足系统在功能、尺寸及成本方面的要求。 蓝牙模块通过ATMEGA328 单片机的输入输出口连接主控芯片,完成数据的传输,CO2传感器和温湿度传感器通过RX、TX 串口与单片机之间进行串口数据通信,将监测到的数据转发给蓝牙, 蜂鸣器接主控芯片的D5串口,当环境数据超标时,发出警报。 硬件模块实物连接图如图3 所示。
图3 硬件模块实物连接图Fig.3 Hardware physical connection diagram
系统启动后,硬件设备开始监测环境数据,并通过蓝牙串口发送给手机端,系统启用AmarinoService蓝牙监听服务,开启新线程,建立socket 连接,通过getInputStream()接收冷链环境数据输入流。 调用forwardDataToOtherAPPs(String msg)函数将接收到的msg 环境信息以广播的形式发布出去,数据接收Activity 根据注册的广播接收者ArduinoReceiver 对消息进行过滤,重写接收者的onReceive 函数,提取参数类型关键字,判断接收的数据属于温湿度、CO2浓度中的哪一种。调用receive.substring(1,3)获取数据类型关键字,调用receive.substring(12,17)获取环境参数数值。 接收完数据之后对数据进行计算处理, 当监测的数据超过阈值时做出提醒和报警响应;分别计算出10 次环境参数的均值,最大值及实时值,并将所求结果利用textView.setText()直观显示在视图区域,直观了解相关参数值。 调用insert-Data()函数将数据保存入数据库。调用addDataPoint()方法将实时获取的数据在画布上进行描点,调用drawLine 将所有点进行连线绘制数据变化趋势图,直观看出变化趋势,不断调用invalidate 进行视图更新,实现数据图形的动态显示,图4 是系统数据监控模块的流程。
图4 冷链数据监控模块的流程图Fig.4 Flow chart of cold chain data monitoring
用户进入系统后开启新线程,根据isEnabled()判断是否开启蓝牙服务,若isEnabled()==false 则调用enable()打开蓝牙设备。 若isEnabled()==true 则证明已开启本地蓝牙设备,单击蓝牙连接模块添加设备按钮进入AmarinoActivity 蓝牙查询搜索类,在该类中进行的操作有蓝牙设备搜索、 设备名称与MAC 地址的获取与保存, 将搜索到的BTDevice 添加进设备DB, 查询数据库并将结果作为ListView适配器的数据源,单击ListView 的item,将设备添加至蓝牙Activity 的UI 界面中,选择相应蓝牙设备完成连接。 开启ReceiveThread 线程进行socket 通讯,调用socket 的getInputStream()函数获取硬件设备传输的环境参数数据,每接收一个数据都通过send-Broadcast 广播出去, 其他Activity 通过广播接收者接收数据并进行相应的响应处理。 蓝牙无线通讯模块工作流程如图5 所示。
图5 蓝牙无线通讯模块工作流程Fig.5 Bluetooth wireless communication module work flow chart
车辆定位功能由手机应用程序实现,调用手机自带的GPS 功能,通过手机GPS 获取运输车辆的经纬度信息,再调用高德地图接口,在地图上显示车辆的实时位置。 当运输车辆位置发生改变,onLocationChanged 方法被触发,通过location.getLatitude()和location.getLongitude()方法可以获取当前所处位置的经纬度数据,调用APP.setmLatitude、APP.setm-Longitude 方法将经纬度信息放入全局变量APP.mLatitude 和APP.mLongitude,上述获取的是车辆的经纬度信息, 通过调用locBundle.getString("desc")可以获取车辆的具体地理位置,接着将位置信息存入数据库。 车辆定位模块运行效果如图6 所示。
图6 车辆定位模块运行效果Fig.6 Vehicle positioning module operation effect
反馈报警模块主要实现对环境数据的处理,打开APP 与硬件设备建立连接之后,即开始数据传输,蓝牙数据接收过程在蓝牙服务AmarinoService 类中进行,ReceiveThread 线程接收数据并对数据进行判断,当Integer.valueOf(msg).intValue()超过阈值时会触发报警服务startService,开启线程进行报警。
在完成系统的软硬件模块设计之后,还需要对硬件装置测试和软件APP 测试。硬件设备测试主要测试其数据采集与传输功能,APP 测试主要是测试其数据接收、显示功能、及预警功能。
系统启动后,环境感知装置每隔一段时间会读取一次温度、湿度、CO2浓度数据,传感器只需单向通讯。 经过A/D 转换,将传感器输出的模拟值转换为单片机可以识别处理的数字值。 单片机处理之后,定义数据传输格式,通过UART 异步通讯串口将数据转发给蓝牙模块,接收数据后蓝牙模块通过蓝牙通讯协议与冷链监控系统APP 通讯,进行数据传输。 监控过程如图7 所示。
图7 硬件数据采集流程Fig.7 Hardware data collection flow chart
系统数据接收与显示功能是在系统手机软件端实现的,打开手机APP 系统进行工作,首先进行蓝牙搜索查询,找出硬件蓝牙设备进行配对,配对完成后,AmarinoService 蓝牙服务即在后台开启服务接收数据并将数据以广播形式发送出去,不同的activity 根据数据类型做出相应的动作响应,完成数据的显示,如图8 所示。
图8 数据图形化显示Fig.8 Graphical display of data
选取温度、湿度、CO2浓度等环境参数作为预警模型判定指标,对系统参数进行监控,当超过预警值时,APP 发出报警。 每种环境参数超出范围时都会触发警报服务, 具体预警值处理是AmarinoService 服务接收数据后在手机程序中进行。 为了方便试验,我们先用传感器测定实验室环境参数,选定的预警值接近真实环境,取值如表1 所示,同时表中列出了系统的预警结果。
表1 环境参数预警值Tab.1 Environmental parameter warning value
通过实验室环境下的测试,系统报警服务能正常工作,判断效果如图9 所示。
本文将物联网技术与主流的Android 系统相结合, 设计一种基于Android 平台的冷链物流车载监控系统,完成了软硬件模块的设计,车载终端与监控中心的结合, 最终实现了Android 手机端对冷链车辆环境信息的采集监控,以及冷藏车辆运输位置的实时跟踪定位, 实时监控冷链运输过程中的环境,确保每时每刻冷链环境参数都在产品要求范围内,当参数超过阂值时,可发出警报,从而有效的对冷链环境加以调节,保证产品的质量。 基于安卓平台的开发更具有移动性,监督更方便。
图9 系统报警功能Fig.9 System alarm function
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!