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

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

3天内不再提示

使用RT-Thread Studio进行智能家居终端的设计

冬至子 来源:meng_1092 作者:meng_1092 2023-07-28 16:41 次阅读

1.项目背景:
本次方案基于星火一号开发板开发,使用RT-Thread Studio进行工程创建,代码编辑,RT-Thread配置,调试配置,程序下载等功能。
项目成员均来自华南理工大学大二集成电路设计与集成系统专业,组长:方浩然,组员:谢天宇。

由于项目时间短暂,主要结合了板载资源,并基于一些现有的例程开发相关功能……

最终该项目的整体规划为实现一个小型的智能家居终端,利用一些板载资源采集数据/代表部分现实中的家居。主要功能包括以下几项:
1.实时温湿度采集并上传onenet,在onenet中实现数据可视化
2.通过板载按钮/云端指令控制LED灯阵,模拟控制家居灯阵
3.显示屏显示当前温湿度以及选择灯阵的相关信息
4.没用的功能:实现开启动画

2.项目成品展示:
本项目通过五个主线程来控制和实现所有功能,分别是
system_start_thread 系统启动线程
led_matrix_thread 灯阵控制线程
get_color_thread 获取灯阵颜色、模式线程
temp_humi_thread 温湿度获取线程
lcd_show_thread lcd显示线程

部分项目图片实际展示:
1.温湿度数据实时上传onenet

1.jpg

实现高温警告

1.jpg

工作效果

1.jpg

