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

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

3天内不再提示

RT-Thread开源作品运动手表展示

RTThread物联网操作系统 来源:电路城 作者:何雄 2021-04-07 17:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

该作品是基于ART-PI硬件平台,外接OLED,蜂鸣器,按键,X-NUCLEO-IKS01A3传感器套件完成实现的运动手表。

运动手表应该能够兼顾温湿度,气压信息,指南针以及步数等,能够实时监控环境的状态。

该运动手表实现功能如下:

时间日期星期显示;

网络时间获取;

天气获取并显示;

温度(HTS221),湿度(HTS221),气压(LPS2HH)信息的获取并显示;

指南针功能(LIS2MDL);

步数(LSM6DSO)监控;

闹钟功能,蜂鸣器闹钟;

设置功能,开启网络时间以及设置闹钟;

OLED显示功能

板载按键

秒表

开发环境

硬件:STM32H750-RT-ART-PI, X-NUCLEO-IKS01A3传感器,OLED,蜂鸣器,板载按键 RT-Thread版本:4.0.3 开发工具及版本:RT-thread studio 2.0.0

RT-Thread使用情况概述

内核部分:线程管理(静态线程创建/删除),临界操作,时钟管理。 组件部分:FinSH控制台,虚拟文件系统,LwIP,SAL 软件包部分:cjson,netutils,easyflash,u8g2 其他:串口,pin,RTC,IIC

硬件框架

2d2a4b8c-93fa-11eb-8b86-12bb97331649.png

项目中使用到了STM32H750中的RTC实时时钟不在原理图中。

同时用到了ART-PI板载的wifi模块对天气获取以及网络时间的获取。

硬件部分比较简单主要是通过IIC控制OLED以及传感器数据的读取(读取4个传感器数据分别用作温湿度,气压以及磁场和运动检测),通过GPIO控制蜂鸣器。

按键用来切换查看界面以及设置信息,本项目只采用了一个按键,通过软件逻辑实现对4中按下状态的识别。

硬件线路连接:

蜂鸣器 - PA9

OLED SCL - PH13

OLED SDA - PH15

X-NUCLEO-IKS01A3传感器 SCL - PB0

X-NUCLEO-IKS01A3传感器 SDA - PB2

软件框架说明

整体软件实现了功能框架如下:

2d33f4fc-93fa-11eb-8b86-12bb97331649.png

软件中主要包括了下面的功能:

按键状态的信号采集以及滤波功能,由于只有一个按键,所以将这一个,按键的按下状态做了不同的识别,分为了4种按下的状态可以用来处理所有的任务。

OLED的显示功能

启动界面,会显示RT-Thread的logo以及项目logo。

时间显示界面:会显示时间,日期,星期,wifi连接状态,天气信息,在wifi没有连接的状态下,wifi图标会闪烁。

菜单列表:用来切换显示的界面,包含设置,秒表、步数、温度、湿度、气压、方位。通过短按按钮切换。

设置界面。可以设置是否开启网络时间更新以及设置闹钟。闹钟设置界面中可以设置闹钟是否启用以及设置闹钟时间。

秒表功能,在该界面下,秒表线程被创建,按下按钮切换到开启按钮下按下按钮可以开启计时,再次按下暂停计时,退出该界面自动删除线程。

步数查看。步数线程会一直运行,用于记录运动状态,使用LSM6DSO获取加速度数,由此进行步数算法检测步数。

温度、湿度、气压查看。获取传感器的数据进行处理之后显示在界面上。

指南针(方位)界面,可以查看当前面向的方向,使用了LIS2MDL磁力传感器以及LSM6DSO加速度传感器通过算法结合计算出指向方位,并通过图形显示以及问题提示的方式指向当前的方位(东、南、西、北、东南、东北、西南、西北)。

返回。返回时间显示界面。

闹钟功能

RTC获取的时间到了闹钟设置中设置的指定的时间之后将触发闹钟功能。在主界面下通过短按按钮关闭。

