当前位置: 首页 > news >正文

Arduino UNO采集血压/心率/血氧/体温等数据传输到Blinker云平台 手机APP显示数据

/*

 * 整合版健康监测与智能控制代码(完整功能)

 * 功能:

 *  1. MAX30102(D6/D7)采集血氧(SpO2)

 *  2. MKB0908串口采集心率、血压、体温

 *  3. DHT11(D5)采集温湿度(支持历史数据)

 *  4. 4路继电器控制(D1 - D4)

 *  5. Blinker平台实时数据+历史数据展示

 *  6. 设备状态远程控制与反馈

 */

// 物联网与传感器库

#define BLINKER_WIFI

#include <Blinker.h>

#include <Wire.h>

#include "MAX30105.h"

#include "spo2_algorithm.h"

#include <DHT.h>

// Blinker组件定义(需与APP组件Key完全一致)

// 数据展示组件

BlinkerNumber SPO2("spo2");    // 血氧

BlinkerNumber HR("hr");        // 心率(MKB0908)

BlinkerNumber HUMI("humi");    // 湿度(实时+历史)

BlinkerNumber TEMP("temp");    // 温度(实时+历史)

BlinkerNumber HX("hx");        // 血压高压

BlinkerNumber LX("lx");        // 血压低压

BlinkerNumber TEM("tem");      // 体温

// 继电器控制组件

BlinkerButton MainSwitch("MainSwitch");  // 总控按钮

BlinkerButton Switch1("Switch1");        // 插座1

BlinkerButton Switch2("Switch2");        // 插座2

BlinkerButton Switch3("Switch3");        // 插座3

BlinkerButton Switch4("Switch4");        // 插座4

// MAX30102配置(血氧传感器)

MAX30105 particleSensor;

#define MAX_SAMPLE_RATE 400    // 采样率400Hz

#define MAX_SAMPLE_COUNT 100   // 每次采集100个样本

uint32_t redBuffer[MAX_SAMPLE_COUNT];    // 红光信号缓存

uint32_t irBuffer[MAX_SAMPLE_COUNT];     // 红外信号缓存

int32_t spo2Value = 0;                   // 血氧值(百分比)

int8_t validSPO2 = 0;                    // 血氧有效性标志(0 = 无效,1 = 有效)

// DHT11配置(温湿度传感器)

#define DHT_PIN D5

#define DHT_TYPE DHT11

DHT dht(DHT_PIN, DHT_TYPE);

float humidity = 0.0, temperature = 0.0;  // 湿度(%)、温度(℃)

// MKB0908配置(血压传感器,串口通信)

int SendComm[6] = {0xFD, 0x00, 0x00, 0x00, 0x00, 0x00};  // 发送命令帧

int ReceiveData[6], ReceiveData2[6];

int hx = 0, lx = 0, hr = 0;                // 高压、低压、心率

int tempZhengshu = 0, tempXiaoshu = 0;       // 体温整数/小数部分

float bodyTemp = 0.0;                        // 体温(℃)

// 继电器引脚定义

#define RELAY1_PIN D1

#define RELAY2_PIN D2

#define RELAY3_PIN D3

#define RELAY4_PIN D4

// 网络配置(需用户自行修改)

char auth[] = "e01abface66c";  // Blinker设备密钥(在APP中获取)

char ssid[] = "Xiaomi_419";    // WiFi名称

char pswd[] = "419419419";     // WiFi密码

// 函数前置声明

void updateRelayState(int relayNum = 0);

void collectSpO2Data();

void collectDHTD

相关文章:

  • 【深度学习基础】从感知机到多层神经网络:模型原理、结构与计算过程全解析
  • 计算机系统---TPU(张量处理单元)
  • Java——创建多线程的四种方式
  • 【大模型面试每日一题】Day 22:若训练中发现Loss突然剧烈波动(Spike),可能有哪些原因?如何定位和修复?
  • MySQL之储存引擎和视图
  • C语言:在 Win 10 上,gcc 如何编译 调用 Tcl/Tk 的C程序
  • Hugo安装Stack主题
  • DAY 4 缺失值的处理
  • Spring ioc和Aop
  • 【ROS2】虚拟机使用fishros脚本一键安装humble
  • Codeforces 1017 Div4(ABCDEFG)
  • 翻译:20250518
  • 【Python数据处理系列】输入txt,读取特定字符转换成特定csv数据并输出
  • C# String 格式说明符
  • C++模板进阶使用技巧
  • NY337NY340美光固态颗粒NC010NC012
  • wsl2中Ubuntu22.04配置静态IP地址
  • 基于STM32F103与Marvell88W8686的WIFI无线监控视频传输系统研发(论文)
  • 1.5 MouseDown,MouseUp,LostMouseCapture的先后顺序
  • 三、高级攻击工具与框架
  • 国家主席习近平任免驻外大使
  • 铜川耀州窑遗址内违法矿场存在多年,省市区文物部门多次处罚叫停仍在生产
  • 国家统计局:4月全国规模以上工业增加值同比增长6.1%
  • 中国旅游日|上天当个“显眼包”!体验低空经济的“飞”凡魅力
  • 中国田径巡回赛西安站完赛:男子跳远石雨豪夺冠
  • 杨建全已任天津市委副秘书长、市委市政府信访办主任