基于STM32單片機的心率血氧監測系統設計(STM32代碼編寫+手機APP設計+PCB設計+Proteus仿真)

系列文章目錄


文章目錄

  • 系列文章目錄
  • 前言
  • 1 資料獲取與演示視頻
    • 1.1 資料介紹
    • 1.2 資料獲取
    • 1.3 演示視頻
  • 2 系統框架
  • 3 硬件
    • 3.1 主控制器
    • 3.2 顯示屏
    • 3.3 WIFI模塊
    • 3.4心率血氧傳感器
  • 4 設計PCB
    • 4.1 安裝下載立創EDA專業版
    • 4.2 畫原理圖
    • 4.4 使用嘉立創下單助手進行下單,打板。
    • 4.5 實物圖
  • 5 軟件設計
    • 5.1 編寫STM32單片機代碼
    • 5.2 設計手機客戶端
  • 6 proteus仿真
  • 7 實驗測試
    • 7.1 準備
    • 7.2 燒錄軟件
    • 7.3 實驗驗證
  • 總結


前言

本文設計出一款基于STM32單片機的心率血氧值監測系統。
主要功能如下:

1、檢測人體的心率和血氧值。

2、按鍵調節閾值,超出閾值聲光報警。

3、閾值保存到AT24C02,掉電不丟失,實現數據永久化存儲。

4、顯示屏實時顯示數據。

5、通過ESP8266連接 機智云平臺,實現單片機-手機APP交互。


1 資料獲取與演示視頻

1.1 資料介紹

在這里插入圖片描述

1.2 資料獲取

完整資料獲得鏈接:
咸魚:【勝磊電子】基于STM32單片機的心率血氧監測系統設計(STM32代碼編寫+手機APP設計+PCB設計+Proteus仿真)

淘寶:【勝磊電子】基于STM32單片機的心率血氧監測系統設計(STM32代碼編寫+手機APP設計+PCB設計+Proteus仿真)

1.3 演示視頻

嗶哩嗶哩:【勝磊電子】基于STM32單片機的心率血氧監測系統設計(STM32代碼編寫+手機APP設計+PCB設計+Proteus仿真)

2 系統框架

系統框架如圖所示:
在這里插入圖片描述

單片機整體框圖:

在這里插入圖片描述


3 硬件

3.1 主控制器

主控制器選擇STM32F103C8T6,在淘寶上買的,如下圖所示:
在這里插入圖片描述
STM32F103C8T6 是意法半導體(ST)推出的一款基于 ARM Cortex-M3 內核的 32 位微控制器,以下從其性能參數、功能特性、應用領域等方面進行介紹:

主頻
最高可達 72MHz,具備 1.25DMIPS/MHz 的運算能力,能夠快速處理各種指令和任務。
內核處理器:采用 ARM Cortex-M3 內核,具有高性能、低功耗的特點,支持 Thumb-2 指令集,能夠高效地執行各種指令。

存儲
擁有 64KB 的 Flash 存儲器,用于存儲程序代碼和常量數據;20KB 的 SRAM,用于存儲運行時的變量和臨時數據。

豐富的外設接口
USART:集成了 3 個 USART(通用同步異步收發器)接口
SPI:2 個 SPI(串行外設接口)接口
I2C:2 個 I2C(Inter-Integrated Circuit)接口
USB: 1 個 USB 2.0 全速接口

定時器
包含 7 個定時器,其中包括 4 路 PWM 輸出,可用于脈沖寬度調制、輸入捕獲、輸出比較、正交編碼器接口等功能,廣泛應用于電機控制、脈沖信號生成等領域。

ADC(模數轉換器)
內置 2 個 12 位 ADC,轉換時間僅為 1μs,具有 10 個通道,可對多路模擬信號進行快速采樣轉換,適用于各種需要采集模擬信號的場景,如傳感器數據采集等。

時鐘系統
內置 4-16MHz 的高速內部時鐘(HSI)和 32KHz 的低速內部時鐘(LSI),也可通過外部晶振提供更高精度的時鐘源,通常包括一個 8MHz 的高速外部時鐘(HSE)和一個 32.768KHz 的低速外部時鐘(LSE),為芯片內部各個模塊提供精確的時鐘信號,確保它們能夠同步工作。

