1、Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)本栏目责任编辑:梁书工程应用E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.18,No.36,December2022基于51单片机实现胰岛素低温存储盒设计与实现方志鹏,梁月放(安徽三联学院,安徽 合肥 230601)摘要:本系统实现了胰岛素低温存储盒的智能控制,主控制器使用STC12C5A16
2、S2芯片,温度传感器采用DS18B20,蓝牙传输模块采用DX-BT04-A,屏幕显示模块使用LCD12864。系统根据胰岛素存储的温度阈值实现温度控制与提醒措施,通过单片机串口连接DX-BT04-A蓝牙模块实现数据的无线传输。实现存储盒和手机互联,方便用户实时查看胰岛素存储的状态,同时可以定时提醒用户使用胰岛素。关键词:STC12C5A16S2;胰岛素;蓝牙;温度控制中图分类号:TP31文献标识码:A文章编号:1009-3044(2022)36-0078-04开放科学(资源服务)标识码(OSID):1 概述由于经济水平的不断发展、生活水平的提高、饮食习惯的改变、生活作息的不规律以及缺少一定运动
3、量的生活方式等诸多因素,使全球糖尿病发病率增长趋势逐年递增,糖尿病也因此成为世界上第三种严重危害人类身体健康的慢性疾病。根据研究数据表明,全球糖尿病患者已超过5亿人,中国糖尿病患者人数位居全球第二,目前我国的糖尿病发病率高达9.6%,成年人糖尿病患病人数约为1.3亿,而青少年患病人数也在不断提升1。据临床试验得知,胰岛素能够快速地降低血糖,是能够有效治疗糖尿病的药物之一,因为胰岛素是属于蛋白质类的一种激素,当温度过高时会导致蛋白质变性,药性失效。所以胰岛素对存储的温度要求极高,一般存储在2-8恒温环境下,胰岛素的恒温储存成为很多糖尿病人出行的一大困难。本文根据实际生活需要设计了一款基于51单片
4、机实现胰岛素的低温存储系统,利用恒温片将热量导出,达到恒温的效果,可实时监测存储盒温度参数,当温度超过设定阈值,触发报警功能。通过无线蓝牙模块将监测的数据上传到手机App,实现存储盒和智能终端互联,方便用户随时掌握胰岛素存储的情况,将科技与现代生活相结合,用科技帮助人们提高生活质量。2 系统整体设计系统以51单片机为核心,采用2000mAh锂电池对系统各模块供电,传感器的使用包括DX-BT04-A蓝牙传感器、LCD12864液晶显示屏传感器、DS18B20温度传感器等。按照各个模块的功能,胰岛素低温存储盒系统可以分为五个模块:电源管理模块、环境检测模块、人机交互模块、控制预警模块和数据处理模块
5、。胰岛素低温存储盒系统整体设计结构图如图1所示。图 1 胰岛素低温存储盒系统整体设计结构图数据处理模块向环境检测模块发送检测系统内部温度指令后,环境检测模块将采集到的系统内部温度数值进行模数转换后,再将转换后的数据发送给数据处理模块。数据处理模块接收到转换后的温度数据后,控制预警模块显示相应温度数值和警报的开关状态。若温度超过最初设定的胰岛素存储温度阈值,系统中控制预警模块发出报警信号,达到提醒用户的作用。用户可通过人机交互模块实时获取存储盒状态,当温度过高时,手机终端会接收到预警信号,用户也收稿日期:2022-07-12基金项目:2021年国家级大学生创新创业训练项目(基于51单片机实现胰岛
6、素低温存储盒)编号:(202110959051);2021年安徽三联学院校级平台重点项目(基于物联网的多源信息感知系统设计与研究)编号:(PTZD2021013);2020年安徽省大学生创新创业训练项目(基于51单片机实现胰岛素低温存储盒)编号:(202010959107)作者简介:方志鹏(2000),男,安徽安庆人,本科,学生,研究方向为物联网技术与应用;梁月放(1990),男,安徽合肥人,硕士研究生,助教,研究方向为嵌入式、物联网技术与应用。78DOI:10.14004/ki.ckt.2022.2285Computer Knowledge and Technology电脑知识与技术第18卷
7、第36期(2022年12月)第18卷第36期(2022年12月)工程应用本栏目责任编辑:梁书可通过手机蓝牙软件向数据处理模块发送相应指令,获取设备的温度信息以及胰岛素相关信息。系统中电源管理模块分别向环境检测模块、人机交互模块、控制预警模块和数据处理模块供电。3 硬件电路设计3.1 数据处理模块设计本 系 统 使 用 STC12C5A16S2 作 为 主 控 芯 片,STC12C5A16S2芯片拥有加强型8051内核,内置一个时钟周期,处理数据高速准确。32个通用I/O口,双串口的设计,使系统可以外接更多模块,增加系统的可用性。低功耗的设计,使系统的续航能力大大提升。此款单片机在电子产品的设计
8、中,应用最为广泛,其功能强大、上手简单、易操作、体积小、价格低廉等优点很适合作为胰岛素低温存储盒的主控芯片。本系统数据处理模块设计电路原理图如图2所示。数据处理模块主要任务是通过I/O口,将各模块连接起来,同时负责为环境检测等模块供电和数据传输。通过温度传感器采集到的数据转换后在控制预警模块进行显示与预警。通过人机交互模块,使用户随时查看设备相关信息,完成相应功能。3.2 环境检测模块图 3 DS18B20电路原理图环境检测模块的主要由DS18B20温度传感器构成,该传感器可将检测到的温度数据进行模数转换并输出,可检测的环境温度范围在-55125(-67+257),分辨率最高可达12位,检测精
9、度控制在0.5摄氏度以内。可以直接将检测的系统内部温度转化为数据处理模块可接收的数字信号,不需要为系统设计数模转换电路,方便快捷,测量精准2。环境检测模块电路原理图如图3所示。环境检测模块工作方式可分为温度检测和数据处理两部分,内部进行模数转换,将模拟信号直接转换为数字信号。采用单总线数据通信的通信方式,需要与数据处理模块连接传输数据时,连接一根杜邦线即可实现双向通信。将DQ引脚通过杜邦线连接到数据处理模块上的P1_5引脚,VCC,GND连接到对应的引脚上,完成数据传输3。3.3 人机交互模块DX-BT04-A 蓝牙模块被广泛运用于短距离通信领域。该模块结构简单,功能众多,支持UART接口和众
10、多串口协议,具有低功耗、接收和发送数据响应快、传输速度快、稳定性好、价格低廉等优点,人机交互模块实物如图4所示。图 4 DX-BT04-A蓝牙模块实物图用户可以通过数据处理模块的RXD和TXD两个串口连接蓝牙模块,实现与人机交互模块的通信。在使用此模块之前我们需要进行AT指令配置,通过USB转TTL模块连接电脑,再通过STC-ISP软件发送AT指令,获得蓝牙模块初始化信息,如发送 AT+BAUD可获得初始波特率,发送AT+PIN可获得配对码,发送AT+VERSION可获得版本号等信息。此系统使用的DX-BT04-A蓝牙模块默认波特率为9600,即在代码的初始化中波特率要配置正确,防止与蓝牙模块
11、通信失败4。用户在手机端应用商城下载蓝牙调试帮手App,也可以使用自己制作的蓝牙App,打开蓝牙,找到对应的BT04-A蓝牙模块设备名称进行连接,连接成功后即可通过调试帮手接收数据,也可通过调试帮手发送相应指令获取设备信息,最终实现手机与系统之间的通信。3.4 控制预警模块控制预警模块由LCD12864液晶屏模块和蜂鸣器模块组成,LCD12864液晶屏是在单片机开发中常用的一款液晶显示屏幕,像素为12864,常用工作电压为2.85.5v,该型号液晶模块具有众多接口且接收显示数据灵活简单,对于指令的操作方便快捷,功能强大,功耗低等特点,其内置的汉字库和ASCll字符集使它可以简单且快速地构成中英
12、文显示图形界面,也可根据用户需求显示图像界面。本系统显示的界面如图5所示5。图 2 数据处理模块电路原理图79Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)本栏目责任编辑:梁书工程应用图 5 LCD温度显示界面当温度未超过设定的胰岛素存储温度的阈值,屏幕显示系统检测到的温度数值,警报为关闭状态。若温度超过设定的胰岛素存储温度的阈值,屏幕会显示警报:开,此时触发蜂鸣器报警,发出“滴滴滴”的警报声,达到提醒用户的功能。4 软件系统设计本系统是基于KEIL的uVision5的集成开发环境对数据处
13、理模块进行的软件系统设计,采用C语言编写程序代码,模块化程序设计理念,便于理解与分析。主要包含系统主程序,LCD12864 显示子程序,DX-BT04-A 蓝牙模块子程序,DS18B20温度传感器子程序,蜂鸣器报警模块子程序等组成6。胰岛素低温存储盒程序设计流程图如图6所示。图 6 系统程序设计框图4.1 LCD12864显示子程序该模块程序设计主要包括LCD12864初始化、写入数据、写入命令和字符串显示等,LCD12864由单片机的P0和P1端口控制,在初始化中包括复位操作、对比度等操作,在向LCD12864进行写入数据或操作命令时,需注意时序再通过调用中断程序实现显示功能,若写入的时序没
14、有严格按照要求进行编写,则可能会导致液晶屏幕显示乱码或不显示。LCD12864显示模块部分代码如下:void dis(uchar x,uchar y,uchar*s)/显示字符串switch(y)/选择纵坐标case 0:wcode(0 x80+x);break;/第一行case 1:wcode(0 x90+x);break;/第二行case 2:wcode(0 x88+x);break;/第三行case 3:wcode(0 x98+x);break;/第四行default:break;while(*s0)wdata(*s);delay(10);s+;4.2 DX-BT04-A 蓝牙模块子程序
15、DX-BT04-A蓝牙模块子程序设计主要包括蓝牙模块初始化、串口中断的调用和用户交互等,在蓝牙模块初始化程序设计,首先我们要设置蓝牙模块波特率初始化配置,DX-BT04-A蓝牙模块通过串口软件STC-ISP发送AT指令AT+BAUD查询波特率得知,波特率为9600,配置系统串口工作方式1。初始化配置完成后,在用户交互的程序设计中,使用数组存储获取到的数据,由于单片机的数据存储在寄存器中,即利用赋值语句获取到寄存器中的数据。使用标志位“#”判断用户是否结束操作,最后利用标志位flag进行分类。人机交互模块部分代码如下:_interrupt void URX0_ISR(void)/蓝牙模块Data
16、=U0DBUF;if(Data!=#|RX_COUNT=32-1)/标志位RX_BUFRX_COUNT+=Data;elsefor(i=0;iRX_COUNT;f+)RX_DATi=RX_BUFi;RX_COUNT=0;80Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)工程应用本栏目责任编辑:梁书RX_OVER=1;URX0IF=0;4.3 DS18B20温度传感器子程序该模块程序设计主要包括初始化即复位操作、读取ROM操作指令、对RAM的读,写操作、收发数据等,在初始化的过程中检测信号线是否被拉高或拉低,设置等待时间,若检测到信号线被拉高则标志着初始化完成,信号线被拉低则需要返回主程序,重新初始化。主控制器的延时至少需要达到0.48微秒,确保应答操作不会出现错误。在接收或发送数据时,读写操作时间须至少保持0.06毫秒不变,以确保读写操作不会出现错误7。环境检测模块部分代码如下:Void ReadTemperature()/测温程序uchar a=0;uchar b=0;uint