0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >计算机及配件 > 【RT-Thread作品秀】家庭医用多功能检测仪

【RT-Thread作品秀】家庭医用多功能检测仪

来源: 电路城
2020-12-21
类别:计算机及配件
eye 30
文章创建人 拍明

原标题:【RT-Thread作品秀】家庭医用多功能检测仪

cirmallcirmallcirmallcirmall


背景

随着人们生活水平不断提高,人们越来越注重身心健康。现在家用型的医用检查仪器太少,很多人想要检查一些简单的项目,也要专门去医院检查,这样很不方便。普通的家用医用型检查仪器,功能简单,缺少智能性。所以智能家庭医用多功能检测仪器是很有需要的。

功能

  1. 实时时间显示

  2. 网络时间获取、自动对时

  3. 天气情况获取、显示

  4. 显示室内温度、气压

  5. 检测心率、血氧浓度,检测时可以实时查看心率变化值。

 

开发环境

硬件:APT-Pi V1.5 、ESP32-01S 、LPS22HH 、MAX30102 、4.3寸触摸屏(480*272)

RT-Thread版本:V4.0.2

开发工具及版本:RT_Thread Studio V1.1.5

RT-Thread使用情况概述

内核部分:

任务调度,本软件设计五个执行线程,分别为Main线程、RTC线程、LPS22HH线程、MAX30102线程、TouchGFX线程。

组件部分:

Finsh、C++、libc、i2c框架。

C++,i2c在移植TouchGFX需要使用到。

软件包部分:

cJson、gt9147

通过cJson解析从网络上获取到的天气数据。

触摸屏触摸芯片为gt9147,所以需要gt9147软件包。

库部分:

TouchGFX 

GUI界面显示框架。

硬件框架

该设计硬件大体有五大部分:主控、触摸屏、wifi模块、温度传感器、心率血氧传感器。它们的连接框图如下图所示。

 

主控板使用的是ART_Pi。

触摸屏使用RGB888和I2C接口与主控板进行连接,触摸屏芯片为GT9147。

温度传感器使用的是LSP22HH,LSP22HH是一款兼容IIC和SPI接口的芯片,能够采集温度和气压值,这里使用使用SPI与主控板进行通信。

心率血氧传感器使用的是MAX30102,主要通过IIC接口与主控板进行通信,INT中断输出引脚与主控GPIO进行连接,主控可以根据INT信号,判断数据是否可读。

Wifi模块使用的是ESP32-01S,ART_Pi自带有Wifi模块但是最近没有时间去研究该自带模块该怎么去使用,所以先使用ESP32-01S进行开发。ESP32-01S主要使用UART串口与主控板进行通信。主控板的两个GPIO口与ESP32-01S的CH_PD和RST连接。CH_PD是ESP32-01S的使能信号,RST是重启信号。

软件框架说明

本设计使用RT_Thread进行开发,主要设计有五个执行线程,分别为Main线程、RTC线程、LPS22HH线程、MAX30102线程、TouchGFX线程。

总的软件框图如下图所示。

系统开启后,主要进行RT_Thread系统内部初始化,然后进行各个线程的调用。

软件模块说明

Main线程

进入Main线程后,会先通过Wifi模块获取网络时间和天气情况。这就相当于系统启动后,会先获取网络时间和天气情况,到达开机自动对时功能。之后会进入while(1)循环,在While循环中根据RefreshFlag标志位,来判断是否手动获取网络时间和天气数据。在触摸屏主界面点击刷新按钮,会置位RefreshFlag标志位,从而手动获取网络时间个天气数据。

其流程图如下所示。

 

RTC线程

我这里没使用RT_Thread的RTC,而是自己实现了一个RTC。线程设置为每1S进入该线程,进入后,时间戳数据+1,然后通过把时间戳转化为北京时间,就可以得到时间数据。当然,这里如果长时间运行,时间偏差肯定会大,考虑到设备一般不会长时间使用,所以暂时使用该方案。

LPS22HH线程

LPS22HH线程任务主要是获取温度和气压情况。刚开始进入该线程时,先进行SPI的初始化和LPS22HH传感器的初始化,然后每2S调度一次进行获取温度和气压值。

其流程图如下所示。

 

MAX30102线程

MAX30102线程任务主要是获取血氧和心率值。刚进入该线程时,先进行IIC的初始化和MAX30102器件初始化。然后进入一个循环调度过程,在循环调度过程中,根据checkFlag标志位状态,来判断是否进行获取血氧和心率值。CheckFlag可以在触摸屏检测界面进行置位和清零。点击第一次checkFlag置位,点击第二次chechFlag清零。

其流程图如下所示。

 

TouchGFX线程

触摸屏GUI方面用的TouchGFX框架。为TouchGFX设置了一个循环调度线程。该线程主要包括两个任务处理,显示处理和触摸处理。显示处理主要是更新时间、温度气压情况、血氧、心率值和心率曲线值。触摸处理主要是进行界面更换,获取网络时间、实时天气情况,心率、血氧检测操作。

其流程图如下所示。

 

GUI界面

GUI使用TouchGFX框架,主要设计有两个界面:主界面和检测界面。

  1. 主界面

主界面主要功能是显示时间、天气情况、室内温度、室内气压值、时间和天气数据刷新。点击刷新按钮会刷新时间和天气数据,点击界面切换按钮跳转到检测界面。

主界面显示如下所示。

 

  1. 检测界面

检测界面主要功能为检测心率、血氧、显示心率曲线图。

第一次点击检测按钮,会置位checkFlag,然后会检测心率和血氧。再一次点击检测按钮,会复位checkFlag,然后停止心率和血氧检测。

点击界面切换按钮,会返回到主界面。

检测界面显示如下所示。

 

演示效果

 

 

演示视频: 

比赛感悟

很高兴能参加这次的RT-Thread x STM32 全连接创意创客大赛。通过这一次比赛,让自己对RT-Thread系统有了更进一步熟悉。不得不说RT-Thread真是一个优秀的操作系统,除了RTOS的基本内核之外,还有大量的软件包和组件。拥有自己的IDE,这次的开发工具我使用的是RT-Thread Studio,使用RT-Thread Studio可以很快进行RT-Thread的裁剪和配置,很是方便。

这一次大赛收获颇多,之前没尝试过GUI方面的开发,这次作品设计让我对TouchGFX有了很深入的了解,熟悉了TouchGFX的开发流程和开发方式。这次我使用了ART_Pi 的SDK,使用了里面的TouchGFX库和gt9147软件包,让我能够很快进行自己的GUI界面设计。

这次大赛也遇到很多困难,SDK的TouchGFX库是基于800*480分辨率屏幕的,我使用的是480*272屏幕所以在移植过程中就遇到很多困难。我觉得TouchGFX开发难就难在硬件的配置上面,只要硬件配置好了,软件上面的功能结合TouchGFX Designer能很快进行开发。

这一次的产品设计功能还是少了,之前设定的功能还包括将检测到数据上传到云平台,但是最近很忙,所以现在也还没有弄成功。但是后面我还是会逐渐把功能加上,还能加上SD卡存储功能,OTA功能等。



责任编辑:

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: 多功能检测仪

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案