3.项目具体实现
线程间通信
例子:实现不同数据在lcd屏幕上的显示,实现实时灯阵颜色和模式的选择。
首先发送mode与color
void get_color_entry()
{
rt_thread_mdelay(100);
rt_mb_send(&mode_choice, (rt_ubase_t)mode);
rt_mb_send(&color_choice,(rt_ubase_t)yanse);

rt_pin_mode(PIN_KEY_LEFT, PIN_MODE_INPUT_PULLUP);
rt_pin_mode(PIN_KEY_DOWN, PIN_MODE_INPUT_PULLUP);
rt_pin_mode(PIN_KEY_RIGHT, PIN_MODE_INPUT_PULLUP);
rt_pin_mode(PIN_KEY_UP, PIN_MODE_INPUT_PULLUP);
while (1)
{
/* 读取按键 KEY0 的引脚状态 并发送*/
if (rt_pin_read(PIN_KEY_LEFT) == PIN_LOW)
{
rt_kprintf("leftn");
mode--;
xunhuan();
rt_mb_send(&mode_choice, (rt_ubase_t)mode);
rt_mb_send(&color_choice,(rt_ubase_t)yanse);
接受并实现led灯阵的控制:
void led_matrix_control_entry(void parameter)
{
RGBColor_TypeDef chozen_color;
int pmode;
int *pyanse;

rt_err_t mbRet1 = RT_EOK;
rt_err_t mbRet2 = RT_EOK;
led_matrix_clear();
while(1)
{
mbRet1 =rt_mb_recv(&mode_choice, (rt_ubase_t*)&pmode, RT_WAITING_FOREVER);
mbRet2 =rt_mb_recv(&color_choice, (rt_ubase_t*)&pyanse, RT_WAITING_FOREVER);
color_parameter = enter_color(pyanse);
mode_choice_funtion(pmode, color_parameter);
if(mbRet1==RT_EOK)
{
rt_kprintf("mode_choice:%d",pmode);
}

4.问题与未来方向
问题1:例程中的引脚定义不统一
例程中的引脚定义不统一导致一些程序能够正常编译但是不能灯阵不能正常展示
需要通过STM32CubeMX进行调整

问题2:使用led_matrix[i].io_ctl(&led_matrix[i],COLOR);在对多个LED同时进行更改时会出现延时,例如当同时使用该代码点亮所有外圈LED时会先亮一部分再亮另一部分。
如果使用Set_LEDColor(laite,RED); RGB_Reflash();则能够让所有灯同时亮起。

未来方向1:开发利用其他板载资源
星火一号的板载资源,相关软件包非常丰富,未来可以进一步利用未使用的板载资源进行进一步的开发。

未来方向2:开发移动端/桌面端应用
可以直接从移动端/桌面端向开发板发送控制指令,整个方案更加完善。

ps.实现开场动画
运用img2lcd软件将图片变为c数组,调整合适大小后调用lcd_show_image()函数显示图片。
通过循环,实际效果为动图。

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

    关注

    22

    文章

    1592

    浏览量

    107835
  • LCD显示器
    +关注

    关注

    0

    文章

    87

    浏览量

    20161
  • 智能家居
    +关注

    关注

    1926

    文章

    9510

    浏览量

    184292
  • RT-Thread
    +关注

    关注

    31

    文章

    1272

    浏览量

    39919
  • OneNET
    +关注

    关注

    1

    文章

    51

    浏览量

    12771
收藏 人收藏

    评论

    相关推荐

    RT-Thread记录(二、RT-Thread内核启动流程)

    在前面我们RT-Thread Studio工程基础之上讲一讲RT-Thread内核启动流程.
    的头像 发表于 06-20 00:30 4965次阅读
    <b class='flag-5'>RT-Thread</b>记录(二、<b class='flag-5'>RT-Thread</b>内核启动流程)

    RT-Thread Studio 上使用 RT-Thread Nano

    _hw_console_output() ,默认可以进行打印。打开串口终端,可以发现在终端中执行了打印。基于 Nano 添加 FinSH双击 RT-Thread Settings 进入
    发表于 05-18 15:59

    RT-Thread Studio 安装教程

    下一步直到最后点击安装按钮可开始进行安装,待安装完成后可直接点击确定即可启动 RT-Thread Studio,如下图所示:或者取消运行RT-Thread
    发表于 08-10 14:12

    如何实现基于RT-Thread智能家居的设计?

    如何实现基于RT-Thread智能家居的设计?
    发表于 12-20 06:38

    分享一个不错的基于RT-Thread智能家居系统实战案例

    分享一个不错的基于RT-Thread智能家居系统实战案例
    发表于 12-20 06:42

    如何使用RT-Thread Studio创建支持HPM6750开发板的RT-Thread项目

    如何使用RT-Thread Studio创建RT-Thread项目,如何对项目进行编译、调试,如何将生成的二进制文件下载到开发板上,以及如何使用“串口
    发表于 06-08 11:22

    基于RT-Thread和N32G457的智能家居demo相关资料介绍

    1、基于RT-Thread和N32G457的智能家居demo简介本文使用 N32G457 开发板,移植 RT-Thread 操作系统,增加 ESP8266 WIFI 模块模拟了一个小型的智能家
    发表于 08-22 15:09

    RT-Thread Studio 主要亮点功能

    RT-Thread Studio V1.1.0 快速上手体验 RT-Thread Studio 主要包括工程创建和管理,代码编辑,SDK管理器,RT
    的头像 发表于 06-19 11:45 5816次阅读

    RT-Thread Studio快速配置GPIO进行点灯

    本章通过RT-Thread Studio配置AB32VG1片上外设GPIO的引脚,控制RGB彩灯进行简单的颜色变换
    发表于 12-14 18:44 10次下载
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>快速配置GPIO<b class='flag-5'>进行</b>点灯

    RT-Thread Studio驱动SD卡

    RT-Thread Studio驱动SD卡前言一、创建基本工程1、创建Bootloader2、创建项目工程二、配置RT-Thread Settings三、代码分析1.引入库2.读入数据四、效果验证
    发表于 12-27 19:13 20次下载
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>驱动SD卡

    RT-Thread文档_RT-Thread SMP 介绍与移植

    RT-Thread文档_RT-Thread SMP 介绍与移植
    发表于 02-22 18:31 9次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> SMP 介绍与移植

    基于RT-Thread Studio学习

    前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。
    的头像 发表于 05-15 11:00 3821次阅读
    基于<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>学习

    怎么设计一种基于RT-Thread和infineon开发板的智能家居系统?

    本次设计基于RT-Thread和infineon PSoC™ 62 with CAPSENSE™ evaluation kit开发板,实现了一个简易的智能家居系统。
    发表于 07-22 14:56 484次阅读
    怎么设计一种基于<b class='flag-5'>RT-Thread</b>和infineon开发板的<b class='flag-5'>智能家居</b>系统?

    试用RT-Thread Studio(VSCode)

    想尝试RT-Thread studio (VSCode),先下载安装VSCode,再搜索RT-Thread
    的头像 发表于 10-12 10:58 1035次阅读
    试用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>(VSCode)

    rt-studio潘多拉开发板最新rt-thread不能运行解决办法

    rt-studio 上 选择基于开发板的项目,选择潘多拉,rt-thread选择lasted ,如下图
    的头像 发表于 10-16 14:50 1273次阅读
    <b class='flag-5'>rt-studio</b>潘多拉开发板最新<b class='flag-5'>rt-thread</b>不能运行解决办法