软件模块说明

一、按键功能介绍:因为板载只有一个按键,我也没有外接按键资源,所以将这一个按键通过按键时间的长短分为了4种按下状态,通过松手判断按钮按下的时间长短。 按键线程中使用了软件按键滤波功能,滤波时间是50ms。 四种按键状态分别如下: 1 【短按】:按下时间小于等于500ms 2 【中长按】:按下时间大于500ms小于等于1.5s 3 【偏长按】:按下时间大于1.5s小于等于2.5s 4 【长按】:按下时间大于2.5s 按键线程在初始化的时候创建。 1、OLED显示功能

OLED的显示功能是主要的功能,这里对OLED的功能做详述说明。

开机动画。上电的时候会显示开机界面,首先显示RT-Thread的图标,之后显示运动手表的logo,显示完成之后自动进入主界面。

主界面就是时间显示界面,如下图:

最上边显示【星期 - 月份 日期】;

中间部分显示时间,如果网络连接之后会自动更新时间,可以在设置界面关闭自动更新,网络时间会更新到RTC中,时间直接读取自RTC。;

最下面一列显示wifi连接状态以及天气信息,在wifi没有连接的状况下会500ms闪烁一次,wifi连接之后,wifi图标不再闪烁,天气图标会自动循环显示。

天气包括晴天,雨天,多云,夜晚,晴转阴。

天气信息通过网络获取,获取网络天气的json信息,处理出信息,所以需要线连接网络才可以使用。

如果按下开关,最下一列中间会显示开关按下的状态【KEY1】【KEY2】【KEY3】【KEY4】,如下右图,没有开关按下的时候不显示。

长按按钮进入菜单选择界面

中长按按钮进入设置界面

2d5eb02a-93fa-11eb-8b86-12bb97331649.png

2、菜单界面

菜单界面显示【返回】【设置】【秒表】【步数】【温度】【湿度】【气压】【方位】,如下左图。

最上边显示左边菜单图标,右边显示退出图标。

短按按钮切换菜单在上述1)中的菜单列表中循环切换

中长按按钮进入选中的菜单功能中。

长按按钮退回主界面

按下按钮的时候屏幕最上面中间会显示按钮按下的状态【KEY1】【KEY2】【KEY3】【KEY4】,如下右图

2dcf9272-93fa-11eb-8b86-12bb97331649.png

3、设置

设置界面显示【是否启动网络时间】以及【闹钟设置】

网络时间后面的方框表示是否启用,实心方框表示启用,默认是启用的

短按按钮切换菜单

中长按按钮设置

2de1d11c-93fa-11eb-8b86-12bb97331649.png

选中【闹钟设置】,短按进入闹钟设置界面。

中长按切换选中菜单,分别有【启用闹钟】【小时设置】【分钟设置】

选中启用菜单,短按启用或者禁止,启用了闹钟之后会创建闹钟线程,运行闹钟功能,禁止闹钟之后会删除闹钟线程。

选中小时设置或者分钟该设置,短按时间会增加。

闹钟设置好了之后,到达指定时间会启动蜂鸣器报警,在主界面下短按按钮会关闭闹钟,到下一次到指定时间会重新报警。

4、秒表当切换到秒表界面的时候会自动创新秒表线程,在退出秒表显示界面时会自动删除秒表任务,秒表任务100ms运行一次。 1、秒表显示界面,最上边左边显示秒表图标,右边显示退出图标 2、中间显示记录秒表时间 3、下面显示操作菜单 1) 第一个是开始按钮,短按启动计时,菜单编程停止,短按停止计时,如下左图。 2) 中间是清空按钮,短按按下清空计时数据 3) 右边是返回,短按返回菜单列表 4、中长按切换下列的菜单 5、长按退回主界面 6、按下按钮的时候屏幕最上面中间会显示按钮按下的状态【KEY1】【KEY2】【KEY3】【KEY4】,如下右图

