基于STM32F103+MCU设计的智慧病房监测系统

摘要:本文设计了一种基于STM32F103C8T6单片机的智慧病房监测系统,通过集成MAX30102心率传感器模块、LMT70温度传感器、DHT11温湿度传感器模块、烟雾传感器、光敏电阻传感器模块,实现对病房环境参数和病人生理参数的实时监测。系统采用MQTT协议与阿里云物联网平台进行数据交互,手机端APP可远程查看监控数据。当监测数据超过预设阈值时,系统会发出报警提示,确保病人安全。该系统提高了医疗服务的质量和效率,实现了病房环境的智能化监测和管理。

关键词:STM32F103C8T6;智慧病房监测系统;传感器;阿里云物联网平台;远程监控

一、引言

随着医疗技术的不断进步和物联网技术的快速发展,智慧病房监测系统逐渐成为提升医疗服务质量和效率的重要手段。病房是医院的重要组成部分,病人的康复和治疗效果与病房环境密切相关。传统的病房监测方式主要依赖医护人员的定期巡视和手动记录,存在监测不及时、数据不准确等问题。因此,设计一种能够实时监测病房环境和病人生理参数的智慧病房监测系统具有重要的现实意义。

二、系统总体设计

(一)系统功能需求

本系统旨在实现对病房内环境参数(如温度、湿度、烟雾浓度、光照强度)和病人生理参数(如心率、体温)的实时监测,并将数据上传至阿里云物联网平台,通过手机端APP实现远程监控和数据内容显示。当监测数据超过预设阈值时,系统会发出报警提示,以便医护人员及时采取相应措施。

(二)系统架构

本系统采用基于STM32F103C8T6单片机的嵌入式硬件平台,搭配相关传感器和通信模块,实现病房环境和病人生理参数的监测与数据传输。系统架构主要分为硬件层和软件层两部分。

  1. 硬件层

    • 核心控制器:STM32F103C8T6单片机,负责数据处理和通信控制。
    • 传感器模块:包括DHT11温湿度传感器模块、烟雾传感器、光敏电阻传感器模块、MAX30102心率传感器模块、LMT70温度传感器,用于实时监测病房环境和病人生理参数。
    • 通信模块:采用ESP8266 WiFi模块,实现与阿里云物联网平台的数据交互。
  2. 软件层

    • 嵌入式系统开发:基于STM32CubeMX和Keil MDK等开发工具,开发嵌入式系统软件,实现数据采集、处理和通信功能。
    • 远程管理平台:阿里云物联网平台,用于存储和处理上传的数据,并提供手机端APP接口,实现远程监控和数据内容显示。

三、硬件设计

(一)主控芯片

STM32F103C8T6是一款基于ARM Cortex-M3内核的32位微控制器,具有丰富的外设资源和强大的处理能力,能够满足本系统对数据处理和实时控制的需求。其主要特点包括:

  • 高性能:最高工作频率可达72MHz,具有高效的指令集和数据处理能力。
  • 低功耗:支持多种低功耗模式,适用于电池供电的应用场景。
  • 丰富的外设:包含多个定时器、ADC、UART、SPI、I2C等接口,方便与各种传感器和通信模块连接。