其他功能
集成了看門狗定時器、CRC 計算單元、RTC 實時時鐘、SysTick 定時器、DMA(Direct Memory Access)控制器等,進一步增強了芯片的功能和可靠性。支持 JTAG(Joint Test Action Group)和 SWD(Single Wire Debug)調試接口,方便開發人員連接調試器進行程序調試和下載,提高開發效率。

3.2 顯示屏

使用1.8寸顯示屏,分辨率128*160。如圖,
在這里插入圖片描述
1.8寸彩屏,支持16BIT RGB 65K彩色顯示,顯示色彩豐富

128X160分辨率,顯示清晰

采用SPI串行總線,只需幾個IO即可點亮顯示

帶SD卡槽方便功能擴展

軍工級工藝標準,長期穩定工作

3.3 WIFI模塊

WIFI模塊使用ESP8266,如圖,
在這里插入圖片描述
ESP01S 是一款基于樂鑫 ESP8266EX 芯片的低成本、低功耗 Wi-Fi 模塊,專為物聯網(IoT)和嵌入式系統設計。
以下是其詳細介紹:

核心架構與性能
處理器:采用 32 位 Tensilica L106 RISC 處理器,主頻支持 80MHz 或 160MHz,集成 TCP/IP 協議棧,可直接運行用戶程序。
內存配置:
閃存(Flash):提供 1MB 或 4MB 兩種版本(具體型號差異),用于存儲固件和用戶代碼。
RAM:64KB,支持程序運行和數據緩存。
通信協議:支持 802.11b/g/n 標準,數據傳輸速率最高 4Mbps,覆蓋 2.4GHz 頻段,支持 STA、AP、STA+AP 三種工作模式。
硬件資源與接口
引腳定義:
供電:3.0V~3.6V(推薦 3.3V),傳輸電流 170mA,接收電流 56mA。
通信:UART 接口(TXD/RXD),支持 AT 指令交互,波特率默認 115200bps。
GPIO:提供 2 個可編程引腳(GPIO0、GPIO2),可用于控制外設(如 LED、繼電器)或傳感器輸入。
其他:CH_PD(使能引腳,高電平有效)、RST(復位引腳)。
擴展能力:
PWM:部分引腳支持 PWM 輸出,用于電機調速或燈光控制。
I2C/SPI:需通過外部擴展芯片(如 PCF8574、MCP23017)實現。
低功耗特性
工作模式:
活躍模式:傳輸時電流約 170mA,接收時 56mA。
睡眠模式:
輕睡眠:電流約 10mA,保留網絡連接。
深度睡眠:電流低至 20μA,適用于電池供電設備。
喚醒方式:支持定時喚醒、GPIO 觸發喚醒或 UART 數據喚醒。
應用場景
智能家居:通過 Wi-Fi 連接控制燈光、空調、門鎖等設備。
環境監測:采集溫濕度、空氣質量等數據并上傳至云端。
工業自動化:遠程監控設備狀態,實現無線數據傳輸。
智能農業:監測土壤濕度、光照等參數,優化種植管理。

3.4心率血氧傳感器

心率血氧傳感器使用MAX30102,如圖:
在這里插入圖片描述
產品介紹:
MAX30102是一個集成的脈搏血氧儀和監測儀生物傳感器的模塊。它集成了一個紅光LED和一個紅外光LED、光電檢測器、光器件,以及環境光抑制的低噪聲電子電路。MAX30102采用一個1.8V電源和一個獨立的5.0V用于內部LED燈源。應用于可穿戴設備進行心率和血氧采集檢測,佩戴于手指、耳垂和手腕等處。標準和I2X兼容的通信接口可以將采集到的數值傳輸給單片機進行心率和血氧計算。此外,該芯片還可通過軟件關斷模塊,待機電流接近為0,實現電源始終維持供電狀態。
工作原理:
1.光溶積法:利用人體組織在血管搏動時造成透光率不同來進行脈搏和血氧飽和度測量的
2.光源:采用對動脈血中氧合血紅蛋白(Hb02)和血紅蛋白.(Hb)有選擇性的特定波長的發光二極管
3.透光率轉化為電信號動脈搏動充血容積化導到光的透光率發生改變,此時由光電變換接收經人體組織反射光線,轉變為電信號并將其放大和輸出。


4 設計PCB

直接使用上述模塊,線路非常雜亂,因此,我們需要自己設計一塊PCB底板。開發工具使用立創EDA。

相關資料已經放在本文第一節。

4.1 安裝下載立創EDA專業版

4.2 畫原理圖

