基于51单片机实现胰岛素低温存储盒设计与实现

2022-02-22 01:07方志鹏梁月放
电脑知识与技术 2022年36期
关键词:数据处理蓝牙串口

方志鹏 梁月放

关键词:STC12C5A16S2;胰岛素;蓝牙;温度控制

中图分类号:TP31 文献标识码:A

文章編号:1009-3044(2022)36-0078-04

1 概述

由于经济水平的不断发展、生活水平的提高、饮食习惯的改变、生活作息的不规律以及缺少一定运动量的生活方式等诸多因素,使全球糖尿病发病率增长趋势逐年递增,糖尿病也因此成为世界上第三种严重危害人类身体健康的慢性疾病。根据研究数据表明,全球糖尿病患者已超过5亿人,中国糖尿病患者人数位居全球第二,目前我国的糖尿病发病率高达9.6%,成年人糖尿病患病人数约为1.3亿,而青少年患病人数也在不断提升[1]。

据临床试验得知,胰岛素能够快速地降低血糖,是能够有效治疗糖尿病的药物之一,因为胰岛素是属于蛋白质类的一种激素,当温度过高时会导致蛋白质变性,药性失效。所以胰岛素对存储的温度要求极高,一般存储在2-8℃恒温环境下,胰岛素的恒温储存成为很多糖尿病人出行的一大困难。

本文根据实际生活需要设计了一款基于51单片机实现胰岛素的低温存储系统,利用恒温片将热量导出,达到恒温的效果,可实时监测存储盒温度参数,当温度超过设定阈值,触发报警功能。通过无线蓝牙模块将监测的数据上传到手机App,实现存储盒和智能终端互联,方便用户随时掌握胰岛素存储的情况,将科技与现代生活相结合,用科技帮助人们提高生活质量。

2 系统整体设计

系统以51单片机为核心,采用2000mAh锂电池对系统各模块供电,传感器的使用包括DX-BT04-A 蓝牙传感器、LCD12864液晶显示屏传感器、DS18B20温度传感器等。按照各个模块的功能,胰岛素低温存储盒系统可以分为五个模块:电源管理模块、环境检测模块、人机交互模块、控制预警模块和数据处理模块。胰岛素低温存储盒系统整体设计结构图如图1所示。

数据处理模块向环境检测模块发送检测系统内部温度指令后,环境检测模块将采集到的系统内部温度数值进行模数转换后,再将转换后的数据发送给数据处理模块。数据处理模块接收到转换后的温度数据后,控制预警模块显示相应温度数值和警报的开关状态。若温度超过最初设定的胰岛素存储温度阈值,系统中控制预警模块发出报警信号,达到提醒用户的作用。

用户可通过人机交互模块实时获取存储盒状态,当温度过高时,手机终端会接收到预警信号,用户也

可通过手机蓝牙软件向数据处理模块发送相应指令,获取设备的温度信息以及胰岛素相关信息。系统中电源管理模块分别向环境检测模块、人机交互模块、控制预警模块和数据处理模块供电。

3 硬件电路设计

3.1 数据处理模块设计

本系统使用STC12C5A16S2 作为主控芯片,STC12C5A16S2芯片拥有加强型8051内核,内置一个时钟周期,处理数据高速准确。32个通用I/O口,双串口的设计,使系统可以外接更多模块,增加系统的可用性。低功耗的设计,使系统的续航能力大大提升。此款单片机在电子产品的设计中,应用最为广泛,其功能强大、上手简单、易操作、体积小、价格低廉等优点很适合作为胰岛素低温存储盒的主控芯片。本系统数据处理模块设计电路原理图如图2所示。

数据处理模块主要任务是通过I/O口,将各模块连接起来,同时负责为环境检测等模块供电和数据传输。通过温度传感器采集到的数据转换后在控制预警模块进行显示与预警。通过人机交互模块,使用户随时查看设备相关信息,完成相应功能。

3.2 环境检测模块

环境检测模块的主要由DS18B20温度传感器构成,该传感器可将检测到的温度数据进行模数转换并输出,可检测的环境温度范围在-55℃~﹢125℃(-67℉~+257℉),分辨率最高可达12位,检测精度控制在±0.5摄氏度以内。可以直接将检测的系统内部温度转化为数据处理模块可接收的数字信号,不需要为系统设计数模转换电路,方便快捷,测量精准[2]。环境检测模块电路原理图如图3所示。