2e08d6ae-93fa-11eb-8b86-12bb97331649.png

5、步数

1、在菜单栏中,选中【步数】,中长按进入界面,显示当前步数。 2、步数是通过LSM6DSO加速度计和角速度计获取的数据计算出来的。通过采样加速度值,连续多次采集数据,通过算法计算各个轴的加速度值是否满足步数运动的条件,以此计算是否运动,步数检测的灵敏度也可以在代码中进行调节。 3、该界面中间显示当前步数信息。 4、该界面下最下边显示【清空】和【返回】菜单,通过短按进行切换 5、选中【清空】,中长按之后清空步数,选中【返回】,中长按退回菜单列表。 6、步数线程在启动时创建,会一直监控步数。 7、长按按钮退出 8、按下按钮会在上方中间显示开关按下的状态【KEY1】【KEY2】【KEY3】【KEY4】

2e1fa64a-93fa-11eb-8b86-12bb97331649.png

6、温度1、在菜单列表中,选中【温度】,中长按进入界面,显示当前温度。 2、温度是通过HST221传感器,采集的,该传感器中存在标定数据,通过获取标定数据,然后利用一次线性方程公式对读取出来的数据进行处理,最后会的温度。 3、该界面中间显示温度数据,每1s刷新一次。 4、该界面下显示有【刷新】和【返回】,短按进行菜单切换。 5、选中【刷新】,中长按刷新当前温度 6、选中【返回】,中长按会返回菜单列表界面 7、温度数据在该界面下才会从传感器中读取 8、长按按钮退出 9、按下按钮会在上方中间显示开关按下的状态【KEY1】【KEY2】【KEY3】【KEY4】

7、湿度1、在菜单列表中,选中【湿度】,中长按进入界面,显示当前湿度百分比。 2、湿度是通过HST221传感器,采集的,该传感器中存在标定数据,通过获取标定数据,然后利用一次线性方程公式对读取出来的数据进行处理,最后会的湿度。 3、该界面中间显示湿度数据,每1s刷新一次。 4、该界面下显示有【刷新】和【返回】,短按进行菜单切换。 5、选中【刷新】,中长按刷新当前湿度 6、选中【返回】,中长按会返回菜单列表界面 7、湿度数据在该界面下才会从传感器中读取 8、长按按钮退出 9、按下按钮会在上方中间显示开关按下的状态【KEY1】【KEY2】【KEY3】【KEY4】

8、气压

1、在菜单列表中,选中【气压】,中长按进入界面,显示当前气压值。

2、气压是通过LPS2HH传感器获取,每1s刷新一次

3、该界面中间显示气压数据。

4、该界面下显示有【刷新】和【返回】,短按进行菜单切换。

5、选中【刷新】,中长按刷新当前气压值

6、选中【返回】,中长按会返回菜单列表界面

7、气压数据在该界面下才会从传感器中读取

8、长按按钮退出

9、按下按钮会在上方中间显示开关按下的状态【KEY1】【KEY2】【KEY3】【KEY4】

9、指南针1、在菜单列表中,选中【方位】,中长按进入界面,指南针功能,创建指南针线程。 2、指南针数据是通过LIS2MDL传感器获取,LIS2MDL获取磁力数据,通过,用LSM6DSO的加速度数据进行补偿,通过公式计算出X轴与Y轴方向的磁力强度,进而计算当前传感器所指向的方向。 3、该界面通过图形显示指示的方向,中间的指针会指向当前的方位; 左下角的文字会显示指向的方位数据,分别有东、南、西、北、东南、东北、西南、西北。 4、长按按钮退出 (a)按下按钮会在上方中间显示开关按下的状态【KEY1】【KEY2】【KEY3】【KEY4】

10、RTC功能RTC线程会在初始化的时候创建,最开始会显示设定的时间,这个时候会等待网络连接,在设置了获取网络时间的状态下,网络连接之后会获取网络时间并更新到RTC,网咯时间每24小时更新一次,如果关闭网络时间功能则不会更新。

