STM32开发板+机智云IoT+智能远程健康监护仪
1 总体框架
2 硬件设计
2.3 3 红外非接触温度传感器
某些晶体可以因为温度变化而引起晶体表面电荷, 辐射红外线。 红外非接触传感器的工作原理为探测物体表面红外辐射能量, 并将其转变为易于测量的电信号或其他形式的量。 MLX90614 模组集成了用于探测目标温度和环境温度的热电偶 MLX81101 和用于处理热电偶输出模拟信号的专用集成芯片 MLX90302 , 由迈来芯公司研发和生产。
3 软件设计
3.1 用于配置阈值和选择发送数据的按键扫描算法
由于本监护仪设计的循环流程运行一次所需时间为 3 ~ 4 s , 因此通常的在主函数中的按键扫描算法无法精确地识别到测试者按键操作, 故采用了外部中断嵌套定时器中断扫描按键的方法来检测测试者的按键动作。 该方法能极大地减少用户进行单片机配置时所需要的按键数目, 降低产品成本, 同时提高了单片机运行程序的效率, 提高硬件资源的使用率。
具体的按键扫描算法思想如下: 测试者按下配置按键, 单片机扫描到边沿信号, 程序进入设置了打开定时器的外部中断服务函数, 单片机处于扫描按键状态, 测试者此时可进行各种生理参数的阈值配置( 当阈值大于或小于测试者配置的数值时, 单片机会实时响应并提醒测试者) , 或者选择关闭定时器的中断开关, 从而使单片机退出配置模式, 按键算法流程如图 4 所示。
3.2 2 心率血氧算法选择分析
从 MAX30102 中获取的数据信号为原始信号, 需经过算法处理才能得到测试者的心率值与血氧值。 对于从该模块采集出来的数据信号进行处理的方法, 常用的有两种: 一种是时域分析, 即算出脉搏数据信号( PPG) 的平均波峰距, 再用一分钟除以这个波峰距即可得到心率值; 另一种是通过对 PPG 信号进行 FFT 变换得到频域中脉搏波信号的频段, 再将这个频率值乘以一分钟得到心率值。 首先是第二种方法, 经过了在 STM32VET6 使用FFT ( 快速傅里叶变换) 算法对 PPG 信号的处理后, 发现这种方法计算心率值存在时间和精度相矛盾的问题, 由以下公式可得出:
heartrate=60×Samples_per_second×s2_max_index×FFT_N
( 5 )其中, Samples_per_second 为每秒从 MAX30102 中采集的红 外 光 样 本 数 量 , s2_max_index × FFT_N 为 脉 搏 信 号 中交流成分信号的频率, FFT_N 为快速傅里叶变换的点数长度。 若 Samples_per_second 设置为 100 , FFT_N 设置为1 024 , 从 FFT 填满数据到计算出心率值需要花 费 5 s , 但得到的各心率值间隔为 3 。 从监测测试者的心率的实时性和准确性来看, 这都是没有参考价值的。 若提高FFT 的点数长度, 虽然能提高测试心率值的精度, 但这将大大增加了监测出心率的时间, 同时加大了微控单元的负担。 本文设计心率算法使用的是第一种, 计算心率血氧的算法流程如图 5 所示。
3.3 3 机智云物联网平台 demoapp 的移植与调试
从下位机监护仪采集的测试者生理参数( 如:心率、血氧和体温) 在 LCD 模块实时显示, 同时, 还能将监护仪进行联网后在手机客户端和官方的网页界面监测到这 些生理参数。 物联网平台选择的是机智云, 而联网设备选择的是乐鑫的esp8266 。
ESP8266 广泛应用于各种物联网智能硬件的开发, 如: 传感器网络、智能家居设计和无线医疗电子设备等。其常用的固件 AT 指令作为微控单元和 WiFi 模组之间配置功能, 连接与通信的底层指令。 相应地, 机智云物联网开发平台使用 GAgent 固件作为其与WiFi 模组的桥梁。
在 MCU 代码开发方面, 机智云有官方的代码自动生成工具, 该工具帮助开发者完成了 MCU与 WiFi 模组通信连接的底层协议工作, 适用于独立 MCU 方案和 SoC 方案, 使开发者更专注于软硬件的功能开发。机智云数据点设置如表1所示, 云端网页生理参数远程监测如图6所示, 记录了测试者某天21时一段时间内生理参数随时间变化情况。
4 测试验证
为了测试验证本次设计的监护仪的准确性, 以同一测试者 10 个不同时间点的生理参数作为测试样本, 每个时间点分别用参考监护仪和本监护仪进行 5 次采集,最后求平均值。 测试者心率、血氧和体温的测试结果如表 2 所示。
5 结论
智能远程多生理参数健康监护仪为社会上的一些特定人群提供了日常居家健康监护的可行性, 监护仪采用数字集成心率血氧模块等采集人体的心率、血氧和体温等, 通过下位机实时显示数据和波形, 使用独立按键配置阈值提醒和配置联网, 同时可通过云端网页监测记录。 本设计具有操作简单、成本低、便携性好、扩展性丰富、测量较为准确等特点。
STM32开发板+机智云IoT+智能远程健康监护仪相关推荐
- 鸿蒙开发板 Hi3816 Wi-Fi IoT 智能家居套件试用连载 - LiteOS万物互联
HiSpark Wi-Fi IoT 智能家居套件 10.8号休假回来荣获一份豪礼,我感到非常开心.我很荣幸参加电子发烧友举行的HarmonyOS开发板试用活动,获得了鸿蒙OS WiFi lot sma ...
- 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台
国内物联网平台(5) --机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测. ...
- HMI智能串口屏——在STM32开发板上的实战应用及其详解
HMI智能串口屏--在STM32开发板上的实战应用及其详解 一.HMI智能串口屏使用步骤 二.附录 一.HMI智能串口屏使用步骤 安装USART HMI软件 (一般买的串口屏里面,商家送的资料里面都有 ...
- 机智云IoT云平台的边缘AI持续赋能,边缘服务器深度应用
随着5G和物联网发展,其数据爆发式增长,数据重量的问题和光速产生的时延问题对算力带来更高的要求.越来越多的计算.存储.网络.分析和其他资源逐渐向边缘设备转移,为此边缘计算获得了空前关注. 何为边缘计算 ...
- NBIOT 移远BC28模块+stm32开发板例程、教程(打通TCP、COAP协议)
为了开发者能够快速入门BC28的开发,加快开发者的项目进度,开发出此款针对BC28的stm32开发板和完善的发送网络数据的示例程序(TCP协议.COAP协议),程序流程逻辑清楚,注释完善,上手就可以玩 ...
- 基于STM32开发板I²C总线通信协议浅析
基于STM32开发板I²C总线通信协议浅析 一.前言 I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980 ...
- 野火stm32开发板给定一个脉冲程序_STM32开发板哪个好,推荐一款高性价比stm32MP157开发板...
一款能跑Linux的STM32开发板: 一款既可以玩Linux又可以玩单片机的开发板: 一款可同时学习A7和M4的双核异构开发板: 一款支持最新的Linux 5.4.31系统和u-boot 20200 ...
- 直击Huawei Mate 40产线背后的华为云IoT智能制造
摘要:数字孪生?在数字世界找到物理世界的设备! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之华为云IoT智能制造助力工厂数字化转型>,原文作者:启明. Part ...
- 基于STM32开发板CAN总线通信协议浅析
基于STM32开发板CAN总线通信协议浅析 一.前言 控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一 ...
最新文章
- Android TV 悬浮球模拟物理按键
- flink window实例分析
- HDU 4618 - Palindrome Sub-Array(2013MUTC2-1008)(DP)
- SAP Netweaver和Hybris的数据库层
- C# 读写Ini文件
- python isodd奇偶_Python这些位运算的妙用,绝对让你大开眼界
- 【数据库的备份与还原】 .
- Java 将byte转换kb_【Java】把字节数B转化为KB、MB、GB的方法
- 计算机五大逻辑部件数据流,211计算机基础知识综合篇.ppt
- 20191013:快速排序1.1
- Spring AOP实现声明式事务代码分析
- linux软防火墙DDOS,Linux iptables防火墙详解 + 配置抗DDOS***策略实战
- Android基于opencv4.6.0实现人脸识别功能
- java faker_Java 生成测试字符串的库:Java Faker
- primeng dropdown ngmodel 选择项初始化
- angr源码分析——cle.Loader类
- SIMD和SPMD的区别
- 读取excel批量生成二维码
- python图片批量处理(水印、重命名)
- 喜欢的一首歌(小曲儿唱的别有一番趣味)
热门文章
- mysql latin1 中文_mysql 的 latin1 支持中文
- 北工大计算机学院博导,北工大计算机学院计算机科学与技术导师介绍:李玉鉴...
- 如何实现UPS电源远程监测及开关机控制、服务器关机保护
- 跨平台(desktop,web,mobile)电子病历编辑器业务设计
- c语言输出bool,关于printf:在c中打印bool结果为’false’或’true’的最佳方法?...
- 三年级能用计算机吗,三年级计算机教学计划
- 关于链表,看这一篇就够了!(新手入门)
- VM虚拟机开启时电脑立即蓝屏的问题
- android 短信验证码自动填写的两种方式
- xp计算机硬盘序列号,发表一个最简单的XP以上系统中获取CPUID、硬盘序列号、BIOS序列号等等的函数!(100分)...