首页 > 其他分享 >【RA6M3 HMI Board线下培训笔记】以太网+GUI技术实践篇-速通版

【RA6M3 HMI Board线下培训笔记】以太网+GUI技术实践篇-速通版

时间:2024-01-24 19:22:24浏览次数:37  
标签:RT RA6M3 实践 mqtt client HMI GUI 以太网

@

目录

0.环境准备

1.软件

2.硬件

  • RA6M3 HMI Board板子
  • 一根网线

screenshot_e30d3fe061f18c63a93cfe2ac1ba73d.jpg

3.示例文档和代码

以太网+GUI技术实践技术路线图

以太网+GUI技术实践.jpg

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

按照“以太网+GUI技术实践文档”一步一步操作就行。
主要步骤
1.创建HMI-Board模板工程。
2.在RT-Thread Studio的设置中使能以太网(Ethernet)外设。配置完要保存(ctrl+s)
3.保存配置并进行工程编译。
4.下载固件到开发板中。
5.进行电脑端网络设置。
6.检查网络连接。

电脑端设置注意
1.如果是台式机或笔记本插网线联网,接入开发板的网络可能回不稳定
这时请设置一下开发板那个网线的ip地址
开发板的网络设置.png
2.如果在家庭网络连接中没有以太网选项,请按照以下步骤操作:

  • 将电脑连接到手机热点。
  • 启用电脑的移动热点。
  • 返回WLAN属性界面,此时应该显示以太网选项。

查看网络
1.复位以后输入ifconfig查看是否获取到IP地址
2.成功获取到IP地址,可以输入"ping www.baidu.com"命令测试网络是否正常工作
screenshot_image.png

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

按照“以太网+GUI技术实践文档”一步一步操作就行。
1.在示例工程中搜索 Kawaii-mqtt 软件包并使能 mqtt test 功能,然后拉取软件包到工程内,并编译、烧录固件到开发板中。
客户端代码设置用于配置后面的mqtt连接,但当你导入RT-Threads.json文件其实里面已经给配置好了。如果下次自己要改需要在这里改动。

    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);

2.使用 ifconfig 命令查看是否获取到 IP 地址,并输入 ka_mqtt 命令等待连接 MQTT 服务器成功。

screenshot_image.png

3.安装 MQTTX-Setup-1.9.6-x64.exe 软件并导入配置。打开 MQTTX 软件,选择导入 tools/mqtt_tool 目录下的 RT-Threads.json 文件。注意,Client ID 需要修改为和其他人不同的数值,需要点击右侧的图标。
-注意:RT-Threads.json 文件是在hmi-board-eth-monitor工程项目下:hmi-board-eth-monitor\tools\mqtt_tool

  • 1.连接
    screenshot_image.png

4.在订阅和发布的 topic 上,需要和开发板上的 topic 保持一致(sub/pub+手机号后四位)。使用 MQTT 工具向开发板订阅的 Topic 发送数据,并在开发板串口终端接收该消息并打印。

  • 1.订阅
    mqtt订阅函数:mqtt_subscribe(client, "sub1332", QOS0, sub_topic_handle1)
    发送下面数据
    screenshot_image.png
    {
    "temp": 640,
    "humi": 30,
    "lux": 120
    }
    串口会接收到数据
    screenshot_image.png
  • 2.订阅开发板发送的数据
    mqtt订阅函数:mqtt_publish(client, "pub1332", &msg)
    函数调用 每4s发送一个数据
while (1)
{
        mqtt_publish_handle1(client);
        mqtt_sleep_ms(4 * 1000);
}

screenshot_image.png

上面的提到代码都在文件:packages/kawaii-mqtt-latest/test/test.c

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);

3.实践环节三:LVGL 以太网数据监视器(比较综合的项目)

使用的工程文件是:hmi-board-eth-monitor
使用方式一: RT-Thread Studio 导入工程,按照“以太网+GUI技术实践文档”一步一步操作就行。
导入项目,编译项目,下载项目。
下载时间有点长:执行完毕, 耗时:1124951ms.
导入开发板界面

