0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于启明RA6M5的物联网居家环境健康监控设备设计

瑞萨MCU小百科 来源:瑞萨MCU小百科 2023-10-23 14:42 次阅读

01项目简介

本项目实现了基于启明RA6M5的《物联网居家环境健康监控设备》。项目以启明RA6M5为主控,OLED为显示设备用于显示信息,HS3003传感器用于采集环境温湿度数据,MQ-5可燃气体传感器采集空气中可燃气体浓度,Max30102传感器采集人体心率以及血氧值,遥感模块为设备的本地控制端,内部RTC用于实时时钟ESP8266模块用于连接物联网平台以及更新实时时钟时间,并且实现阿里云物联网平台的连接,用于数据上传与下发,蜂鸣器用于环境危险报警。本项目实现了集环境监控,健康监控以及物联网为一体的多功能监控装置。

02系统架构

使用到的外设模块有:

LED:红色用于模拟灯,可以被远程控制打开与关闭。绿色LED周期性呼吸,指示系统是否正常运行。

蜂鸣器:用于可燃气体超阈值报警。

摇杆模块:用于摇杆控制显示界面切换以及报警关闭。

MQ-5可燃气体传感器:用于检测空气中可燃气体浓度值。

EEPROM:用于保存MQ-5可燃气体浓度阈值。

ESP8266 WIFI模块:用于更新网络时间以及连接物联网平台。

MAX30102:用于采集人体的心率以及血氧值。

HS3003:用于采集环境温湿度信息。

OLED:用于显示时间,温湿度信息,可燃气体浓度,心率,血氧数值,物联网平台链接状态等信息。

详细结构描述见下图:

1466e05c-716e-11ee-939d-92fbcf53809c.png


所使用的板载资源以及OS资源见下图所示:

147e6fa6-716e-11ee-939d-92fbcf53809c.png

03硬件资源说明

3.1 线路连接

板载资源不做说明(连线参考开发板原理图),只说外接模块的连线。

3.1.1 OLED

使用了SCI I2C6:

SCL - P505

SDA - P506

VCC - 3.3V

GND - GND

3.1.2 HS3003
同OLED,使用了SCI6 I2C:

SCL - P505

SDA - P506

VCC - 3.3V

GND - GND

3.1.3 MQ-5

使用了ADC0 AN003:

ADC- P003(AN003)

3.1.4 MAX30102
使用了SCI3 I2C:

SCL - P408

SDA - P409

VCC - 3.3V

GND - GND

INT引脚使用了外部中断:

INT - P804


3.1.5 摇杆模块
使用了ADC0 AN001,AN002,AN010:

X轴 - P001(AN001)

Y轴 - P002(AN002)

Z轴(按钮) - P010(AN010)

+5V - 3.3V

GND - GND

04软件实现

4.1 OS资源说明

软件使用了FreeRTOS实时操作系统,创建了7个任务,功能如下:

Os_Display:用于控制OLED显示信息。

Os_LedCtrl:用于控制LED功能。

Os_HwInit:用于初始化公共资源,并且该任务是首先执行的,执行完毕之后其他任务才允许执行,避免资源在未初始化之前使用。

Os_WifiCtrl:用于控制ESP8266模块,进行联网控制以及网络资源管理。

Os_Sensor:用于采集传感器信息,包括HS3003,MQ-5。

Os_JoystickCtrl:用于采集摇杆模块信息,并且判断摇杆模块的动作。

Os_Max30102Ctrl:用于采集人体的心率以及血样数值。

下图简单描述了各个任务的工作,由于各个部分的关系型较为复杂,下面以文字和示例图详细说明。

14954bfe-716e-11ee-939d-92fbcf53809c.jpg


4.2 功能说明

首先上一张全家福:

14a666f0-716e-11ee-939d-92fbcf53809c.png


4.2.1 HS3003温湿度采集

通信方式:

HS3003通过I2C通信,与OLED控制使用了同一路SCI的I2C,通过互斥量相互隔离,实现一路I2C控制两个从设备的目的。功能:

HS3003可以测量环境的温度以及湿度信息,通过计算公式进行转换成摄氏度以及百分比值。

周期性采集,每一秒钟采集一次。供其他模块使用。

4.2.2 MQ-5 可燃气体浓度采集

通信方式:

MQ-5通过将采集到的可燃气体浓度值转换为ADC值输出,单片机周期性采集ADC信号用于计算空气中可燃气体浓度。

功能:

MQ-5可燃气体浓度传感器可以采集空气中的可燃气体浓度,单位为ppm(百万分之一),每一秒钟更新一次数据。供其他模块使用。

4.2.3 MAX30102心率血样采集

通信方式:

MAX30102使用I2C通信,为了精度以及采集速率,使用了单独的一路I2C来工作(其实和OLED使用同一路也是可以的)

功能:

MAX30102上面的INT中断引脚用于判断数据是否更新,当有更新数据时,中断会拉高,数据被读取之后拉低。

