基于STM32 的高精度医药仓储环境参数监测系统

2021-10-23 13:16左雨畅泰闫俊宇孙宾
电子测试 2021年18期
关键词:温湿度报警加速度

左雨,畅泰,闫俊宇,孙宾

(山西大学自动化与软件学院,山西太原,030000)

0 引言

现阶段大多数药品仓储管理环境和手段较为传统落后,仍依赖于人工,数据可靠度不高,资源占用多,自动化程度低,难以实现长期监测,建立药品环境监测系统迫在眉睫。国内已有学者展开了研究,朱星等[1]采用RS485 总线构建网络实现了基于MODBUS 协议的医药环境监测系统;夏明娜等[2]采用NRF905 无线模块实现药品仓储温湿度监控;邸静妍等[3]基于Zigbee 和GPRS 无线网络技术实现药品仓库环境监测;杨双义[4]采用8051 单片机实现药品仓库温度检测。以上研究中RS485 总线方式通讯速率低,实时性、可靠性差,其布线设计及施工复杂功耗大,当网络某一节点出故障导致系统整体或局部瘫痪且难以判断故障位置维修困难;无线数据传输NRF905,Zigbee,GPRS 不受物理线路的局限,但受网络带宽的速度的限制,Zigbee 受同频段的其他信号的干扰,GPRS 通信质量受信号强弱影响较大,传输过程存在延时,无法做到实时监控。8051 单片机只能用单片机的IO 接口来模拟,当对通信速度要求高时,用IO 接口模拟的方式降低了系统的使用性能,工作速率低,虽有空闲模式和省电模式,但实际无法达到省电效果,功耗大且数据存储空间小。STM32 是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3 内核,接口简单,增加了一个全速USB 接口和硬件支持IEEE1588 精确时间协议的以太网接口,用硬件实现协议可降低CPU 开销,提高实时性应用和联网设备同步通信的响应速度,功耗低。I2C 总线接口集成在芯片内部,优化主板空间和成本,支持多主机设备、功耗低、抗干扰能力强、传输距离长。基于此,本设计的改进是利用STM32 选用I2C 总线技术,设计了一个低成本、低功耗、实时性强、布设灵活的药品环境监测系统。

1 系统总体设计

根据药仓储存环境,药仓监测过程应当采用储存式监测系统设计。系统以STM32 单片机为控制芯片构成主控模块,主要完成监测数据的分析处理和各个功能模块的协调。系统上电复位后,通过电源转换电路将5v 电压转换成STM32 的供电电压3.3v保证正常的额定电压。环境温湿度由SHT30 温湿度传感器采集,药物的振动情况由ADXL345 三轴加速度传感器采集。STM32 将来自传感器的数据分析处理,把数据存储在FLASH 存储器模块中,经USB 数据传输模块发送至上位机,上位机通过VB 界面进行数据的实时显示。一旦出现温湿度异常或药品掉落,STM32 控制语音报警电路,对异常情况发出警报。系统总体框图如图1 所示。

图1 系统总体框图

2 硬件电路设计

硬件电路主要有STM32 核心控制模块,温湿度传感器模块,三轴加速度传感器模块,FLASH 存储器模块,语音报警模块组成。具体设计如下:

2.1 温湿度传感器模块

对测控系统来讲,对被控对象状态的测试和对控制条件的监控是不可缺少的环节。该模块使用可靠性强、精度高的SHT30 传感器。内部温度采集使用热电偶,当工作端与自由端的温度不同时,回路中产生热电动势,经过电路转换将电压的变化送到单片机,转化成能够识别的信号。湿度测量是使用沉积在两个导电电极上的聚胺盐或醋酸纤维聚合物薄膜(一种高分子化合物)构成,当薄膜吸水或失水后,会改变两个电极间的介电常数。进而引起电容器容量的变化,利用测量电路可将电容器的容量变化进行捕捉、转化处理,最终计算显示出湿度信息。电路图如图2 所示。

图2 SHT30 电路图

2.2 三轴加速度传感器

传统仓储管理环境和手段较为落后,药品仓库的抗震功能不到位,一些药物由于振荡时药品溶液与容器之间会发生机械碰撞,产生能量和泡沫,而易造成药品变质损坏,所以当药物本身不够稳定或易发生改变,又或者药品溶液中含有易产生泡沫成分时,药品的使用就需要注意。为避免在存储期间因人为或其他不可预测因素导致的药物被迫受振,本设计采用ADXL345 三轴加速度传感器,检测从机节点动态加速度,判断药品是否大幅度振动,并能有效检测药品是否掉落。同时ADXL345 支持SPI 和I2C 两种通信方式,为了节省IO口,我们STM32 开发板采用的是I2C 方式连接。传感器模块的SCL 引脚与STM32 的PB0 引脚相连,SDA 引脚与PB1 引脚相连,电路原理图如图3 所示。