screenshot_57ab675fe1f486f8a8a787ab72d45db.jpg
配置订阅信息
screenshot_01ec5af8e4eb56de460ee2ff795d72d.jpg
设置温度报警信息
screenshot_image.png
配置完成界面
screenshot_b51346d5d54a9ec5456f268a3eb6a6a.jpg
进行测试:
测试数据
{
"temp": 640,
"humi": 30,
"lux": 120
}
发送下面数据,温度会报警(设置20-40的温度区间,超出会报警)

screenshot_image.png

screenshot_b17f0e62e9d7c6f9028df22e2178f64.jpg
可以在Debug里看传过来的数据

screenshot_image.png

注意:如果出现下面问题

screenshot_image.png

解决方法:

screenshot_image.png

screenshot_image.png

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

使用的工程文件是:hmi-board-lvgl
按照“以太网+GUI技术实践文档”一步一步操作就行。
主要步骤
1.导入hmi-board-lvgl工程文件。
2.在Squareline Studio软件中创建LVGL工程,并且配置界面大小,配置好后得到和开发板界面大小相同的界面
screenshot_image.png
3.在资源导出设置中,选择要导出的 UI 文件的路径。
4.修改相关选项为 "lvgl.h",确保生成的代码与 LVGL 库的版本兼容。
5.导出 UI 文件时,选择 "hmi-board-lvgl\board\lvgl\demo\squareline" 路径作为导出目录。
6.点击导出按钮,等待 Squareline Studio 完成 LVGL 文件的导出过程。

screenshot_image.png
这里可以设置控件事件,类似qt或C#

screenshot_image.png

总结

在四个实践和挑战环节中,学习了如何使用mqtt协议进行消息传递、使用LVGL开发GUI界面、使用以太网和tcp协议实现网络通信。
1.学习了如何使用mqtt协议进行消息传递。mqtt协议是一种基于发布/订阅模式的轻量级通信协议,适用于物联网设备之间的消息传递。通过使用mqtt协议,能够实现设备之间的实时通信,并保证通信的安全可靠。

2.使用LVGL开发了GUI界面。LVGL是一款轻量级的图形库,适用于嵌入式系统的GUI开发。通过使用LVGL提供的函数和API,能够方便地绘制图形元素、添加交互功能、设置样式等,从而创建出美观且易用的用户界面。

3.在第三个实践环节中,学习了如何使用以太网和mqtt协议实现网络通信。通过使用以太网接口和mqtt协议栈,能够实现设备之间的数据传输。这为物联网设备的远程控制和监测提供了基础支持。

这次以太网+GUI技术实践线下培训对我的技术能力和实践经验有了很大的提升。掌握了重要的开发技术和工具,为未来的物联网项目开发打下了坚实的基础。

我想向RT-Thread实践老师、现场工作人员和组织者表示感谢。感谢你们的辛勤付出和耐心指导,让我们能够顺利完成这次以太网+GUI技术实践线下培训。同时,也要感谢瑞萨电子为我们提供了优秀的硬件设备和场地支持,为我们的学习提供了保障。这次实践培训不仅让我们学到了很多知识和技能,也增强了我们的团队合作和解决问题的能力。再次感谢大家的付出和支持!

[RT-Thread上文档详细介绍的链接]

