基于51單片機WIFI心率計脈搏體溫測量儀APP設計

1 系統功能介紹

本設計基于 STC89C52 單片機,結合 脈搏傳感器、溫度傳感器 DS18B20、LCD1602 液晶顯示器、WiFi 模塊 等外設,構建了一個 WiFi 心率計脈搏體溫測量儀 APP 系統。系統能夠實現對人體心率與體溫的實時采集、處理、顯示和遠程上傳,既可作為個人健康監測設備,也可擴展應用于家庭健康管理和遠程醫療監護場景。

系統主要功能如下:

  1. LCD 實時顯示:LCD1602 的第一行顯示系統設計信息,第二行實時顯示心率和溫度數據。
  2. 心率測量:用戶將手指輕放在脈搏傳感器上,單片機采集傳感器的脈搏波動信號并計算心率。
  3. 體溫測量:系統通過 DS18B20 溫度傳感器實時獲取人體溫度,并與心率一同顯示在 LCD1602 上。
  4. 數據上傳:系統通過 WiFi 模塊(ESP8266)將心率與體溫數據實時傳輸至手機 APP,實現遠程監控與數據存儲。

該系統不僅實現了心率與體溫的基本測量,還通過無線網絡擴展了遠程應用的可能性,具備良好的實用性與拓展性。


2 系統電路設計

整個系統由 單片機最小系統電路、脈搏傳感器電路、溫度傳感器 DS18B20 電路、LCD1602 顯示電路、WiFi 模塊電路、電源電路 等組成。

2.1 單片機最小系統電路

  • 核心控制器:STC89C52 單片機作為系統的中央處理單元,負責心率信號采集、溫度測量、數據處理、LCD 驅動以及 WiFi 數據上傳。

  • 最小系統:包括復位電路、時鐘電路和電源電路。

    • 時鐘一般采用 11.0592 MHz 晶振,保證串口通信的波特率精度。
    • 復位電路由上拉電阻和電容構成,保證上電復位可靠性。
  • I/O 資源分配

    • 定時器和外部中斷用于心率信號采集;
    • 單總線接口用于溫度傳感器 DS18B20;
    • P0/P2 口控制 LCD1602;
    • 串口 UART 控制 WiFi 模塊。

2.2 脈搏傳感器電路

  • 工作原理:脈搏傳感器利用光電容積脈搏波原理,檢測手指血液流量變化。心臟收縮和舒張時,指尖血液容量變化,引起透射光或反射光變化,進而產生與脈搏同步的波動信號。
  • 信號采集:傳感器輸出模擬電壓信號,經放大和濾波后送入單片機的外部中斷口。
  • 作用:每次檢測到脈搏信號的有效上升沿/下降沿,單片機計數,從而計算心率。

2.3 溫度傳感器 DS18B20 電路

  • 傳感器類型:DS18B20 為數字溫度傳感器,采用單總線協議。
  • 優點:測溫范圍寬(-55℃~~+125℃)、分辨率可選(9~~12 位)、無需外接 ADC。
  • 接口方式:單線接口連接至單片機 I/O 口,單片機通過時序控制獲取溫度數據。

2.4 LCD1602 顯示電路

  • 顯示原理:LCD1602 為字符型液晶,可顯示 2 行,每行 16 個字符。

  • 功能實現

    • 第一行顯示系統提示信息,如“Heart&Temp”;
    • 第二行實時顯示心率和體溫,例如 “H:075 T:36.5”。

2.5 WiFi 模塊電路

  • 選用模塊:ESP8266 WiFi 模塊,通過串口通信與單片機連接。
  • 作用:負責將心率與體溫數據上傳至手機 APP。
  • 通信協議:常用 AT 指令配置,單片機通過 UART 發送數據,模塊再將數據通過 TCP/UDP 上傳至服務器或 APP。

2.6 電源電路

  • 供電方式:系統采用 5V 電源,部分器件需要 3.3V(如 ESP8266),通過 AMS1117-3.3 穩壓芯片提供穩定電源。
  • 電源指示:使用 LED 指示電路工作狀態。

3 系統程序設計

程序部分采用 模塊化設計,分為:主程序、心率測量程序、溫度測量程序、LCD 顯示程序、WiFi 通信程序 等。

