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;有以下几种方式&…