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

本文详细介绍了在RT-Thread平台上,通过以太网外设、MQTT软件包和LVGL图形库进行实践,包括环境准备、软件包安装、硬件连接以及实战教程。涉及从基础的以太网配置到综合的LVGL数据监视器项目,展示了物联网开发的完整流程。

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)

工业物联网是将具有监控能力的给中采集作用传感器有控制器,结合移动信、智能分析等先进技术不断融入到工业生产过程的各个阶段,从而提升制造效率,提高产品质量,降低生产成本,最终目的是实现将传统工业提生到智能化阶段。工业物联网的应用,具有实时性高、自动化程度高、安全性高、信息互联性强等特点。 2017年我国工业物联规模达到2400亿元,在整个物联网产业中的占比约为19.8%。预计在国家相关政策推动及应用需求带动下,到2020年,工业物联在整个物联网产业中的占比将达到25%,规模将突破4400亿元。据GE发布的《工业互联网:打破智慧与机器的边界》,在未来15年内,几个关键的工业领域,1%的效率提高将带来巨大的收益。据安信证券计算,工业互联网在工业领域提升1%的效率相当于给我国带来2980亿元的经济增值。 (资料来源于:GE发布的《工业互联网:打破智慧与机器的边界》) 大联大世平集团,针对目前 工业物联网 市场,推出基于Renesas MCU RA6M3的工业物联网方案,该方案具有HMI、支持以太网传输、工业级传感数据采集等功能。本方案组成包含 MCU Board & Sensor Board。方案硬件设计说明1. MCU Board 本工业物联网应用方案的主控芯片采用的是 Renesas MCU RA6M3,具有 Cortex-M4 架构, 120MHz,具有低功耗、高性能的 特点,此芯片支持HMI & 以太网,内置 JEPG Codec编码解码器,2D Drawing Engine,支持加密功能,其他详细功能如下图所示 除此之外,MCU Board 还提供以太网HMI、Arduino 、PMOD 接口,详细位置示意如下图 2. Sensor Board Pathfinder Sensor Board 集成了 OLED 显示屏、振动马达、RGB 彩灯、UV Sensor、H&T 温湿度 Sensor 、Light Sensor等功能,支持多种数据采集。与MCU Board 过 Arduino接口连接。 方案原理图设计: 主控芯片原理图(部分) HMI 屏幕模式选择原理图(部分) 方案 Layout 设计: 方案采用两层板设计,如下面图片所示 TOP 层 Bottom 层 方案软件设计说明 e2studio 是 Renesas MCU 基于 Eclipse 的集成开发环境。 除 Eclipse 自带强大的代码编辑器外,e2studio 还提供了丰富的扩展功能。e2studio涵盖了全部所有开发过程,从示例代码的下载到调试。而瑞萨电子的 RA 灵活软件包 Flexible Software Package ( FSP ) 提供了一种快用的方法,以使用瑞萨电子 RA 微控制器( MCU )系列构建安全的连接的物联网( IoT )设备。FSP 提供了可用于生产环境的外围设备驱动程序,Amazon FreeRTOS和中间件堆栈,以利用 FSP 生态系统。 e2studio开发环境下载与安装(部分) Step1. 登录 Renesas 官网:https://www2.renesas.cn/cn/zh/,选择“产品→RA MCU” Step2. 进入RA介绍页面后点击选择灵活软件包(FSP) Step3. 点击“下载最新本”如下图: Step4. 点击下载包含的所有文件,包括 e2studio安装包以及FSP 软件包 Step5. 打开.exe安装程序,依据指引安装。安装完成,运行e2studio,并可查看FSP 用户手册,点击“OK”完成安装并运行,至此,安装结束,并可开始开发软件 场景应用图产品实体图展示板照片方案方块图演示板正面图片( MCU Board )演示板正面图片( Sensor Board )核心技术优势1. 具备 HMI 应用功能,支持TFT-LCD 屏幕、内置 JPEG Codec 编码解码器、2D Drawing Engine 2. 具备以太网接口功能 3. 支持加密功能如:AES (128/192/256)、SHA1/SHA224/SHA2563DES/ARC4 4. 64KB DataFlash 用作资料储存(类似 EEPROM) 5. 最多有 21 PIN 支持 5V 电压输入输出方案规格1. 处理器:ARM Cortex M4 32位处理器,(R7FA6M3AH2CFB LQFP-144) 2. 工作温度:-40℃ 至 + 85℃ 3. 屏幕规格:2.4寸电阻式 TFT-LCD 屏幕 4. 屏幕分辨率:240 × 320 5. 支持接口:以太网接口、TFT-LCD 屏幕接口、Arduino 接口、PMOD 接口 6. 烧录方式:J-Link SWD 接口 7. 开发环境:Rene
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值