STM32智能医疗药品存储系统设计与实现
## 1. 项目概述 ### 1.1 系统架构 本设计基于STM32F103C8T6微控制器构建智能医疗药品存储系统采用模块化架构 - 传感层DHT22温湿度传感器干簧管门磁 - 控制层STM32F103C8T6最小系统 - 通信层ESP8266-01S Wi-Fi模块 - 云端服务华为云数据平台 - 应用层QT上位机管理软件 ### 1.2 核心功能指标 | 功能模块 | 技术指标 | 实现方案 | |---------|---------|---------| | 环境监测 | 温度范围0-50℃±0.5℃ | DHT22单总线协议 | | 门状态检测 | 响应时间100ms | 干簧管磁簧开关 | | 温控系统 | 继电器驱动能力10A/250VAC | GPIO控制固态继电器 | | 数据上传 | 传输间隔5s | ESP8266 AT指令集 | ## 2. 硬件设计 ### 2.1 主控电路 STM32F103C8T6最小系统设计要点 - 时钟电路8MHz晶振22pF负载电容 - 复位电路10kΩ上拉电阻100nF电容 - 调试接口SWD四线制SWDIO/SWCLK/GND/VCC ### 2.2 传感器接口设计 **DHT22连接方案** c // PA0配置为开漏输出 GPIO_InitTypeDef gpio; gpio.Pin GPIO_PIN_0; gpio.Mode GPIO_MODE_OUTPUT_OD; gpio.Pull GPIO_NOPULL; HAL_GPIO_Init(GPIOA, gpio);门磁传感器电路graph LR A[干簧管] --|磁感应| B[10kΩ上拉] B -- C[PA1] C -- D[STM32中断输入]2.3 电源设计主电源12V/2A DC输入二级转换LM7805 → 5V/1A传感器供电AMS1117-3.3 → 3.3V/800mAMCUWiFi3. 软件实现3.1 主程序流程void main() { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); while(1) { float temp DHT22_ReadTemp(); float humi DHT22_ReadHumi(); uint8_t door ReadDoorSensor(); if(temp 30.0f || humi 80.0f) { ActivateTemperatureControl(); TriggerAlarm(); } UploadToCloud(temp, humi, door); HAL_Delay(5000); } }3.2 关键驱动实现DHT22数据采集主机拉低总线18ms释放总线20-40us从机响应80us低电平数据位时序026-28us高电平170us高电平ESP8266通信协议ATCIPSTARTTCP,cloud.xxx.com,1883 ATCIPSEND48 {temp:25.6,humi:65,door:0,time:2024-03-20 14:30}4. 系统测试数据4.1 环境监测精度参数标准值实测值误差温度25.0℃25.2℃0.8%湿度60%RH58%RH-3.3%4.2 通信性能WiFi连接建立时间2.3±0.5s数据包成功率99.7%100次测试云端响应延迟800ms5. 工程优化建议5.1 硬件改进增加TVS二极管保护通信接口采用PCB替代洞洞板焊接添加锂电池备用电源5.2 软件增强// 增加看门狗保护 IWDG_HandleTypeDef hiwdg; hiwdg.Instance IWDG; hiwdg.Init.Prescaler IWDG_PRESCALER_32; hiwdg.Init.Reload 0xFFF; HAL_IWDG_Init(hiwdg);6. BOM关键器件选型器件型号关键参数MCUSTM32F103C8T672MHz Cortex-M3温湿度传感器DHT220-100%RH, -40-80℃WiFi模块ESP8266-01S802.11 b/g/n时钟模块DS1302±2ppm 25℃