在這里插入圖片描述
4.3 擺放元器件,設計規則,淚滴,鋪銅。
在這里插入圖片描述

4.4 使用嘉立創下單助手進行下單,打板。

4.5 實物圖

實物如圖:
在這里插入圖片描述


5 軟件設計

5.1 編寫STM32單片機代碼

工程目錄如圖所示:
在這里插入圖片描述

5.2 設計手機客戶端

在這里插入圖片描述


6 proteus仿真

本系統使用proteus8.17進行仿真測試。
在這里插入圖片描述
完整視頻請看本文1.3 演示視頻


7 實驗測試

7.1 準備

1、準備好硬件實物,接好傳感器和其他外設。
2、將TFT LCD插在底板響應位置。
3、ESP8266插在相應位置。
4、在手機端安裝機智云APP。
5、上電

7.2 燒錄軟件

下載代碼需要提前安裝好MDK環境,準備好SWD下載器,在MDK中進行“LOAD”下載。

7.3 實驗驗證

1、 proteus仿真測試

2、監測心率和血氧測試

3、按鍵調節閾值報警測試

4、AT24C02永久存儲測試

5、手機客戶端測試

演示視頻:

基于STM32單片機的心率血氧值監測系統(STM32代碼編寫+手機APP設計+PCB設計+Proteus仿真)


總結

以上,就是基于STM32單片機的心率血氧監測系統設計,包含實物,仿真、PCB,手機APP等,并對每個環節進行了詳細測試。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88078.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88078.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88078.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

main(int argc,char **agrv)的含義

今天和大家討論一個常見的但是不容易深入了解的知識點。那就是 main 函數聲明中使用到的 argc 和 argv 的含義。通常我們寫主函數的時候一般都是直接使用int main() 或者 void main() 來聲明 main 函數。但是你知道嗎?在c89/c99的語言標準中,main函數的聲…

如何簡單實現發版不影響客戶使用?nginx負載

nginx負載發版不影響客戶使用 1.需要二臺服務器 2.二臺服務器均是正式環境配置 3.服務器Nginx配置修改 發版順序:先在服務器2發版,發布成功后,再改服務器Nginx配置,重新加載nginx;然后在服務器再發版,發布成…

qt筆記(1)——Qtablewidget使用

1.基礎使用方法 (略) 2.坑和注意點 2.1 設置一個單元格的編輯屬性 在代碼中,想要修改一個單元格的編輯屬性,需要對這個item的flags進行設置;注意對一個tablewidget的一個item成員進行設置后,進行一次編…

字符串的模糊匹配方法介紹

字符串的模糊匹配方法介紹 目錄字符串的模糊匹配方法介紹一、編輯距離(Levenshtein Distance)復雜度分析二、Jaro-Winkler 距離復雜度分析三、最長公共子序列(LCS)復雜度分析四、模糊搜索(Fuzzy Search)復雜…

ActiveMQ在Spring Boot中的詳細使用指南

?? 目錄 ?? ActiveMQ簡介 什么是ActiveMQ? 核心概念 ??? 基礎架構組件 ?? 重要概念解釋 ActiveMQ vs 其他消息中間件 ?? 環境搭建 1. ActiveMQ服務端安裝 Docker方式(推薦初學者) 手動安裝方式 2. 驗證安裝 訪問Web管理界面 連接參數 測試連接 ?…

二元一次方程

前言 最近剛學二元一次方程,想寫一篇專欄熟悉一下本文寫給初一的同學看,學過的就劃了吧二元一次方程 兩個未知數最高項次數為 111 次為整式方程二元一次方程的解不唯一,但是二元一次方程可以用一個未知數來表達另一個未知數eg:eg:eg: xy1x y…

AI編程的未來是智能體原生開發?

目錄 前言 一、從“串行”到“并行”:什么是智能體原生開發? 1.1 傳統模式(串行思維) 1.2 智能體原生模式(并行思維) 二、程序員的新角色:從代碼手藝人到系統思想家 三、軟件開發的終局&a…

【牛客刷題】小紅的與運算

文章目錄 一、題目介紹1.1 題目描述1.2 輸入描述1.3 輸出描述1.4 示例二、 解題思路2.1 核心算法設計2.2 性能優化關鍵2.3 算法流程圖三、解法實現3.1 解法一:基礎實現3.1.1 初級版本分析3.2 解法二:優化版本(推薦)3.2.1 優化版本分析四、總結與拓展4.1 關鍵優化技術4.2 算…