(https://club.rt-thread.org/ask/article/e1a8dc4862d4711a.html)

标签:RT,RA6M3,实践,mqtt,client,HMI,GUI,以太网
From: https://www.cnblogs.com/mrxhcom/p/17985678

相关文章

  • Eggplant—HMI自动化测试软件
    产品概述    Eggplant是英国TestPlant公司推出的创新性自动化测试工具。通过VNC或RDP通讯技术远程桌面连接被测对象,基于图像和文字识别算法进行对象定位,进而驱动和确认被测HMI设备的响应,能够实现自动化的HMI操作测试,较大提高HMI的功能测试效率。对于车机车辆网、T-BOX等功......
  • 可扩展、CY8C4148AZAS595、CY8C4148AZAS568、CY8C4148AZAS558支持更低的成本HMI应用,BT
    一、PSoC™Automotive4100SMaxMCU 1、说明PSoC4100SMax采用CAPSENSE技术,拥有7x7mm²、10x10mm²和14x14mm²三种封装尺寸,支持工业控制、汽车人机交互(HMI)、智能家居自动化及大型家用电器,如机器人、电感式传感器、洗衣机、冰箱、空调、智能温控器、打印机等。P......
  • TTE时间触发以太网交换机测试方法
    在本世纪初,TTE最早是由维也纳科技大学HermannKopetz赫尔曼·科佩茨教授等人提出来的,在国际上比较知名的TTE开发机构主要是以奥地利的TTTech公司为主,尔曼·科佩茨教授是该公司的创始人之一,这家公司是将教授的理论进行了产业化应用和推广,其中,开发的关于TTE网络产品包括:TTE交换机、......
  • 模拟适配器设计方案:360-基于10G以太网的模拟适配器
     基于10G以太网的模拟适配器一、产品概述   基于10G以太网的模拟适配器是一款分布式高速数据采集系统,实现多路AD的数据采集,并通过10G以太网光纤远距离传输到存储计算服务器,计算控制指令能通过光纤返回给数据卡进行IO信号控制。产品基于10G太网络,可迅......
  • 串口服务器485至以太网转换技术指南
    在现代工业和网络通信领域,串口服务器485至以太网转换技术扮演着至关重要的角色。本文旨在介绍这一技术的关键点和实际应用.串口服务器与RS-485接口串口服务器是一种网络设备,用于将串行通信(如RS-485)转换为以太网通信。RS-485接口是一种广泛应用的串行通信标准,它支持高速、远距离的多......
  • 组态王与S7-1200PLC之间 Profinet无线以太网通信
    组态王与S7-1200PLC之间想要搭建Profinet无线以太网通信,需要用到以下设备:●西门子PLC型号:S7-1200×2台●上位机:组态王6.55×1台●无线通讯终端:DTD418MB×3块●主从关系:1主2从●通讯接口:RJ45接口●供电:12-24VDC通讯搭建时,用户无需更改网络参数和原有程序,也不必了解协议......
  • 【以太网交换机介绍】
    (文章目录)前言以太网交换机不仅提高了网络的数据处理能力,还优化了网络流量的管理。一、以太网交换机是什么?以太网交换机,简称为交换机,是一种关键的网络硬件设备,用于连接多个网络设备,如计算机、打印机和路由器,构成一个网络。它在局域网(LAN)中,负责接收来自连接设备的数据包,并根据......
  • 组态软件与西门子plc之间以太网无线连接
    在实际系统中,车间里分布多台PLC,需要用上位机软件集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候,如果布线的话,工程量较大且不美观,这种情况下比较适合采用无线通信方式。本方案以组态王和2台西门子S7-1200为例,介绍组态王与多台PLC的无线Profinet协议通信实现......
  • 以太网基础知识
    以太网以太网是一种为多台计算机能够彼此自由和廉价地相互通信而设计的通信技术以太网原型-网线以太网最初是通过一根网线连接的,还有一个收发器设备是用来连接不同网线之间信号的。这时的以太网发送的网络包都会被这条网线上的设备接受到,通过携带mac头部也就是地址,计算机会判......
  • 工业以太网交换机的出色优势是什么?
    网络交换机可以分为商用网络交换机和工业以太网交换机两种类别。就其灵活性和抗干扰性而言,工业交换机和商用交换机之间存在着显著差异,工业交换机的功能更加实用。工业以太网和商业网络在数据链路层、网络层和协议层等方面基本上没有本质区别。工业以太网在解决通信实时性、网络安全......