MAX30102会一直处于通信状态,当中断引脚变高之后,开始采集数据。当没有手指放上去的时候,采集到的传感器输出值RED以及IR数值,输出值大概在2000以内,但是当手指放上去之后,输出值会突变为100000以上,以此来判断是否有手指放在传感器上做数据采集。

采集到的RED以及IR值会周期性变化,以此来计算心率以及血样数值。

手指刚放上去的时候采集到的数值是不稳定的,需要等待一段时间才会采集到稳定的数值,血氧值大于95%,心率在60到120之前是较为正常的值。


4.2.4 摇杆模块控制功能
通信方式:

摇杆模块有两个方向(X轴和Y轴)以及一个按钮(Z轴),都是通过ADC进行采样。

功能:

对摇杆模块的控制,在X轴,Y轴和Z轴上都会输出一个ADC值,通过对采样值进行分析判断可以直到当前摇杆处于什么位置,以此来实现控制的功能。

摇杆模块用于对现实界面进行切换,当摇杆模块滑向右和上方时(即X轴以及Y轴的正方向),则会切换到传感器显示界面;当摇杆模块滑向左或者下方时(即X轴和Y轴的负方向)则切换到时间显示界面。


4.2.5 报警功能

报警使用了板载的蜂鸣器,当MQ-5采集到的空气中可燃气体浓度大于设定阈值的时候就会打开蜂鸣器报警,报警阈值可以通过物联网设置。也可以通过物联网控制报警功能打开/关闭。

当设定阈值更新时,会判断更新的阈值是否和当前阈值相等,不等则写入EEPROM,下次系统上电的时候会自动从EEPROM中读取阈值


4.2.6 ESP8266 网络通信

板载的ESP8266 WIFI模块用于物联网通信,通信平台为阿里云物联网平台,通信方式为MQTT。

ESP8266上电工作流程:

复位ESP8266

关闭回显,连接AP

连接AP完成之后更新SNTP时间,并将时间写入到RTC

时间更新完成之后MQTT通信连接阿里云物联网平台

数据通信(上载和下发),上载一秒钟更新一次

使用了一个定时器用来判断ESP8266 AT指令是否响应超时,如果超时,会重新发送。

连接了物联网平台之后,会将温度、湿度、可燃气体浓度、血氧数值,心率数值,可燃气体报警阈值、报警开关以及LED亮度上传到阿里云物联网平台。

物联网平台可以下发LED亮度百分比命令来控制本地LED的亮度。

物联网平台可以下发可燃气体浓度报警阈值到本地。

物联网平台可以下发可燃气体报警使能命令到本地。

下图为阿里云平台收到的数据:

14abe4fe-716e-11ee-939d-92fbcf53809c.png


下图为阿里云平台下发数据的调试界面:

14baf53e-716e-11ee-939d-92fbcf53809c.png


4.2.7 OLED显示功能

OLED提供显示功能,包括:

上电显示

日期时间星期显示

wifi连接状态显示

IoT物联网平台连接状态显示

温度、湿度、可燃气体浓度显示

心率、血氧显示

上电之后会显示启动界面,1s之后切换到时间显示界面

14cee864-716e-11ee-939d-92fbcf53809c.png


时间显示界面下会显示WIFI连接状态,IoT物联网平台连接状态,日期时间星期,空气湿度和温度。wifi图标闪烁,表示在连接AP,常亮表示连接成功;IoT图标闪烁表示在连接物联网平台,常亮表示连接成功;时间或从RTC中读取并显示。

14deff1a-716e-11ee-939d-92fbcf53809c.png


当摇杆模块滑向X轴或者Y轴正方向时,切换到传感器数据显示界面,此界面下,摇杆模块滑到X轴或者Y轴负方向时,切换到时间显示界面

14ea3be6-716e-11ee-939d-92fbcf53809c.png


当手指放到MAX30102传感器上进行测量时,切换到心率血样显示界面,此界面下,手指离开MAX30102,则退回到之前的界面

150658bc-716e-11ee-939d-92fbcf53809c.png


4.2.8 灯控制功能

板载的LED1来模拟普通LED灯,亮度控制位百分比,支持0~100:0为关闭LED;100为全亮度。

通过物联网平台下发控制亮度命令,本地接收到命令之后使用PWM控制LED的亮度。


4.2.9 RTC

RTC用于本地实时时钟

上电会自动从上一次的时间开始计时,EAP8266成功连接AP之后之后会自动发起时间更新命令获取SNTP时间,并更新到本地RTC中。

06总结

本人是第一次使用野火的开发板,之前听说过野火,但是一直没机会接触。无意间在公众号中看到了本次比赛,遂毫不犹豫的参加了。启明RA6M5给我的感觉就是精简,美观,板载资源丰富,扩展性强,给作品开发带来了很多便携性,像是板载ESP8266以及蜂鸣器,就减少了外扩模块的工作。历时三个月,终于算是完成了比赛,期间的心酸以及收获也难以述说,遇到了很多难题,也收获了很多知识。