3.1 主程序框架

#include <reg52.h>
#include "lcd1602.h"
#include "ds18b20.h"
#include "uart.h"
#include "pulse.h"unsigned int heartRate = 0;
float temperature = 0;void main()
{LCD_Init();UART_Init();DS18B20_Init();Pulse_Init();LCD_ShowString(0,0,"Heart&Temp Sys");while(1){heartRate = Get_HeartRate();temperature = DS18B20_ReadTemp();LCD_ShowString(1,0,"H:");LCD_ShowNum(1,2,heartRate,3);LCD_ShowString(1,6,"T:");LCD_ShowFloat(1,8,temperature,4,1);UART_SendData(heartRate, temperature);}
}

3.2 心率測量程序

心率通過外部中斷捕獲脈搏信號波形,根據一定時間內的脈沖數計算。

unsigned int pulseCount = 0;
unsigned int heartRate = 0;void Pulse_Init(void)
{IT0 = 1;    // 外部中斷0下降沿觸發EX0 = 1;    // 開啟外部中斷0EA = 1;     // 總中斷開
}void External_Int0(void) interrupt 0
{pulseCount++;
}unsigned int Get_HeartRate(void)
{unsigned int bpm = 0;// 假設1分鐘統計脈沖數, 實際可縮短時間窗口再折算bpm = pulseCount * 6;  // 10秒統計后乘以6pulseCount = 0;return bpm;
}

3.3 溫度測量程序(DS18B20)

通過單總線協議與 DS18B20 通信,讀取溫度并轉換為浮點數。

float DS18B20_ReadTemp(void)
{int temp;float t;DS18B20_Start();DS18B20_WriteByte(0xCC); // 跳過ROMDS18B20_WriteByte(0x44); // 啟動溫度轉換DelayMs(750); // 等待轉換完成DS18B20_Start();DS18B20_WriteByte(0xCC);DS18B20_WriteByte(0xBE); // 讀溫度寄存器temp = DS18B20_ReadByte();temp |= DS18B20_ReadByte() << 8;t = temp * 0.0625; // DS18B20 分辨率 0.0625℃return t;
}

3.4 LCD 顯示程序

void LCD_ShowFloat(unsigned char x, unsigned char y, float num, unsigned char len, unsigned char point)
{unsigned int temp = (unsigned int)(num * 10);LCD_ShowNum(x,y,temp/10,len-point);LCD_ShowString(x,y+len-point,".");LCD_ShowNum(x,y+len-point+1,temp%10,point);
}

3.5 WiFi 通信程序

單片機通過 UART 向 ESP8266 發送心率和溫度數據。

void UART_Init(void)
{SCON = 0x50;  // 串口模式1TMOD |= 0x20; // 定時器1方式2TH1 = 0xFD;   // 波特率9600TL1 = 0xFD;TR1 = 1;
}void UART_SendByte(unsigned char dat)
{SBUF = dat;while(!TI);TI = 0;
}void UART_SendData(unsigned int hr, float temp)
{char buffer[20];sprintf(buffer,"HR:%d T:%.1f\n",hr,temp);for(unsigned char i=0; buffer[i] != '\0'; i++){UART_SendByte(buffer[i]);}
}

4 總結

本設計基于 STC89C52 單片機,實現了一個具備 心率與體溫測量、LCD 顯示和 WiFi 上傳 功能的完整系統。其特點如下:

  1. 實時監測:能夠同時獲取心率和體溫,適合日常健康管理。
  2. 數據可視化:LCD1602 直觀顯示當前心率和溫度。
  3. 遠程傳輸:通過 ESP8266 模塊實現數據無線上傳,支持手機 APP 端查看。
  4. 操作簡便:使用者僅需將手指放在傳感器上即可完成心率和溫度采集。
  5. 可擴展性強:后續可增加血氧、血壓等傳感器,進一步擴展健康監測范圍。

該系統在健康檢測與遠程醫療方面具有一定應用價值,同時也為學習 傳感器應用、單片機控制、串口通信、無線數據傳輸 等技術提供了實踐平臺。

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

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

相關文章

從零到一構建企業級GraphRAG系統:GraphRag.Net深度技術解析