原文标题:【RT-Thread开源作品秀】运动手表

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    2574

    文章

    54438

    浏览量

    786372
  • 操作系统
    +关注

    关注

    37

    文章

    7332

    浏览量

    128674
  • RT-Thread
    +关注

    关注

    32

    文章

    1544

    浏览量

    44303

原文标题:【RT-Thread开源作品秀】运动手表

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2025 RT-Thread 嵌入式大赛排名公布!作品共赏,看大奖花落谁家!

    2025RT-Thread嵌入式大赛感谢所有开发者的热情参与和大力支持,2025年RT-Thread嵌入式大赛圆满收官!本届大赛共设立软件赛道与硬件赛道,吸引了众多开发者积极参与,提交了大量构思新颖
    的头像 发表于 12-11 18:09 1630次阅读
    2025 <b class='flag-5'>RT-Thread</b> 嵌入式大赛排名公布!<b class='flag-5'>作品</b>共赏,看大奖花落谁家!

    首搭RT-Thread程翧车控平台| RT-Thread程翧 S32K344 快速原型开发平台正式上市!| 产品动态

    在智能汽车迈向高集成与高安全的时代,VCU/ECU开发正面临效率与可靠性的双重考验。依赖单一硬件或拼凑软件方案的传统模式,已成为制约创新的瓶颈。为此,RT-Thread带来里程碑式的解决方案
    的头像 发表于 10-31 11:53 529次阅读
    首搭<b class='flag-5'>RT-Thread</b>程翧车控平台| <b class='flag-5'>RT-Thread</b>程翧 S32K344 快速原型开发平台正式上市!| 产品动态

    2025年RT-Thread开发者巡回培训报名正式启动!

    RT-Thread技术专家面对面答疑解惑的绝佳机会。在这里你将体验丰富的理论课程、精彩Demo演示与动手实践!欢迎报名参加,与我们携手探索技术的更多可能!日期城市10月
    的头像 发表于 09-27 10:39 1173次阅读
    2025年<b class='flag-5'>RT-Thread</b>开发者巡回培训报名正式启动!

    rt-thread studio 2.2.9如何使用最新的RT-Thread v5.2.0 released?

    rt-thread studio2.2.9如何使用最新的RT-Thread v5.2.0 released? 原先以为修改index_all.json,发现联网的时候,会自动覆盖 另lastet版本
    发表于 09-16 06:06

    【好书推荐】RT-Thread第20本相关书籍!《嵌入式实时操作系统RT-Thread原理与应用》| 技术集结

    01内容简介ContentSummary本书为读者提供了一个全面、系统的RT-Thread学习指南,旨在帮助初学者及有经验的开发者掌握RT-Thread实时操作系统和STM32嵌入式微控制器的核心
    的头像 发表于 08-24 10:05 700次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>第20本相关书籍!《嵌入式实时操作系统<b class='flag-5'>RT-Thread</b>原理与应用》| 技术集结

    RT-Thread携手玄铁,全面展示 RISC-V 生态最新成果,期待莅临!

    2025年7月16日-19日,第五届RISC-V中国峰会将在上海张江科学会堂举行。作为全球领先的开源实时操作系统(RTOS)提供商,RT-Thread将携手玄铁,在大会现场打造专属展位,带来精彩演讲
    的头像 发表于 07-15 11:13 854次阅读
    <b class='flag-5'>RT-Thread</b>携手玄铁,全面<b class='flag-5'>展示</b> RISC-V 生态最新成果,期待莅临!

    用SPI玩转WiFi,RT-Thread ESP-Hosted驱动深度适配指南 | 技术集结

    还在为MCU的WiFi连接方案发愁?RT-Thread社区开源ESP-Hosted驱动,通过标准SPI接口即可实现,并且该仓库已整理成RT-Thread软件包。RT
    的头像 发表于 07-09 19:03 1154次阅读
    用SPI玩转WiFi,<b class='flag-5'>RT-Thread</b> ESP-Hosted驱动深度适配指南 | 技术集结

    RT-Thread荣获2025优秀开源项目 | 新闻速递

    6月底,RT-Thread睿赛德受邀参与由上海开源信息技术协会主办的2025上海开源创新精英荟。上海市商委副主任张杰出席会议并致辞。RT-Thread嵌入式操作系统项目凭借其卓越的技术
    的头像 发表于 07-04 09:04 2444次阅读
    <b class='flag-5'>RT-Thread</b>荣获2025优秀<b class='flag-5'>开源</b>项目 | 新闻速递

    揭秘RT-Thread上的AUTOSAR CP系统

    本文探讨了RT-Thread与AUTOSARCP的融合,解决车载ECU开发中实时性、安全性与灵活性的平衡问题。通过分层安全内核(rt-safetyos/autoos)和工具链整合,兼容AUTOSAR
    的头像 发表于 06-23 20:22 2967次阅读
    揭秘<b class='flag-5'>RT-Thread</b>上的AUTOSAR CP系统

    玄铁加入RT-Thread 高级会员合作伙伴 | 战略新篇

    今天起,玄铁XuanTie正式成为RT-Thread高级会员合作伙伴。此次合作标志着双方将在嵌入式操作系统创新、RISC-V生态构建及行业应用落地等领域展开深度协同,加速推动开源技术的产业化进程
    的头像 发表于 06-23 20:22 879次阅读
    玄铁加入<b class='flag-5'>RT-Thread</b> 高级会员合作伙伴 | 战略新篇

    RT-Thread睿赛德开源无人机领域硬核飞控上线!| 产品动态

    开源自驾仪硬件——SIEON-S1飞控,为开发者提供一个强大而灵活的平台,加速智能控制系统的研发进程。SIEON-S1飞控RT-Thread作为一款高性能的实时
    的头像 发表于 05-28 20:33 1029次阅读
    <b class='flag-5'>RT-Thread</b>睿赛德<b class='flag-5'>开源</b>无人机领域硬核飞控上线!| 产品动态

    2025 RT-Thread全球技术大会议程正式发布!

    。2024RT-Thread全球技术大会,由开源操作系统RT-Thread发起,并联合国内外领先企业的重磅嘉宾,携手国内外顶尖企业专家与超3万名线上参与者,共议边缘计算、嵌入式
    的头像 发表于 05-27 19:28 1084次阅读
    2025 <b class='flag-5'>RT-Thread</b>全球技术大会议程正式发布!

    RT-Thread审核团招募: 深度参与开源RTOS社区治理与演进

    全球开发者招募:RT-Thread审核团(ReviewTeam)正式开放申请!在开源的世界里,代码审查(CodeReview)是保证软件质量、促进技术交流的关键环节。RT-Thread作为全球领先
    的头像 发表于 05-21 18:02 1074次阅读
    <b class='flag-5'>RT-Thread</b>审核团招募: 深度参与<b class='flag-5'>开源</b>RTOS社区治理与演进

    如何将RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默认支持的IDE只有IAR 和 Keil, 那如何将RT-Thread移植到NXP MCUXPressoIDE上呢?本文内容比较简单但稍有琐碎,希望对有需要的小伙伴有所帮助。
    的头像 发表于 02-13 10:37 2447次阅读
    如何将<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    RT-Thread荣登2024开源创新榜单,跻身中国十大开源社区

    日前,由中国科协科学技术传播中心、中国计算机学会、中国通信学会和中国科学院软件研究所联合主办,CSDN承办的2024年开源创新榜评选活动圆满落幕。在众多优秀候选者中,RT-Thread开源社区因其在
    的头像 发表于 01-08 19:06 1120次阅读
    <b class='flag-5'>RT-Thread</b>荣登2024<b class='flag-5'>开源</b>创新榜单,跻身中国十大<b class='flag-5'>开源</b>社区