资讯动态

智能药盒SoC系统的设计与用药依从性监测实现|毕业设计项目|毕设项目|单片机项目|物联网专业|毕业设计

发布时间:2026/9/15 18:10:41 来源:尧图企业网站定制
一、项目介绍智能药盒SoC系统的设计与用药依从性监测实现摘 要针对慢性病患者居家用药依从性不足、用药过程缺乏监管、药品储存环境无法实时监测等问题本文设计并实现了一种以STM32F411CEU6为控制核心的智能药盒SoC系统。系统选用SHT30数字温湿度传感器采集药盒环境参数HX711称重传感器检测服药重量声光报警器实现服药提醒按键模块完成服药确认TFTLCD液晶显示屏实现本地数据显示ESP8266 WIFI模块将监测数据实时上报至物联网云平台。论文依次完成系统总体方案设计、硬件电路设计、软件程序设计采用模块化思路开发各功能模块通过硬件测试、软件测试和系统整体测试验证系统性能。测试结果表明该系统能精准采集温湿度、服药重量数据稳定实现服药提醒、数据上传与本地显示功能服药数据记录准确可有效提升患者用药依从性满足慢性病患者居家用药监测需求具有良好的实用性和应用价值。关键词智能药盒STM32F411CEU6用药依从性物联网数据监测研究内容与技术路线本次研究的核心内容是完成以 STM32F411CEU6 为控制核心的智能药盒 SoC 系统的设计与实现一是系统总体方案的设计结合项目的需求完成了系统的总体架构和功能模块的划分明确了主控单元、传感器模块、通信模块和显示模块的功能和连接方式二是硬件电路的设计完成了 STM32 主控电路、SHT30 温湿度传感器电路、HX711 称重传感器电路、ESP8266 通信电路、TFTLCD 显示电路和声光报警电路的设计与调试三是软件程序的设计完成了主控单元的程序编写实现了传感器数据的采集与处理、服药提醒的触发与控制、按键确认与数据上传、本地显示与云端数据交互等功能四是系统的整体测试对系统的硬件电路、软件模块和整体功能进行了测试验证了系统的稳定性和可靠性。本次研究的技术路线是从需求分析出发先完成系统的总体方案设计和器件选型再分别开展硬件电路的设计与制作、软件程序的编写与调试最后进行系统的整体测试和优化具体来说首先通过需求分析明确了系统需要实现的功能然后完成了系统的总体架构设计和核心器件的选型接着分别进行了硬件电路的原理图设计和 PCB 绘制以及软件程序的模块化编写与调试之后将硬件和软件进行了联合调试完成了系统的整体功能测试最后对系统的不足进行了分析并提出了后续的优化方向。系统需求分析本次智能药盒 SoC 系统的设计是围绕慢性病患者居家用药场景的实际痛点来开展的整体需求可以分为功能需求、性能需求和应用场景适配需求这几个方面来进行梳理。一是核心功能需求方面系统需要实现基础的服药提醒与用药依从性监测功能用户可以在物联网云平台上设置服药提醒的间隔时间间隔时间能同步到本地的 TFTLCD 显示屏上显示当设定的提醒时间到了之后声光报警器会自动响起以此来提醒用户按时服药用户服药完成后需要通过按键模块来确认服药动作系统会把服药的时间、药品的重量变化数据还有药盒内的温湿度环境数据一起上传到云平台平台上会记录每一次的服药记录方便用户和医护人员后续查看同时系统还需要能实时采集药盒内的温湿度数据通过 TFTLCD 屏幕本地显示出来避免药品因为储存环境温湿度超标而出现变质的问题。二是性能需求方面系统需要保证数据采集的稳定性和准确性温湿度数据的采集误差要控制在合理范围内称重模块需要能精准识别服药前后的重量变化以此来判断用户是否完成了服药动作同时 ESP8266 WIFI 模块需要能稳定连接网络确保服药数据可以实时上传到云平台不会出现数据丢失或者延迟过高的情况主控单元需要能同时处理多个模块的数据交互在运行时不会出现卡顿或者死机的问题声光报警器的提醒音量也要能满足居家环境的使用需求保证用户可以及时接收到提醒信号。三是应用场景适配需求方面系统的硬件电路需要具备一定的稳定性和抗干扰能力能适应家庭环境下的日常使用TFTLCD 显示屏的显示内容要简洁易懂方便老年用户查看服药提醒和环境数据按键模块的操作逻辑也要尽量简化用户只需要按下按键就能完成服药确认的操作系统的整体功耗也要控制在较低水平以此来延长设备的续航时间方便用户日常使用和维护。整体来看本次系统的需求就是要打造一个集服药提醒、用药记录、环境监测、数据上传于一体的智能药盒系统以此来解决慢性病患者用药依从性不足、用药过程缺乏监管、药品储存环境无法监测等实际问题为居家用药场景提供可靠的技术支撑。系统总体架构设计结合本次智能药盒SoC系统的功能需求和应用场景我把整个系统的总体架构设计成了分层结构这样的设计能让各模块的功能划分更清晰后续的硬件制作、软件编写和系统调试也能更方便还能提高系统的可扩展性和可维护性整个架构从上到下依次分为物联网云平台层、通信传输层、主控核心层、外设模块层这四个部分各层之间相互配合、协同工作共同完成系统的各项功能下面我就对每一层的具体设计和功能实现做详细的说明。最上层是物联网云平台层它是整个系统的数据管理和远程控制中心主要负责接收和存储系统上传的各类数据还能实现用户的远程操作和设置用户通过云平台就能完成服药提醒间隔时间的设置设置好的间隔时间会通过后续的通信层同步到本地主控单元再显示到TFTLCD屏幕上同时云平台还会实时接收主控单元上传的服药时间、药盒内温湿度数据、药品重量变化数据等把这些数据进行整理和存储形成完整的用药记录用户和医护人员随时都能登录云平台查看这些记录了解患者的用药情况除此之外云平台还具备数据异常提醒功能如果药盒内的温湿度超标或者到了设定的服药时间用户没有完成服药操作云平台就会发出提醒信号及时告知用户和医护人员避免出现药品变质或者漏服的情况。中间层是通信传输层这一层的核心器件就是ESP8266 WIFI模块它的主要作用是搭建起本地主控单元和物联网云平台之间的通信桥梁实现数据的双向传输一方面它能把云平台上设置好的服药提醒间隔时间、参数设置等信息接收过来传递给主控核心层让本地系统按照用户的设置运行另一方面它还能把主控核心层处理好的各类数据包括温湿度数据、称重数据、服药确认记录、服药时间等实时上传到云平台确保数据能及时、准确地同步为了保证通信的稳定性我在设计的时候还对ESP8266模块的通信参数进行了优化让它能快速连接到家庭WIFI网络减少数据传输的延迟和丢失同时还加入了重连机制要是出现网络中断的情况模块能自动尝试重新连接确保通信的连续性。主控核心层是整个系统的“大脑”核心器件选用的是STM32F411CEU6单片机它承担着整个系统的统筹控制和数据处理工作所有外设模块的工作都需要在它的控制下完成首先它会接收通信传输层传来的云平台设置参数把这些参数解析后传递给对应的外设模块比如把服药提醒间隔时间发送给TFTLCD显示屏进行显示同时按照设定的时间控制声光报警器的工作其次它会实时接收外设模块采集到的各类数据包括SHT30传感器采集的温湿度数据、HX711称重传感器采集的药品重量数据、按键模块的确认信号等对这些数据进行筛选、处理和分析比如通过称重数据的变化判断用户是否完成服药通过温湿度数据判断药品储存环境是否合格最后它会把处理好的数据传递给通信传输层由ESP8266模块上传到云平台同时根据数据处理结果控制各外设模块的运行状态确保整个系统能有序、稳定地工作。最下层是外设模块层这一层包含了系统所有的外部功能模块是实现系统各项具体功能的基础主要分为数据采集模块、显示模块、提醒模块和操作模块四个部分数据采集模块由SHT30数字温湿度传感器和HX711称重传感器组成SHT30传感器会实时采集药盒内的温度和湿度数据把采集到的数字信号传递给主控单元避免药品因环境不适发生变质HX711称重传感器会实时监测药盒内药品的重量变化把重量数据传递给主控单元帮助主控单元判断用户是否完成服药显示模块采用TFTLCD液晶显示屏主要用于显示服药提醒间隔时间、当前药盒内温湿度数据、服药状态等信息让用户能直观地了解系统的运行状态和相关数据提醒模块就是声光报警器当到达设定的服药时间时主控单元会控制它发出声音和灯光提醒确保用户能及时接收到服药信号操作模块是按键模块用户服药完成后按下按键就能完成服药确认按键的信号会传递给主控单元触发服药记录的上传操作。整个系统的工作流程是相互衔接、闭环运行的用户在云平台设置好服药提醒间隔时间后ESP8266模块会把这个参数同步到STM32F411CEU6主控单元主控单元再把间隔时间显示到TFTLCD屏幕上同时开始计时当计时达到设定的间隔时间时主控单元会控制声光报警器响起提醒用户服药用户服药后按下按键确认此时HX711称重传感器会采集到药品重量的变化主控单元结合按键信号和重量变化数据确认用户完成服药随后把服药时间、温湿度数据、重量变化数据等整理好通过ESP8266模块上传到云平台云平台对这些数据进行存储和记录形成完整的用药依从性监测记录这样就完成了一次完整的服药监测流程整个架构设计既满足了系统的各项功能需求又保证了系统的稳定性和实用性也为后续的硬件设计和软件设计奠定了坚实的基础。二、文档介绍三、項目设计系统软件程序设计以 STM32F411CEU6 为主控核心采用模块化编程思路完成整体开发软件架构分为主程序框架、传感器数据采集、WIFI 通信上传、本地显示驱动、按键与报警控制五大功能板块所有程序均在 Keil MDK 开发环境中编写与调试代码结构清晰、可读性强能让各模块协同稳定工作软件整体采用中断 轮询结合的运行方式既保证了实时响应速度也能降低系统功耗满足智能药盒长期稳定运行的需求。主程序框架设计主程序是整个软件系统的核心入口负责系统初始化、模块调度与任务循环执行系统上电后会先完成时钟初始化、GPIO 初始化、串口初始化、I2C 与 SPI 初始化等基础配置再依次启动 SHT30、HX711、TFTLCD、ESP8266 等外设随后进入主循环不断读取温湿度、重量数据刷新屏幕显示判断服药提醒时间检测按键状态并在满足条件时触发报警与数据上传主程序框架保证了所有任务有序执行不会出现冲突或卡死的情况。主程序核心代码如下cintmain(void){SysInit();// 系统时钟与底层初始化Sensor_Init();// 传感器初始化LCD_Init();// 液晶屏初始化ESP8266_Init();// WIFI模块初始化KEY_Init();// 按键初始化BEEP_LED_Init();// 声光报警初始化LCD_ShowString(0,0,Smart Pill Box);while(1){Get_SHT30_Data(temp,humi);// 读取温湿度Get_HX711_Weight(weight);// 读取重量LCD_ShowTempHumi(temp,humi);// 屏幕显示Check_Alarm_Time();// 判断是否提醒服药if(KEY_Scan()){// 检测按键Upload_Data(temp,humi,weight);// 上传数据Alarm_Stop();// 关闭报警}delay_ms(200);}}传感器数据采集程序设计传感器数据采集程序包含 SHT30 温湿度采集与 HX711 称重采集两部分SHT30 采用 I2C 通信主控通过发送指令读取温度与湿度原始数据再通过公式转换为实际物理量程序中加入了数据滤波处理避免数值跳动提高监测稳定性HX711 称重模块通过 GPIO 口读取差分信号程序内部完成校准、偏移修正与单位转换能精准识别服药后的重量变化为服药行为判断提供可靠依据两种传感器的采集程序均做了容错处理即使单次采集失败也不会影响系统整体运行。SHT30 温湿度采集关键代码如下cvoidGet_SHT30_Data(float*temp,float*humi){u8 buf[6];I2C_Start();I2C_Send_Byte(SHT30_ADDR0);I2C_Send_Byte(0x2C);I2C_Send_Byte(0x06);I2C_Stop();delay_ms(50);I2C_Start();I2C_Send_Byte(SHT30_ADDR1);buf[0]I2C_Read_Byte(1);buf[1]I2C_Read_Byte(1);buf[2]I2C_Read_Byte(1);buf[3]I2C_Read_Byte(1);I2C_Read_Byte(0);I2C_Stop();*temp((((buf[0]8)|buf[1])*175.0)/65535.0)-45.0;*humi((((buf[3]8)|buf[4])*100.0)/65535.0);}ESP8266 WIFI 通信程序设计ESP8266 WIFI 通信程序负责本地设备与物联网云平台之间的数据交互软件采用串口 AT 指令控制方式先完成 WIFI 账号密码连接再建立 TCP 通信将云平台下发的服药间隔时间解析并存储到主控内部变量同时把温湿度、重量、服药时间等数据打包上传到云平台程序中加入了自动重连机制当网络断开时会自动尝试重新连接保证数据上传不中断云平台设置的参数可实时同步到本地屏幕实现远程控制与监测功能。ESP8266 发送数据核心代码如下cvoidUpload_Data(floattemp,floathumi,floatweight){chardata_buff[64];sprintf(data_buff,{\temp\:%.1f,\humi\:%.1f,\weight\:%.1f},temp,humi,weight);USART1_SendString(ATCIPSEND%d\r\n,strlen(data_buff));delay_ms(100);USART1_SendString(data_buff);LCD_ShowString(0,6,Upload Success);}c// 按键中断服务函数消抖处理voidEXTI0_IRQHandler(void){delay_ms(10);// 软件消抖if(KEY0){// 检测按键是否真的按下alarm_flag0;// 清除报警标志key_flag1;// 置位按键确认标志Alarm_Stop();// 关闭声光报警}EXTI_ClearITPendingBit(EXTI_Line0);// 清除中断标志}// 声光报警控制函数voidAlarm_Start(void){alarm_flag1;while(alarm_flag1){BEEP1;// 蜂鸣器发声LED0;// LED灯亮delay_ms(500);BEEP0;// 蜂鸣器停止LED1;// LED灯灭delay_ms(500);if(key_flag1){// 检测到按键确认退出报警key_flag0;break;}}}// 关闭报警函数voidAlarm_Stop(void){BEEP0;LED1;alarm_flag0;}

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价