(二)传感器模块

  1. DHT11温湿度传感器模块

    • 功能:用于实时监测病房内的温度和湿度。
    • 工作原理:DHT11传感器内部包含一个湿度检测电容和一个NTC温度测量元件,以及一个高性能的8位微控制器来处理信号。当传感器暴露在环境中时,温度传感器和湿度传感器能够感知到环境的温度和湿度,并将其转换为电信号。随后,微控制器将这些电信号转换为数字信号,并通过单总线通信协议输出给微处理器。
    • 连接方式:DHT11模块通过单总线数字信号与STM32单片机通信,实现温湿度数据的采集。
  2. 烟雾传感器

    • 功能:用于检测病房内的烟雾浓度。
    • 工作原理:烟雾传感器通常采用气敏材料,当烟雾颗粒进入传感器时,会引起气敏材料电阻值的变化,从而输出相应的电信号。
    • 连接方式:烟雾传感器模块通过模拟信号输出与STM32单片机连接,实现烟雾浓度的采集。
  3. 光敏电阻传感器模块

    • 功能:用于监测病房内的光照强度。
    • 工作原理:光敏电阻是一种基于内光电效应的半导体元件,其阻值随入射光强的变化而变化。当光照强度变化时,光敏电阻的阻值会相应改变,从而输出不同的电信号。
    • 连接方式:光敏电阻传感器模块通过模拟信号输出与STM32单片机连接,实现光照数据的采集。
  4. MAX30102心率传感器模块

    • 功能:用于实时监测病人的心率和血氧饱和度。
    • 工作原理:MAX30102是一款集成了LED、光电检测器、低噪声模拟前端和16位ADC的高度集成心率血氧传感器。通过发射特定波长的光照射人体组织,并检测反射光或透射光的变化,可以计算出心率和血氧饱和度。
    • 连接方式:MAX30102模块通过I2C接口与STM32单片机通信,实现数据的采集和传输。
  5. LMT70温度传感器

    • 功能:用于监测病人的体温。
    • 工作原理:LMT70是一种高精度的模拟温度传感器,其输出电压与温度成线性关系。通过测量输出电压,可以计算出对应的温度值。
    • 连接方式:LMT70温度传感器通过模拟信号输出与STM32单片机连接,实现体温数据的采集。

(三)通信模块

本系统采用ESP8266 WiFi模块实现与阿里云物联网平台的数据交互。ESP8266模块具有体积小、功耗低、传输速度快等特点,支持UART接口与STM32单片机连接。通过配置ESP8266模块,可以使其连接到指定的WiFi网络,并通过MQTT协议与阿里云物联网平台进行通信。

四、软件设计

(一)嵌入式系统开发

  1. 开发环境搭建

    • 安装STM32CubeMX和Keil MDK等开发工具。
    • 使用STM32CubeMX进行项目初始化,配置系统时钟、GPIO、外设接口等参数。
    • 在Keil MDK中编写和调试嵌入式系统软件。
  2. 主程序设计

    • 系统初始化:包括时钟配置、GPIO初始化、传感器初始化、通信模块初始化等。
    • 数据采集:通过ADC或I2C等接口读取传感器数据,并进行滤波和校准处理。
    • 数据处理:对采集到的数据进行分析和处理,判断是否超过预设阈值。如果超过阈值,则触发报警机制。
    • 数据发送:将处理后的数据通过MQTT协议发送给阿里云物联网平台。
    • 主循环:持续执行数据采集、处理和发送操作,确保系统实时性。
  3. 关键代码示例

    • DHT11温湿度传感器数据采集
    
      

    c复制代码

    void DHT11_Read_Data(void) {
    uint8_t i;
    for(i=0; i<5; i++) {
    DHT11_Start(); // 开始信号
    DHT11_Response(); // 主机拉低后等待从机响应
    DHT11_Read_Byte(DHT11_RH_Integral); // 读取湿度整数部分
    DHT11_Read_Byte(DHT11_RH_Decimal); // 读取湿度小数部分
    DHT11_Read_Byte(DHT11_T_Integral); // 读取温度整数部分
    DHT11_Read_Byte(DHT11_T_Decimal); // 读取温度小数部分
    DHT11_Read_Byte(DHT11_CheckSum); // 读取校验和
    DHT11_Init(); // 拉高数据线
    delay_ms(20); // 延时等待下一次读取
    }
    }
    • MAX30102心率传感器数据采集
    
      

    c复制代码

    void MAX30102_Read_Data(void) {
    uint8_t buffer[6];
    uint8_t regAddr = 0x05; // 寄存器地址
    if(HAL_I2C_Master_Transmit(&hi2c1, MAX30102_I2C_ADDRESS, &regAddr, sizeof(regAddr), HAL_MAX_DELAY) == HAL_OK) {
    if(HAL_I2C_Master_Receive(&hi2c1, MAX30102_I2C_ADDRESS, buffer, 6, HAL_MAX_DELAY) == HAL_OK) {
    // 对收到的数据进行解析处理
    float heartRate = ...; // 计算心率
    float spo2Percentage = ...; // 计算血氧饱和度
    } else {
    // 错误处理
    }
    } else {
    // 错误处理
    }
    }
    • MQTT协议数据发送
    
      

    c复制代码

    void MQTT_Send_Data(char* topic, char* payload) {
    MQTT_Packet packet;
    packet.qos = QOS0;
    packet.retained = 0;
    packet.dup = 0;
    packet.id = 0;
    packet.payload = (void*)payload;
    packet.payloadlen = strlen(payload);
    MQTT_Publish(&mqttClient, topic, &packet);
    }

