毕业设计 STM32版RFID医嘱专用手环

2022-03-30   大方老师单片机

原标题:毕业设计 STM32版RFID医嘱专用手环

医嘱专用手环不仅能测量心率,还可以与医院联动,让毕业设计有更加实用的价值。

下面就介绍下设计细节,方便感兴趣的同学自己动手。

功能描述

作为医嘱手环,除了有手环的常规功能之外,还有和医院的互动功能:

心率、血氧监测使MAX30102模块,算法FFT快速傅里叶变换,借鉴了之前做的推送里的代码(借鉴代码在这里:自制简易血氧心率STM32+MAX30100),同时心率、血氧信息会通8266WiFi发送给上位机,在动态网页上实时显示。

RFID识别药品通过按键选OLED屏幕上功能进行核验,核验的过程分为核RFID标签扇区密码,读取相应扇区存放的数据,再进行字符串对比。如果读出的字符串和手环内部设置的患者编号不同LED红灯亮起OLED核验错,同时蜂鸣器进行报错,直到用户按下确定键。核验正确则亮绿灯,延2s消失。同时核验记录会通8266WiFi发送给上位机。注意:要先RFID标签相应扇区里写入信接收通知根据信息种类分成手术通知、服药提醒和请家属来手术室。当通8266WiFi接受到不同字符串时,会OLED屏幕上显示相应内容。

硬件组成

手环的全部芯片包括:

主控STM32F103VET6。手环所IO口不多,所以主控换C8T6也行。

通信8266WIFI是方便组网,基本手机开个热点就行,后期如果希望把上位机动态网页放在网络上,或者想在手机上做个相应app8266WiFi也更容易接入,注意要3.3V供电的模块。

RFID标签使用的MFRC522,相比于经典RC522,在体积上缩小很多,但是其他包括指令、频率、时序都没发生变化,因为做的是手环(虽然现在做的比较丑),所以对使用模块大小是越小越好RFID标签没使用自带的复M1卡,而是买了不干胶标签,方便黏在药瓶上。血氧模块使用MAX30102,是之所以选MAX30102,是因为它是目前最普遍的血氧模块,接口简单,使IIC,例程也很容易找。pulsesensor需要先经AD转换再进行计算。

程序流程

主程序流程图:

程序一共设置了两flag,一个是表示屏幕和目前所在时间scflag位,另一个rflag位,用于接收中断。

点击可以放大

刚开始写的程序中,scflag相应执行的程序放在主程序,中断只改scflag值。主程序先判scflag位,再执行相应程序,但是由于心率计算时间一般比较长,需要好几秒,经常会出现返回断点后要过两三秒才会出现相应画面。所以,后面把相应程序全部放在中断里。点击可以放大上图是接收中断的函数,因为异步通信是一帧帧接收,所以为了防止在使netassist调试时不小心按错字符发送,我规定了一个rv,只有当前两位字符rv,单片机才会将以下接收的四个字符存储在字符串里。四个字符接受完后,就选择执行相应命令,具体格式如下表。

软件相关的代码开源给大家继续完善补充,达尔闻说微信回复:医嘱手环,获取。

后续项目升级

医嘱手环的功能还可以更强大。有些疾病是可以通过连续性心率监测诊断,例如原发性高血压在初期和后期心率会有增10~15%,那么通过长期的心率监测可以起到预警作用。另一个构想是添加一sd卡,用来存储心率数据,然后将一个人长期以来的心率读出来,运用现在已经找到的一些心率模型,来判断是否具有某些疾病的心率特征。

要实现上述的功能,有个关键问题max30102模块的测量数据是否符合目前疾病心率模型的标准,还待继续考量。

说了这么多,大家记得留意下方评论第一条(或者私信我)有干~