环境检测模块工作方式可分为温度检测和数据处理两部分,内部进行模数转换,将模拟信号直接转换为数字信号。采用单总线数据通信的通信方式,需要与数据处理模块连接传输数据时,连接一根杜邦线即可实现双向通信。将DQ引脚通过杜邦线连接到数据处理模块上的P1_5引脚,VCC,GND连接到对应的引脚上,完成数据传输[3]。

3.3 人机交互模块

DX-BT04-A蓝牙模块被广泛运用于短距离通信领域。该模块结构简单,功能众多,支持UART接口和众多串口协议,具有低功耗、接收和发送数据响应快、传输速度快、稳定性好、价格低廉等优点,人机交互模块实物如图4所示。

用户可以通过数据处理模块的RXD和TXD两个串口连接蓝牙模块,实现与人机交互模块的通信。在使用此模块之前我们需要进行AT指令配置,通过USB转TTL模块连接电脑,再通过STC-ISP软件发送AT指令,获得蓝牙模块初始化信息,如发送AT+BAUD可获得初始波特率,发送AT+ PIN可获得配对码,发送AT+VERSION可获得版本号等信息。此系统使用的DX-BT04-A蓝牙模块默认波特率为9600,即在代码的初始化中波特率要配置正确,防止与蓝牙模块通信失败[4]。

用户在手机端应用商城下载蓝牙调试帮手App,也可以使用自己制作的蓝牙App,打开蓝牙,找到对应的BT04-A蓝牙模块设备名称进行连接,连接成功后即可通过调试帮手接收数据,也可通过调试帮手发送相应指令获取设备信息,最终实现手机与系统之间的通信。

3.4 控制预警模块

控制预警模块由LCD12864液晶屏模块和蜂鸣器模块组成,LCD12864液晶屏是在单片机开发中常用的一款液晶显示屏幕,像素为128×64,常用工作电压为2.8~5.5v,该型号液晶模块具有众多接口且接收显示数据灵活简单,对于指令的操作方便快捷,功能强大,功耗低等特点,其内置的汉字库和ASCll字符集使它可以简单且快速地构成中英文显示图形界面,也可根据用户需求显示图像界面。本系统显示的界面如图5所示[5]。

当温度未超过设定的胰岛素存储温度的阈值,屏幕显示系统检测到的温度数值,警报为关闭状态。若温度超过设定的胰岛素存储温度的阈值,屏幕会显示警报:开,此时触发蜂鸣器报警,发出“滴滴滴”的警报声,达到提醒用户的功能。

4 软件系统设计

本系统是基于KEIL的uVision5的集成开发环境对数据处理模块进行的软件系统设计,采用C语言编写程序代码,模块化程序设计理念,便于理解与分析。主要包含系统主程序,LCD12864 显示子程序,DXBT04-A 蓝牙模块子程序,DS18B20温度传感器子程序,蜂鸣器报警模块子程序等组成[6]。胰岛素低温存储盒程序设计流程图如图6所示。

4.1 LCD12864 显示子程序

该模块程序设计主要包括LCD12864初始化、写入数据、写入命令和字符串显示等,LCD12864由单片机的P0和P1端口控制,在初始化中包括复位操作、对比度等操作,在向LCD12864进行写入数据或操作命令时,需注意时序再通过调用中断程序实现显示功能,若写入的时序没有严格按照要求进行编写,则可能会导致液晶屏幕显示乱码或不显示。

LCD12864显示模块部分代码如下:

void dis(uchar x,uchar y,uchar *s) //显示字符串

{

switch(y) //选择纵坐标

{

case 0:wcode(0x80+x);break; //第一行

case 1:wcode(0x90+x);break; //第二行

case 2:wcode(0x88+x);break; //第三行

case 3:wcode(0x98+x);break; //第四行

default:break;

}

while(*s>0)

{

wdata(*s);

delay(10);

s++;

}

}

4.2 DX-BT04-A 蓝牙模块子程序

