2 Star 0 Fork 0

eternal-echo / pressure_measurement

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

尿道管压力监测与蓝牙传输系统

背景

tube

红圈是球囊部位,其材料像是气球用的橡胶,送入病人体内之后,由医生注水胀起。但是在实际使用过程中,有些球囊会破裂,水就漏掉。球囊是起固定作用的,一旦漏掉就没办法使用,需要病人及时去更换。如果几小时未更换,需要重新手术。

传感器在红色管套这一头,与球囊联通,实时监测水压。通过蓝牙发到手机,最后手机联网,通知医院准备并更换。

我们可以在手机app中设置定时测量水压的时间间隔,比如每10分钟测一次,前后数据比较,若压力明显下降,就报警,提醒用户进行更换。

要求

基于压力传感器对导尿管球囊压力进行实时监测,当出现压力异常波动时触发声光报警。该系统能够定时测量导尿管球囊内水压,整个系统体积小巧,直径小于12mm,长度小于40mm。

用户可以在手机app中设置定时测量水压的时间间隔,并实时查看水压大小。该器件除要求体积小,重量轻、低功耗外,密封防水和散热也需要满足需求。

需求指标分析

压力传感器的精度:由于要求系统能够实时监测导尿管球囊压力,因此压力传感器的精度对系统的效果有很大的影响。 手机APP报警的可靠性:系统需要能够在出现压力异常波动时及时触发手机APP报警。 系统体积小巧:为便于病人携带,系统要求直径小于12mm,长度小于40mm。 防水防腐:压力传感器需要监测水压,因此需要考虑控制器结构方面的防水防腐蚀措施。

系统结构

system

  • 压力传感器:用于测量导尿管球囊内水压的传感器,能够持续不断地测量导尿管球囊内水压并将数据发送给控制器。
  • 控制器:负责接收传感器发送的数据,并对数据进行处理。
  • 蓝牙模块:向手机APP发送压力数据。同时,还需要接收并解析手机APP发送过来的指令,包含修改阈值、修改采样周期、开始采集和停止采集。
  • APP:显示当前的压力数据,发送控制指令,当压力异常时报警。

功能

  • 实时测量导尿管球囊压力:系统能够持续不断地测量导尿管球囊内水压,并将数据发送给控制器。
  • 通知APP压力值异常:当系统检测到导尿管球囊压力出现异常波动时,立即向APP发送报警信号,通知医护人员更换导尿管。
  • 提供数据记录功能:APP能够记录导尿管球囊压力的测量数据,便于医护人员对病人尿液排出情况进行分析。
  • 低功耗设计,电源管理

原型系统设计

firmware_architecture

核心主控选择了STM32F103CBU6,该芯片是UFQFPN-48(7x7)的封装,RAM总容量为20KB,程序 FLASH容量128KB,满足本项目的使用需求。

MCU的驱动库是移植的ST官方的HAL库,对MCU的寄存器进行了抽象,能够很方便的使用外设。

BSP包含HP206C传感器驱动、BT-11蓝牙驱动、RTC Alarm与低功耗。HP206C传感器使用I2C进行驱动控制。BT-11蓝牙模块通过串口进行驱动。Alarm用于控制系统的测量周期,它是基于RTC外设,实现了定时唤醒。低功耗模式主要是使用了Power Control外设,当系统处于测量间隔期间时,会进入sleep mode来节省功耗。

服务层使用了卡尔曼滤波对传感器测量的压力值进行滤波处理,抑制了传感器的随机误差。基于蓝牙驱动,为应用层提供了发送数据接口,来发送滤波后的压力值。同时,蓝牙驱动基于串口实现了控制指令的解析。

应用层使用了有限向量状态机,分为工作、暂停和空闲三个状态,来对系统工作状态进行管理。系统状态在RTC的alarm中断和串口中断中进行切换。

kalman_result

嵌入式软件

嵌入式软件

HP206C

HP206C气压传感器基本参数:

● 电压范围:1.8V ~ 3.6V

● 压力范围:300~1200mbar

● 可编程中断控制

● 气压:20位有效测量位(帕)

● 高度:20位有效测量位(米)

● 温度:20位有效测量位(摄氏度)

● 高分辨率:10cm

● 待机功耗:< 0.1uA,低功耗:每秒采样一次

● 工作温度:-40~+85℃

● 高速I2C数字输出接口

● 尺寸: 6.8 X 6.2 X 3.0(+0.2)mm

压力传感器使用HP206C,这个传感器会输出24bit的压力值,压力范围在300~1200mbar。

该部分由黄泽负责完成。

bt-11

ble_para

蓝牙模块使用bt-11,该模块功耗低,尺寸小,使用串口进行驱动,适合用于本工程的应用场景。

该部分由阮杨帆负责完成。

系统控制程序

读取传感器的压力数据,滤波后通过蓝牙模块发送数据,当压力数据超过了阈值系统会报警。

系统应用层使用了状态机进行管理,分为工作、暂停和空闲三个状态。空闲状态和暂停状态都会通过power control外设进入sleep mode,节省系统功耗。串口中断和alarm中断都会唤醒系统。

当蓝牙模块通过串口中断接收指令并解析,如果指令是开始就会设置状态为工作,如果指令是暂停就会进入暂停状态,如果指令是设置阈值就会修改压力阈值,如果指令是修改周期,就会修改RTC的alarm周期。

当rtc的alarm产生中断后,会唤醒系统,设置状态为work,采集压力数据、滤波后通过蓝牙传输数据。工作完成后会回到空闲状态继续休眠,等待下一次alarm中断唤醒再工作。

该部分由袁雨完成。

APP

APP包含了指令传输、压力数据显示和报警的功能。

该部分由阮杨帆完成

硬件电路

主控STM32F103C8T6通过UART1与蓝牙模块BT-11相连,发送压力数据。通过I2C接口与传感器HP206相连,获取压力数据。

主控

STM32F103C8T6 - Mainstream Performance line, Arm Cortex-M3 MCU with 64 Kbytes of Flash memory, 72 MHz CPU, motor control, USB and CAN - STMicroelectronics

传感器

https://hoperf.cn/sensor/pressure_sensor/HP206C.html

https://www.hoperf.com/sensor/pressure_sensor/HP206C.html

https://github.com/ncdcommunity/Arduino_Library_HP206C_24Bit_ADC_Barometer_Altimeter_Sensor

空文件

简介

基于压力传感器的导尿管球囊压力监测系统 展开 收起
C 等 5 种语言
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/eternal__echo/pressure_measurement.git
git@gitee.com:eternal__echo/pressure_measurement.git
eternal__echo
pressure_measurement
pressure_measurement
master

搜索帮助