當RAG遇上知識圖譜&#xff0c;會碰撞出怎樣的火花&#xff1f;本文將帶你深入探索GraphRag.Net這個開源項目&#xff0c;看看如何用.NET技術棧打造一個企業級的圖譜增強檢索系統。 引言&#xff1a;為什么我們需要GraphRAG&#xff1f; 在AI大模型時代&#xff0c;RAG&#x…

前端Element-plus的選擇器 el-select 清空內容時,后端對應的更新方式,支持更新為null

1、所屬小類選擇器 el-select 清空內容時&#xff0c;前端通過事件設置為空字符串clear"handleSmallCategoryClear"【所屬小類選擇器】只能選擇&#xff0c;不能輸入信息<script setup lang"ts" name"QualityFileInfoDialog"> ...... // 所…

【筆記】和各大AI大語言模型合作寫項目—slirp.go

最近和各大AI大語言模型一起合作寫了個小項目&#xff0c;讓大家看看AI離取代人類還差多遠。 開發大家都在一個共享環境下&#xff0c;連docker都不能運行&#xff0c;rootless也沒有。不過好在linux環境&#xff0c;弄個proot能apt或者yum install自由&#xff0c;但是諸如pod…

國標:開展環境衛生滿意度調查

隨著社會的進步和人們生活水平的提高&#xff0c;&#xff08;滿意度調查&#xff09;&#xff08;問卷調查&#xff09;&#xff08;第三方市場咨詢公司&#xff09;對生活品質的追求以及對環境保護的重視已經成為了當下社會的主旋律。在這樣的背景下&#xff0c;環境衛生問題…

【辦公類-54-08】20250902 2025學年第一學期班級點名冊模版(雙休國定假涂成灰色、修改標題和頁眉,批量導出PDF)根據新Excel模版,標題增加園區、空姓名行填充灰色

