目录
- 硬件组成
- 功能实现
- 软件设计
- 应用场景
- 开发注意事项
- 源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!
硬件组成
STM32F103C8T6作为主控芯片,负责传感器数据采集、GSM模块控制和用户界面管理。
GSM模块(如SIM800L)用于发送短信提醒,支持2G网络,需插入SIM卡并配置APN。
药量检测采用红外对管或重量传感器(如HX711),实时监测药盒剩余药量。
RTC时钟模块(DS1302/DS3231)提供精准定时,确保提醒时间准确。
OLED显示屏(SSD1306)显示当前时间、药量和服药状态。
蜂鸣器或震动马达用于本地提醒,增强用户感知。
功能实现
定时提醒通过RTC设置多个闹钟时间,触发蜂鸣器和GSM短信(如“请服用XX药品”)。
药量检测通过周期性读取传感器数据,低于阈值时发送短信(如“药品不足,请补充”)。
用户可通过按键确认服药,系统记录服药记录并停止当前提醒。
低功耗设计采用STM32的休眠模式,非活跃时段降低功耗。
软件设计
主程序循环检测RTC时间、传感器数据和用户输入。
中断服务处理GSM模块的短信发送/接收(AT指令:AT+CMGS="手机号码")。
药量算法校准传感器基准值,动态计算剩余药量(公式:剩余量 = (当前读数 - 空盒值) / 单位重量)。
数据存储使用EEPROM或Flash保存服药记录和药量阈值。
应用场景
适用于老年患者或慢性病患者,解决漏服、误服问题。
支持远程监护,家属可通过短信查询药盒状态(发送“STATUS”获取回复)。
扩展性:可增加Wi-Fi模块上传数据至云平台,或集成温湿度传感器监测药品储存环境。
开发注意事项
GSM模块需处理网络延迟,建议设置重发机制(如3次尝试)。
传感器需定期校准,避免环境干扰导致误报。
代码优化避免阻塞式延时,采用状态机非阻塞设计。
示例代码片段(GSM发送短信):
voidSendSMS(char*phone,char*msg){HAL_UART_Transmit(&huart2,"AT+CMGF=1\r\n",11,1000);// 设置文本模式HAL_Delay(500);sprintf(buffer,"AT+CMGS=\"%s\"\r\n",phone);HAL_UART_Transmit(&huart2,buffer,strlen(buffer),1000);HAL_Delay(500);HAL_UART_Transmit(&huart2,msg,strlen(msg),1000);HAL_UART_Transmit(&huart2,"\x1A",1,1000);// 发送Ctrl+Z结束}源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!
需要成品或者定制,加我们的时候,不满意的可以定制
文章最下方名片联系我即可~