【RA6M3 HMI Board线下培训笔记】以太网+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技术实践文档”一步一步操作就行。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值