背景需求: 之前做了優化過的點名冊 【辦公類-54-07】20250901 2025學年第一學期班級點名冊模版(雙休國定假涂成灰色、修改標題和頁眉,批量導出PDF)-CSDN博客文章瀏覽閱讀984次,點贊27次,收藏29次。【辦公類-54-07】20250901 202學年第一學期班級點名冊模版(雙休國定假…

【C++知識雜記1】智能指針及其分類

智能指針&#xff08;smart pointer&#xff09; 是 C11 引入的一類 模板類&#xff0c;用來封裝原始指針&#xff0c;自動管理堆內存的生命周期&#xff0c;避免出現 內存泄漏 和 懸空指針&#xff08;野指針&#xff09; 的問題。 當智能指針對象離開作用域時&#xff0c;它會…

vue從入門到精通:搭建第一個vue項目

目錄 Vue是什么 一、nodejs安裝 二、安裝Vue CLI 三、創建Vue項目 四、配置vue.config.js文件 五、創建第一個應用hello word Vue是什么 Vue是一款?用于構建用戶界面的 JavaScript 漸進式架構?既可作為庫(僅關注視圖層)也可擴展為框架,支持從靜態頁面到復雜單頁應用…

C# Queue源碼分析

Queue<T> 是 .NET 中實現隊列&#xff08;先進先出&#xff09;的一種泛型集合類。它基于數組實現&#xff0c;支持動態擴容、線程不安全&#xff0c;適用于大多數需要隊列結構的場景。一、類結構與字段說明 public class Queue<T> : IEnumerable<T>, IColle…

微服務之注冊中心與ShardingSphere關于分庫分表的那些事

小伙伴們&#xff0c;你們好呀&#xff01;我是老寇&#xff01;跟我一起學習注冊中心與ShardingSphere怎么一起使用 使用 nacos-shardingsphere例子&#xff0c;請點擊我 注意&#xff1a;需要自己提前創建數據庫和表 create database kcloud_platform_test;DROP TABLE IF…

python遇到異常流程

在 Python 中&#xff0c;程序遇到異常時的退出行為取決于是否對異常進行了捕獲和處理&#xff1a;未捕獲的異常&#xff1a; 如果異常發生后沒有被 try-except 語句捕獲&#xff0c;程序會立即終止&#xff0c;并返回一個非零的退出碼&#xff08;通常是 1&#xff09;&#x…

【開源大模型和閉源大模型分別有哪些?兩者的對比?部署私有化模型的必要性有哪些?】

以下是關于開源與閉源大模型的詳細對比及私有化部署必要性的分析&#xff0c;結合最新行業動態和技術趨勢&#xff1a;一、開源 vs 閉源大模型代表列表 1. 開源大模型&#xff08;2024年主流&#xff09;模型名稱參數量機構特點LLaMA-38B-70BMeta商業使用需授權&#xff0c;多語…

SpringBoot--JWT

一、JWT 的簡單了解1. 什么是 JWT&#xff1f;JWT&#xff08;JSON Web Token&#xff09;是一種開放標準&#xff08;RFC 7519&#xff09;&#xff0c;用于在 各方之間安全地傳輸信息。它基于 JSON 格式&#xff0c;信息通過 數字簽名 的方式保證不可篡改&#xff0c;常用于 …

OpenTelemetry、Jaeger 與 Zipkin:分布式鏈路追蹤方案對比與實踐

OpenTelemetry、Jaeger 與 Zipkin&#xff1a;分布式鏈路追蹤方案對比與實踐 問題背景介紹 隨著微服務架構的普及&#xff0c;服務之間調用鏈路變得異常復雜&#xff0c;單一服務故障或性能瓶頸往往牽一發動全身。分布式鏈路追蹤&#xff08;Distributed Tracing&#xff09;能…

云原生俱樂部-RH124知識點總結(1)

RH124內容不是很多&#xff0c;但是也不知道多少能夠寫完&#xff0c;細節性的東西不會太多&#xff0c;但是確保每個都能夠有印象能理解。本來是打算一篇文章寫完的&#xff0c;但最后還是決定寫一個系列。至于RH124和RH134的內容為什么放在了k8s系列的后面&#xff0c;那只是…

Redis面試精講 Day 25:Redis實現分布式Session與購物車

【Redis面試精講 Day 25】Redis實現分布式Session與購物車 在高并發、多節點的現代Web應用架構中&#xff0c;傳統的本地Session存儲方式已無法滿足分布式系統的需求。如何實現跨服務、高可用、低延遲的用戶狀態管理&#xff0c;成為后端開發和面試中的高頻考點。今天是“Redi…

本地文件上傳到gitee倉庫的詳細步驟

本地文件上傳到gitee倉庫的詳細步驟 &#x1f530; 一、前期準備 注冊 Gitee 賬號 訪問 Gitee 官網完成注冊并登錄。 網址&#xff1a;https://gitee.com/ 安裝 Git 下載 Git 官方客戶端并完成安裝。 下載網址&#xff1a;https://git-scm.com/downloads 配置 Git 全局信息&…

7 索引的監控

1. 查看索引的監控狀態 GET /_cat/indices/log2?v&formatjson[{"health" : "yellow","status" : "open","index" : "log2","uuid" : "1OnzbVbJRn2grc5k198LlA","pri" : "…

【秋招筆試】2025.08.10米哈游秋招機考真題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍在線刷題 bishipass.com 米哈游 題目一:圖書館整理計劃 1??:貪心策略從左到右固定每個位置的最優元素 2??:使用線段樹維護區間最小值信息,支持單點更新和區間查詢 3??:每次選…

恒創科技:日本服務器 ping 不通?從排查到解決的實用指南

玩游戲、做跨境業務時&#xff0c;突然發現日本服務器 ping 不通&#xff0c;簡直能讓人瞬間焦慮 —— 這到底是網絡崩了&#xff0c;還是服務器出問題了?在本文中&#xff0c;我們將探討如何排除日本服務器 ping 請求故障&#xff0c;附帶常見原因及解決辦法。先搞清楚&#…

ThinkPHP的Controller獲取request對象的幾種方式

文章目錄環境在Controller中獲取Request對象構造器注入操作方法注入繼承BaseController助手函數Facade參考環境 Windows 11 專業版XAMPP 8.2.12 PHP 8.2.12VSCode 1.103.0 在Controller中獲取Request對象 要想在Controller中獲取Request對象&#xff0c;有以下幾種方式&…