(二)远程管理平台

  1. 阿里云物联网平台配置

    • 注册阿里云账号,并开通物联网平台服务。
    • 创建产品,并定义产品功能(如温湿度、烟雾浓度、光照强度、心率、体温等)。
    • 创建设备,并获取设备认证信息(如ProductKey、DeviceName、DeviceSecret)。
    • 配置产品Topic,用于数据的发布和订阅。
  2. 手机端APP开发

    • 使用阿里云物联网平台提供的SDK开发手机端APP。
    • 实现与阿里云物联网平台的MQTT通信,订阅相关Topic以接收数据。
    • 设计用户界面,实时显示病房环境和病人生理参数数据。
    • 实现报警功能,当接收到报警数据时,通过声音、震动等方式提醒用户。

五、系统测试与验证

(一)测试环境搭建

  • 搭建模拟病房环境,包括温湿度调节设备、烟雾发生器、光照调节设备等。
  • 连接传感器模块、通信模块和STM32单片机,确保硬件连接正确。
  • 配置阿里云物联网平台和手机端APP,确保通信正常。

(二)功能测试

  1. 环境参数监测测试

    • 调节模拟病房环境的温湿度、烟雾浓度和光照强度,观察手机端APP是否实时显示正确的数据。
    • 设置不同的阈值,测试系统是否能够正确触发报警提示。
  2. 生理参数监测测试

    • 使用模拟设备或实际人体测试MAX30102心率传感器模块和LMT70温度传感器的准确性。
    • 观察手机端APP是否实时显示正确的心率和体温数据。
    • 设置不同的阈值,测试系统是否能够正确触发报警提示。
  3. 远程监控测试

    • 通过手机端APP远程查看病房环境和病人生理参数数据。
    • 测试手机端APP的报警功能是否正常工作。

(三)性能测试

  • 测试系统的实时性,确保数据采集、处理和发送的延迟在可接受范围内。
  • 测试系统的稳定性,长时间运行系统观察是否出现数据丢失、通信中断等问题。
  • 测试系统的功耗,确保系统能够在电池供电的情况下长时间工作。

六、结论与展望

(一)结论

本文设计了一种基于STM32F103C8T6单片机的智慧病房监测系统,通过集成多种传感器模块和通信模块,实现了对病房环境和病人生理参数的实时监测与远程监控。系统采用MQTT协议与阿里云物联网平台进行数据交互,手机端APP可以实时查看监控数据并接收报警提示。通过系统测试与验证,表明该系统具有实时监测、远程监控、报警提示等功能,且性能稳定、功耗较低,能够满足智慧病房监测系统的实际需求。

(二)展望

虽然本系统已经实现了基本的功能需求,但仍存在一些不足之处和可以改进的地方。未来可以从以下几个方面进行完善和优化:

  1. 增加传感器种类:可以添加声音传感器、空气质量传感器等,以更全面地监测病房环境。
  2. 优化数据处理算法:采用更先进的数据处理算法,提高数据采集的准确性和可靠性。
  3. 增强系统安全性:加强数据传输的安全性,如采用加密通信协议等,确保病人数据的安全性和隐私性。
  4. 实现更多智能控制功能:如根据病房环境和病人生理参数自动调节病房设备(如空调、灯光等),提高病房的智能化水平。
  5. 扩展手机端APP功能:如添加历史数据查询、趋势分析等功能,为医护人员提供更全面的数据支持。
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