# RPi connect ESP32-BLE **Repository Path**: ble-smart-healthcare/rpi-connect-esp32-ble ## Basic Information - **Project Name**: RPi connect ESP32-BLE - **Description**: RPi connects ESP32-BLE which is connected in STM32 and sends datas which get from ESP32 to cloud platforms. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-07-25 - **Last Updated**: 2025-07-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RPi connect ESP32-BLE ## 简介 本项目是基于远程健康监测这应用场景设计的一款智能医疗系统,项目分为了stm32采集终端、树莓派网关、云平台三部分的开发,使用STM32外接血氧传感器(MAX30102)和温湿度传感器(SHT20)来读取血压血氧和温湿度,并外接EPS32-C3蓝牙模块将采集的数据发送给树莓派网关,树莓派再通过MQTT协议将数据推送到云平台,同时云平台可下发指令立即采集数据和操作终端继电器的开关。 ## 框架图 ![输入图片说明](BLE%E6%99%BA%E6%85%A7%E5%8C%BB%E7%96%97%E6%A1%86%E6%9E%B6%E5%9B%BE.png) ## 具体实现 #### STM32单片机开发 移植FreeRTOS,初始化GPIO、UART并创建三个任务: 采集任务: 1. 通过 GPIO 模拟 I2C 来读取血氧传感器(MAX30102)和温湿度传感器(SHT20)来读取血压血氧和温湿度,并将其打印到OLED显示屏上。 2. 通过串口发送AT命令开启 ESP-C3 蓝牙模块的广播模式、SPP模式。 3. 控制继电器。 定时任务: 1. 开启软件定时器,到达指定时间间隔发送二值信号量给采集任务通知采集。 解析任务: 1. 解析树莓派网关发送过来的指令,用事件组通知采集任务进行相关的操作。 #### 树莓派网关开发 1. 通过命令行参数选择目标从机和配置文件。 2. 解析配置文件中日志系统的等级、大小、路径及MQTT连接参数; 3. 连接目标从机(ESP-C3),开启notify模式,并设置回调函数,对目标从机的characteristic读时触发上报信号;创建线程轮询检测是否响应转发信号,对目标从机的characteristic进行写, 4. 创建线程使用mqtt协议连接云平台,当响应上报信号时,上报接收到的数据;当接收到云平台下发的指令时,触发转发信号;支持断开断线重连。 ## 流程图 见上面的pdf。 ## 使用说明 1. 将stm32外接 2. xxxx 3. xxxx