RT-Thread 瑞萨 智能家居网络开发:RA6M3 HMI Board 以太网+GUI技术实践

简介: RT-Thread 瑞萨 智能家居网络开发:RA6M3 HMI Board 以太网+GUI技术实践

不用放大了, 我在包里找到张不小的……

以太网HMI线下培训-环境准备

这是社群的文档:【腾讯文档】以太网线下培训(HMI-Board)

https://docs.qq.com/doc/DY0FIWFVuTEpORlNn

先介绍周六的培训是啥,然后再介绍一下要准备的一些东西


R A 6 M 3 H M I − B o a r d \textcolor{#4183c4}{RA6M3 HMI-Board}RA6M3HMIBoard

本次培训将使用,由RT-Thread与瑞萨电子及LVGL官方合作推出的一款高性价比图形评估套件。它采用了瑞萨电子的高性能RA6M3芯片,具备2D的图形加速和JPEG编解码功能。配合RT-Thread软件生态系统,可帮助开发人员轻松创建GUI智能硬件产品。

这是官方公众号里的:

1月20号,RT-Thread 瑞萨电子共同举办 智能家居网络开发:RA6M3 HMI Board 以太网+GUI技术实践线下培训。本期培训, 开发者将了解以太网在嵌入式行业的应用,上手LVGL GUI图形界面开发,

从0到1的去学习如何进行智能家居网络开发。同时我们还特设现场交流环节,RT-Thread及瑞萨电子资深技术工程师将现场与开发者交流、答疑解惑。

环境准备

●电脑(需要带网口/自备带网口的拓展坞)

好像我的轻薄本不太行,要看看之前的装备了

●Win10/11 系统

开发工具

●RT-Thread Studio/Keil MDK5(固件开发、编译)

R T − T h r e a d S t u d i o 开发工具 \textcolor{#4183c4}{RT-Thread Studio开发工具}RTThreadStudio开发工具

S q u a r e L i n e S t u d i o 图形工具 \textcolor{#4183c4}{SquareLine Studio图形工具}SquareLineStudio图形工具

资料链接

●RT-Thread Studio下载链接:

RT-Thread Studio下载链接

●SquareLine Studio下载链接:

SquareLine Studio 下载链接

●MQTTX 下载链接: (https://packages.emqx.net/MQTTX/v1.9.6/MQTTX-Setup-1.9.6-x64.exe

MQTTX官网

其他的我先去看看:

安装好RT-Thread Studio 后我们需要安装HMI-Board的开发板支持包:

接下来安装烧写工具:

确认工具链5.4.1版本已安装(没安装请按照下图点击后安装):


HMI-Board 以太网数据监视器

Why Rt-Thread

  • 标准
  • Nano
  • smart

标准:

MQTT

GUI

LVGL 嵌入式图形库

Squareline

现场实践中……

HMI-Board以太网数据监视器

开发工具

●RT-Thread Studio/Keil MDK5(固件开发、编译)

●SquareLine Studio(LVGL UI设计工具)

资料链接

●RT-Thread Studio下载链接:

https://download_redirect.rt-thread.org/download/studio/RT-Thread_Studio_2.2.7-setup-x86_64.exe

●SquareLine Studio下载链接:https://static.squareline.io/downloads/SquareLine_Studio_Windows_v1_3_2.zip

●MQTTX 下载链接:

https://packages.emqx.net/MQTTX/v1.9.6/MQTTX-Setup-1.9.6-x64.exe

●项目代码链接:

https://gitee.com/Rbb666/hmi-board-eth-monitor

实践环节一:以太网外设的使用

安装好RT-Thread Studio 后我们需要安装HMI-Board的开发板支持包:

接下来安装烧写工具:

创建 HMI-Board 模板工程:

在 RT-Thread Setting 中的Hardware中使能 Ethernet (以太网)外设:

然后ctrl+s 保存配置到工程,接下来点击编译选项进行工程的编译:

最后点击下载选项,烧录固件到开发板中:

电脑端设置

1.打开控制面板

2.进入:控制面板→网络和 Internet→网络和共享中心

3.选择当前电脑连接的wi-fi

4.选择属性,点击允许其他网络用户通过Internet连接

5.!!!复位下开发板,然后进行下面步骤 !!!

查看网络

烧录好固件后,打开串口终端,可以输入ifconfig命令查看是否获取到IP地址。

获取到IP地址后,可以输入 ping www.baidu.com 测试网络是否可以用。

实践环节二:MQTT 软件包的使用

基于刚刚创建好的示例工程:

在 RT-Thread Setting 中搜索 Kawaii-mqtt 软件包,并使能mqtt test功能,

然后ctrl+s 拉取软件包到工程内:

示例代码:

将下面代码粘贴覆盖 packages/kawaii-mqtt-latest/test/test.c

实在不行是可以手动拖的。

#include <stdio.h>
#include <stdint.h>
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#include "mqttclient.h"
static void sub_topic_handle1(void* client, message_data_t* msg)
{
    (void) client;
    KAWAII_MQTT_LOG_I("-----------------------------------------------------------------------------------");
    KAWAII_MQTT_LOG_I("%s:%d %s()...\ntopic: %s\nmessage:%s", __FILE__, __LINE__, __FUNCTION__, msg->topic_name, (char*)msg->message->payload);
    KAWAII_MQTT_LOG_I("-----------------------------------------------------------------------------------");
}
static int mqtt_publish_handle1(mqtt_client_t *client)
{
    mqtt_message_t msg;
    memset(&msg, 0, sizeof(msg));
    msg.qos = QOS0;
    msg.payload = (void *)"this is a kawaii mqtt test ...";
    return mqtt_publish(client, "pub5323", &msg);
}
static char cid[64] = { 0 };
static void kawaii_mqtt_demo(void *parameter)
{
    mqtt_client_t *client = NULL;
    
    rt_thread_delay(6000);
    
    mqtt_log_init();
    client = mqtt_lease();
    rt_snprintf(cid, sizeof(cid), "rtthread-5323", rt_tick_get());
    mqtt_set_host(client, "broker.emqx.io");
    mqtt_set_port(client, "1883");
    mqtt_set_user_name(client, "RT-Thread");
    mqtt_set_password(client, "012345678");
    mqtt_set_client_id(client, cid);
    mqtt_set_clean_session(client, 1);
    KAWAII_MQTT_LOG_I("The ID of the Kawaii client is: %s ",cid);
    mqtt_connect(client);
    
    mqtt_subscribe(client, "sub5323", QOS0, sub_topic_handle1);
    
    while (1) {
        mqtt_publish_handle1(client);
                               
        mqtt_sleep_ms(4 * 1000);
    }
}
int ka_mqtt(void)
{
    rt_thread_t tid_mqtt;
    tid_mqtt = rt_thread_create("kawaii_demo", kawaii_mqtt_demo, RT_NULL, 2048, 17, 10);
    if (tid_mqtt == RT_NULL) {
        return -RT_ERROR;
    }
    rt_thread_startup(tid_mqtt);
    return RT_EOK;
}
MSH_CMD_EXPORT(ka_mqtt, Kawaii MQTT client test program);

编译,烧录固件到开发板中,使用 ifconfig 命令查看是否获取到IP地址:

输入 ka_mqtt 命令,等待连接MQTT服务器成功:

上位机软件配置

安装软件

安装MQTTX-Setup-1.9.6-x64.exe 软件

导入配置

打开MQTTX软件,按照下图选择导入tools/mqtt_tool 目录下的:RT-Threads.json 文件

注意:其中Client ID需要修改为和其他人不同的数值,需要点击右侧的图标

注意:订阅和发布的topic需要和开发板上的topic保持一致(sub/pub+手机号后四位)

{

“temp”: 23,

“humi”: 20,

“lux”: 120

}

使用MQTT工具向开发板订阅的Topic发送数据:

开发板串口终端接收到此消息,并打印:

实践环节三:LVGL 以太网数据监视器

导入工程有以下两种方式,请任选其一即可(推荐方式一):

方式一:使用RT-Thread Studio

  • 1、打开RT-Thread Studio 选择导入:
  • 2、选择导入RT-Thread Studio项目到工作空间
  • 3、选择fimeware目录下进行导入
  • 4、点击编译按钮,等待编译完成
  • 5、烧录固件

方式二:使用Keil MDK5

  • 1、双击project.uvprojx 文件打开项目
  • 2、点击编译按钮,等待编译完成
  • 3、点击下载按钮进行固件的烧录

Demo使用介绍

克隆该https://gitee.com/Rbb666/hmi-board-eth-monitor仓库,进行

实践环节四:使用Squareline Studio开发UI

创建LVGL工程,配置如下:

UI项目资源导出设置:

选择ui文件导出路径:

修改以下选项为 lvgl.h

导出UI文件,选择hmi-board-lvgl\board\lvgl\demo\squareline路径:

点击导出,即可导出LVGL文件:

QA

问题1:

解决办法:

node-red 可视化界面(选做)

Node-RED是一个物联网编程工具,它以新颖和有趣的方式,将硬件设备、应用接口和在线服务连接到一起。

它不仅提供了一个基于浏览器的编程环境和丰富的节点类型,使流程的创建变得非常容易,而且还为流程的运行提供了运行环境,实现了一键部署的能力。

安装node-red

Windows 环境:

1、安装nodejs服务:

安装tools/node-red 目录下的node-v18.18.1-x64.msi软件。

2、安装node-red服务:打开powershell,输入以下命令

npm install -g --unsafe-perm node-red

3、在终端输入node-red,打开服务

4、打开http://127.0.0.1:1880/ 网址,即可进入node-red界面

5、进入右上角的节点管理

6、安装插件:控制板中的搜索框中输入dashboard,安装对应插件:

导入配置

导入tools/node-red 目录下的flows.json文件:

进行节点的导入:

导入成功后见下图:

使用方式

配置订阅和发布的topic:

全部配置好后,点击右上角的部署:

在dashboard界面点击可以进入web界面:

或者进入网址:http://127.0.0.1:1880/ui/

Deubg窗口:

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
18天前
|
SQL 安全 算法
网络安全与信息安全:防御前线的关键技术与意识
【4月更文挑战第3天】在数字化时代,网络安全与信息安全已成为维护信息完整性、确保数据私密性和保障系统可用性的基石。本文深入探讨了网络安全漏洞的概念、加密技术的应用以及提升安全意识的重要性,旨在为读者提供全面的网络安全知识框架,以应对日益复杂的网络威胁。
|
11天前
|
数据采集 大数据 数据安全/隐私保护
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
本文探讨了使用Perl和RobotRules库在遵循robots.txt规则下抓取小红书数据的方法。通过分析小红书的robots.txt文件,配合亿牛云爬虫代理隐藏真实IP,以及实现多线程抓取,提高了数据采集效率。示例代码展示了如何创建一个尊重网站规则的数据下载器,并强调了代理IP稳定性和抓取频率控制的重要性。
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
|
1天前
|
SQL 安全 算法
网络安全与信息安全:攻防之间的技术博弈
【4月更文挑战第20天】在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要屏障。本文深入探讨了网络安全漏洞的成因、加密技术的进展以及提升安全意识的必要性,旨在为读者提供全面的网络安全知识框架,同时分享最新的防御策略和技术手段。通过对网络攻防技术的分析,本文揭示了安全防御的复杂性,并强调了持续教育和技术创新在网络安全领域的重要性。
12 6
|
2天前
|
人工智能 监控 安全
构筑安全之盾:云计算环境下的网络安全策略与实践
【4月更文挑战第19天】 在数字化转型的浪潮中,云计算已成为企业IT架构的核心组成部分。然而,随着云服务使用的普及化,网络安全问题亦变得日益复杂和挑战性。本文将深入探讨如何在云计算环境中实施有效的网络安全策略,保障数据的安全性和完整性。我们将从云服务模型出发,分析不同服务模型下的安全威胁,并提出相应的防护措施。文章还将讨论信息安全管理的最佳实践,包括加密技术、身份验证、访问控制以及安全监控等方面,旨在为企业提供一套全面的云计算安全防护框架。
|
3天前
|
存储 监控 安全
网络安全与信息安全:防御前线的关键技术与意识
【4月更文挑战第18天】在数字化时代,数据成为了新的货币,而网络安全则是保护这些宝贵资产不受威胁的盾牌。本文深入探讨了网络安全的核心议题—漏洞管理、加密技术以及安全意识的重要性。通过分析当前网络环境中普遍存在的安全挑战,我们阐述了如何通过持续监控、定期更新和强化员工培训来构建一个更加坚固的防线。
|
3天前
|
人工智能 搜索推荐 物联网
未来智能家居技术的前沿探索
传统的智能家居技术已经成为现代生活的一部分,但随着科技的不断发展,未来智能家居将迎来更多的创新和变革。本文将探讨未来智能家居技术的前沿发展方向,包括人工智能、物联网、可穿戴设备等方面的应用,以及它们对我们生活的影响和可能带来的变革。
6 0
|
4天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
6天前
|
监控 安全 网络安全
云端防御:云计算环境中的网络安全策略与实践
【4月更文挑战第15天】 在数字化转型的时代,云计算已成为企业运营不可或缺的技术支撑。然而,随着云服务模式的广泛采纳,网络安全挑战亦随之而来。本文深入探讨了云计算环境下的安全威胁,分析了云服务模型对安全策略的影响,并提出了一系列创新的网络安全防护措施。通过研究最新的加密技术、访问控制机制和持续监控方法,文章旨在为企业提供一个综合性的网络安全框架,以确保其云基础设施和数据的安全性和完整性。
23 8
|
11天前
|
存储 安全 网络安全
未来云计算与网络安全:技术创新与挑战
随着数字化时代的来临,云计算与网络安全成为了当今科技领域的焦点。本文从技术创新和挑战两个方面探讨了未来云计算与网络安全的发展趋势。在技术创新方面,人工智能、区块链和量子计算等新兴技术将为云计算和网络安全带来前所未有的发展机遇;而在挑战方面,隐私保护、数据泄露和网络攻击等问题也将不断考验着技术研究者和行业从业者的智慧和勇气。未来,只有不断创新,同时加强安全防护,才能实现云计算与网络安全的良性发展。
13 1
|
12天前
|
传感器 监控 安全

热门文章

最新文章