spring中 方法上@Transation實現原理

Spring中Transactional注解方法實現原理Spring的Transactional注解在方法級別實現事務管理的原理主要基于動態代理和攔截器機制,以下是其核心實現流程:1. 代理創建階段當Spring容器啟動時,會為帶有Transactional注解的類創建代理對象&#xf…

qt-C++語法筆記之Stretch與Spacer的關系分析

qt-C語法筆記之Stretch與Spacer的關系分析 code review! 文章目錄qt-C語法筆記之Stretch與Spacer的關系分析1. Stretch(拉伸因子)2. Horizontal Spacer 和 Vertical Spacer3. Stretch 和 Spacer 的關系4. 實際應用中的選擇5. 注意事項6. 代碼與 Qt Desig…

Qwen3技術綜述

1. 引入 2025年5月,qwen推出了旗艦模型(flagship model)Qwen3-235B-A22B。并以Apache 2.0版權發布(可自由商業使用,修改代碼和商用要包含原始版權)。本文對其技術報告中提到的數據處理技術與模型結構進行綜…

[特殊字符] Excel 讀取收件人 + Outlook 批量發送帶附件郵件 —— Python 自動化實戰

許多公司定期需要將不同部門或客戶的報告發送給指定人員。手動操作容易出錯、耗時且繁瑣。今天這篇文章教你如何利用 Python 實現: 🧩 從 Excel 中讀取“收件人 抄送人 附件文件路徑”; 📤 使用 win32com.client 調用 Outlook …

多模態大語言模型arxiv論文略讀(152)

VidComposition: Can MLLMs Analyze Compositions in Compiled Videos? ?? 論文標題:VidComposition: Can MLLMs Analyze Compositions in Compiled Videos? ?? 論文作者:Yunlong Tang, Junjia Guo, Hang Hua, Susan Liang, Mingqian Feng, Xinya…

基于AR和SLAM技術的商場智能導視系統技術原理詳解

本文面對室內定位算法工程師、智慧商場系統開發者、對VR/AR應用開發感興趣的技術人員,解決如何通過SLAMAR技術破解大型商場室內導航的空間認知壁壘,實現沉浸式導覽,本文提供完整技術方案與代碼實現。 如需獲取商場智能導視系統解決方案請前往…

Debezium日常分享系列之:認識Debezium Operator

Debezium日常分享系列之:認識Debezium Operator什么是Debezium OperatorDebezium Operator 的工作原理Debezium Operator 的優點Debezium Operator 使用場景Debezium Operator 的關鍵組件部署Debezium OperatorDebezium Operator 的使用什么是Debezium Operator De…

POSIX信號量,環形隊列

是一種進程間或線程間同步機制,用于控制多個線程/進程對共享資源的訪問,避免并發沖突。可以看作是一個計數器,通過對計數器的操作(PV操作)實現同步P操作(原子性):--,將信…

Python Day6

浙大疏錦行 Python Day6 內容: 描述性統計(可視化分析)單特征可視化(連續、離散)特征與標簽可視化特征與特征可視化 代碼: # TODO: 描述性統計 import pandas as pd import numpy as np import seaborn…

ESP32與樹莓派C++、Rust開發實戰

C++語言在ESP32、樹莓派實例 以下是關于C++語言在ESP32、樹莓派等硬件設備上的開發實例匯總,涵蓋常見應用場景和代碼示例。 ESP32開發實例 LED控制(GPIO操作) 使用ESP32的GPIO控制LED燈,示例代碼基于Arduino框架: #include <Arduino.h> const int ledPin = 2; …

Jedis 原生之道:Redis 命令 Java 實現指南(一)

Hi~&#xff01;這里是奮斗的明志&#xff0c;很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~~ &#x1f331;&#x1f331;個人主頁&#xff1a;奮斗的明志 &#x1f331;&#x1f331;所屬專欄&#xff1a;Redis &#x1f4da;本系列文章為個人學習筆…

飛算 JavaAI 開發助手:深度學習驅動下的 Java 全鏈路智能開發新范式

飛算 JavaAI 開發助手&#xff1a;深度學習驅動下的 Java 全鏈路智能開發新范式 文章目錄飛算 JavaAI 開發助手&#xff1a;深度學習驅動下的 Java 全鏈路智能開發新范式前言飛算 JavaAI IDEA插件下載、注冊、使用智能引導操作流程Java Chat智能工作流程操作流程智能問答操作流…