简而言之,本次比赛学习到了很多东西,也让我了解了更多野火的产品。感谢野火提供的本次机会。祝愿野火越来越好,开发更多物美价廉的产品,方便广大爱好者以及工程师

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2526

    文章

    48093

    浏览量

    740053
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16016

    浏览量

    343617
  • 物联网
    +关注

    关注

    2869

    文章

    41622

    浏览量

    358372
  • 蜂鸣器
    +关注

    关注

    12

    文章

    850

    浏览量

    45303
  • 监控设备
    +关注

    关注

    0

    文章

    84

    浏览量

    12681

原文标题:【瑞萨RA MCU创意氛围赛作品赏析】项目10——物联网居家环境/健康监控设备

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于RT-Thread+RA6M4的心率监控设备实现方案

    1、基于RT-Thread+RA6M4的心率监控设备制作应用背景作为一个办公或者居家桌面摆件使用。随时随地监控心率值,然自己了解自己的身体,
    发表于 07-27 14:22

    【野火启明6M5开发板体验】野火启明开发板和瑞萨RA MCU介绍

    首先感谢电子发烧友和野火,已经收到野火启明6M5开发板。野火启明6M5开发板包装野火启明6M5
    发表于 12-14 22:31

    【野火启明6M5开发板体验】野火启明6M5开箱

    启明6M5开发板的核心是一个硕大的RA6M5型单片机。该单片机具有2个CAN FD、1个以太网接口、20个电容触摸、1个高速USB2.0、一个全速USB2.0、一个Quad SPI、一个Octa SPI
    发表于 12-18 16:05

    【野火启明6M5开发板体验】与野火启明6M5开发板的第一次亲密接触

    ,板子体积很大。二、规格介绍开发板板载的是瑞萨 R7FA6M5BH3CFC芯片, RA6M5 基于Cortex-M33 内核,主频高达 200MHz,具有 512KB SRAM、2MB Code
    发表于 12-18 22:14

    【野火启明6M5开发板体验】1 RA6M5开发环境搭建

    基于 FREERTOS 构建,并能够进行扩展,以使用其他实时操作系统 (RTOS) 和中间件。 RA6M5适用于联网应用的需求, 如多样化的通信功能、面向未来应用的安全功能、大容量嵌入式 RAM 和较低
    发表于 12-21 22:49

    【野火启明6M5开发板体验】3 RA6M5按键

    开发环境:IDE:MKD 5.30开发板:野火启明6M5开发板MCU:R7FA6M5BH3CFC1 普通方式1.1 普通方式工作原理按键 GPIO 端口有两个方案可以选择,一是采用上拉
    发表于 12-23 19:55

    【野火启明6M5开发板体验】4 RA6M5串口通信

    ,是串行通信技术的一种总称,包括了UART,SPI等串行通信技术。RA6M5的SCI模块是一个有6个通道的异步/同步串行接口。SCI提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备
    发表于 12-23 20:01

    【野火启明6M5开发板体验】测试ESP8266收发数据

    野火启明6M5开发板,载板了ESP8266,这样可以方便的进行联网,记得ESP8266是我进入单片机接触到的最好用的芯片之一。但是,我原来做的大都是arduino或者LUA,很少用到AT命令,今天
    发表于 12-24 08:27

    【野火启明6M5开发板体验】4、RA6M5的RTC编程

    ://bbs.elecfans.com/jishu_2324831_1_1.html3、FreeRTOS+OLEDhttps://bbs.elecfans.com/jishu_2325284_1_1.html本文章对RA6M5
    发表于 01-01 11:16

    【野火启明6M5开发板体验】1.开箱

    就直接看到点灯逻辑。依托于强大的e2studio和野火官方的文档支持,入门很简单。作为开篇使用的文章,我想将我看到这个启明开发板的第一感受分享出来,这个RA6M5芯片很大。。相比于之前用过的RA
    发表于 01-03 01:04

    【野火启明6M5开发板体验】5 RA6M5 PWM输出

    开发环境:IDE:MKD 5.30开发板:野火启明6M5开发板MCU:R7FA6M5BH3CFC1 PWM简介脉冲宽度调制(PWM),是英文“Pulse Width Modulatio
    发表于 01-07 10:09

    【瑞萨RAMCU创意氛围赛】基于RA6M5的电子墨水屏微信信息站

    ,并能够进行扩展,以使用其他实时操作系统(RTOS)和中间件。RA6M5适用于联网应用的需求,如多样化的通信功能、面向未来应用的安全功能、大容量嵌入式RAM和较低的运行功耗(从闪存运行
    发表于 08-28 04:06

    RA6M5数据手册(英)

    RA6M5数据手册(英)
    发表于 11-07 19:49 1次下载
    <b class='flag-5'>RA6M5</b>数据手册(英)

    RA6M5 组 数据表

    RA6M5 组 数据表
    发表于 01-09 19:01 0次下载
    <b class='flag-5'>RA6M5</b> 组 数据表

    RA6M5 组 数据表

    RA6M5 组 数据表
    发表于 06-30 18:41 0次下载
    <b class='flag-5'>RA6M5</b> 组 数据表