DX-BT04-A蓝牙模块子程序设计主要包括蓝牙模块初始化、串口中断的调用和用户交互等,在蓝牙模块初始化程序设计,首先我们要设置蓝牙模块波特率初始化配置,DX-BT04-A蓝牙模块通过串口软件STC-ISP发送AT指令AT+BAUD查询波特率得知,波特率为9600,配置系统串口工作方式1。初始化配置完成后,在用户交互的程序设计中,使用数组存储获取到的数据,由于单片机的数据存储在寄存器中,即利用赋值语句获取到寄存器中的数据。使用标志位“#”判断用户是否结束操作,最后利用标志位flag进行分类。

人机交互模块部分代码如下:

__interrupt void URX0_ISR(void) //蓝牙模块

{

Data = U0DBUF;

if(Data!='#'||RX_COUNT==32-1) //标志位

{

RX_BUF[RX_COUNT++]=Data;

}

else{

for(i=0;i<RX_COUNT;f++)

{

RX_DAT[i]=RX_BUF[i];

}

RX_COUNT=0;

RX_OVER=1;

}

URX0IF = 0;

}

4.3 DS18B20温度传感器子程序

该模块程序设计主要包括初始化即复位操作、读取ROM操作指令、对RAM的读,写操作、收发数据等,在初始化的过程中检测信号线是否被拉高或拉低,设置等待时间,若检测到信号线被拉高则标志着初始化完成,信号线被拉低则需要返回主程序,重新初始化。主控制器的延时至少需要达到0.48微秒,确保应答操作不会出现错误。在接收或发送数据时,读写操作时间须至少保持0.06毫秒不变,以确保读写操作不会出现错误[7]。

环境检测模块部分代码如下:

Void ReadTemperature() //测温程序

{

uchar a=0;

uchar b=0;

uint t=0;

float tt=0;

Init_DS18B20();

WriteOneChar(0xCC);

WriteOneChar(0x44);

Init_DS18B20();

WriteOneChar(0xCC);

WriteOneChar(0xBE);

a=ReadOneChar();

b=ReadOneChar();

t=b;

t<<=8;

t=t|a;

tt=t*0.0625;

t= tt*10+0.5;

return(t);

}

5 組装与调试

为确保整个系统的正确性与实用性,在硬件电路与软件系统设计完成后,我们对整个系统进行组装与调试,检查各个模块连线是否正确,DS18B20温度传感器、DX-BT04-A 蓝牙模块、LCD12864显示模块等供电是否正常。确保线路连接正确后,查看LCD12864显示模块是否正常显示温度信息与警报开关状态,对系统进行升温操作,当温度超过设定的报警范围,查看蜂鸣器报警模块是否正常工作。为保证系统的可靠性,利用独立温度检测设备对胰岛素存储盒系统内部与外部温度进行温度监测,设备检测温度数据如表1所示。通过测量的数据发现,该系统的恒温控制系统能将温度控制在3℃以下,远低于系统外部温度,说明该系统安全可靠,能够较好地保持温度恒定,实现了胰岛素的低温存储。

打开手机蓝牙,连接蓝牙模块,在蓝牙调试助手中查看是否可以接收温度信息,发送相应指令如温度,过期信息等后查看是否可以正常接收反馈。最终经过测试,系统运转正常,数据接收准确无误,完成整个系统的组装与调试。人机交互模块调试界面如图7 所示,左图为发送界面,右图为接收界面。

6 结束语

本文设计了一套基于STC12C5A60S2芯片为主控芯片的51单片机、DX-BT04-A蓝牙模块、DS18B20温度传感器、LCD12864液晶显示模块、蜂鸣器报警模块和串口通信的胰岛素低温存储盒系统。蓝牙模块的应用使得胰岛素低温存储盒系统更加便捷,更加智能,用户可通过发送指令随时获取设备相关信息。实验结果表明,胰岛素低温存储盒系统安全可靠,测温精确,方便快捷,可模块化组装,极大地满足了糖尿病人的日常生活需求。

猜你喜欢
数据处理蓝牙串口
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
浅谈AB PLC串口跟RFID传感器的通讯应用
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
基于并行控制的FPGA多串口拓展实现