图3 ADXL345 原理图

2.3 Flash 存储器模块

该模块由基于SPI 协议下型号为W25Q64 的Flash 芯片组成。在发送端,SPI 通过UCLK 控制串行通信,当数据写入发送缓冲器,并行加载到发送移位寄存器当中,立即开始发送数据,在第一个UCLK 周期,SIMO 移出数据,经过8 个时钟周期把8 位的数据发送到从机当中,其中最高有效位先发送,达到通信目的。在接收端,SIMO 的数据以先高后低的顺序接收,接收到数据右对齐,当8 位数据接收完之后,有移位寄存器并行移入接收缓冲器当中,并将接收中断标志位置位,表明接收缓冲器当中有数据存入,通过中断读取数据。原理图如图4 所示。

图4 Flas h 原理图

2.4 语音报警模块

本设计采用语音报警电路,该模块由型号为ISD1820 的语音报警模块构成。根据标准以及结合仓库的实际存储环境的需求,系统设定温度、湿度以及加速度值的上下限。当采集到的温湿度数据、加速度数据超出系统阈值时,并且在一定时间内维持不正常状态,由STM32 发出控制信号,触发语音报警模块,发出警告。如温度超过阈值上下限,就会不断发出“温度异常,当前温度是XX 度”的语音信号;当湿度超过阈值上下限,发出“湿度异常,当前湿度是XX 度”的语音信号;当加速度值超过系统给定阈值时,发出“振动异常”的语音信号;当达到正常范围内,语音报警停止。语音模块原理如图5所示。

图5 ISD1820 电路图

3 系统软件设计

本药仓环境监测系统的软件设计方面主要遵循模块化理念,设计了上电初始化、温湿度监测、振动监测、数据传输、数据转换、数据显示、报警等功能模块,并且为各功能模块分别编写独立函数,采用I2C 通信协议,SCL 和SDA 两条线可以挂载多个设备,总线上的每个设备都可以被唯一的一个地址所寻址。

上位机监测界面采用基于VB 的编程技术,实现了下位机系统和上位机系统的数据交互,并通过图形、数字以及曲线的方式将药仓温湿度以及动态加速度等数据显示在上位机界面上,起到实时监测报警的作用。设置串口,通过串口读取数据,针对接收的数据格式对数据包解析,并在VB 界面中显示温湿度、XYZ 轴加速度数据及其各自曲线。将解析的数据包按一定的数据格式存储到EXCEL 文件中,EXCEL 文件数据存储便捷,数据处理方便简单,数据存储量足够大。同时设置文件名称和存储位置,数据存储格式为网络时间加上传感器数据,有利于数据查找和数据分析。系统总体流程图如图6 所示。

图6 软件设计流程图

4 系统测试

用容器接入部分自来水,放在标准温度计上,作为基准温度,将传感器模块放入容器中,测量水温,测试实物图如图7 所示,实验数据曲线如图8 所示。

图7 测试实物图

由图8 可知实际温度与系统温度的误差在0.1℃左右,误差在可接受范围之内,具有较好的测量精度,表明系统对数据采集、传输、上传等功能稳定。

图8 测试结果图

5 结论

针对药品仓库环境的实时高效低功耗需求,本文介绍了一种基于STM32 的高精度医药仓储环境参数监测系统,通过从机硬件设计和主机软件设计,完成仓库环境数据的自动采集、数据交互、自动报警等功能,此系统使药仓环境的监测和调节更加信息化和智能化水平,同时解决了传统管理方式落后、效率低下、耗能等问题,实现了对药品仓库环境参数的智能监控。

猜你喜欢
温湿度报警加速度
“鳖”不住了!从26元/斤飙至38元/斤,2022年甲鱼能否再跑出“加速度”?
温湿度控制器在回收砂冷却系统中的应用
基于DSP的多路温湿度监测系统
天际加速度
创新,动能转换的“加速度”
死亡加速度
基于温湿度控制的天气预测装置
LKD2-HS型列控中心驱采不一致报警处理
蒸发冷却温湿度独立控制空调系统的应用
2015款奔驰E180车安全气囊报警