HMI-Board以太网通过mqtt连接云学习笔记 | 技术集结

频道:消费点评 日期: 浏览:61130

O目录

开发板HMI-Board简单介绍说明

实践Demo操作笔记

使用GUI-Guider-1.5.1-GA画UI实践

GUI-Guider画LVGL UI做mqtt连接Onenet云实践

总结

1

开发板HMI-Boarrd简单介绍说明

此次实践使用开发板HMI-Board即RA6M3,HMI-Board是 RT-Thread 联合瑞萨推出的高性价比图形评估套件,取代传统的 HMI+主控板硬件,一套硬件即可实现 HMI+IoT+控制的全套能力。依托于瑞萨高性能芯片 RA6M3 及 RT-Thread 软件生态,HMI-Board 不仅硬件性能强劲,同时软件生态丰富,助力开发者快速开发出GUI智能硬件产品。

硬件配置:

2M片上flash

640Kb片上SRAM

硬件JPEG解码

2D图形加速

RGB888-LCD控制器

Arduino 接口

Pmod 接口

以太网接口

USB-Device

CAN接口

扬声器,麦克风接口

板载 DAP-Link

c6467650-74c5-11f0-9080-92fbcf53809c.png

单片机本身不带Wi-Fi以及以太网端口,HMI-Board通过SPI外接RW007Wi-Fi模块连接网络,并已有包支持。

硬件原理图上可以看出使用SPI3脚。

c66c821e-74c5-11f0-9080-92fbcf53809c.png

此次使用的云平台为EMQX云服务器。开发板、电脑、云平台关系如图所示,电脑和开发板均属于客户端。

此外MQTT消息的发布者和订阅者都是客户端,服务器只是作为一个中转的存在,将发布者发布的消息进行转发给所有订阅该主题的订阅者;发布者可以发布在其权限之内的所有主题,并且消息发布者可以同时是订阅者,实现了生产者与消费者的脱耦,发布的消息可以同时被多个订阅者订阅。

2

实践Demo操作笔记

1.此次实践使用的win桌面版本Demo,开机首页如下:

c6867d4a-74c5-11f0-9080-92fbcf53809c.png

2. 因我本身没用以太网线,于是在编译代码时打开了Wi-Fi模块的包,注意是SPI3口的Wi-Fi

c6982cde-74c5-11f0-9080-92fbcf53809c.png

3. 代码中打开test工程,修改了原本代码中的密码以及订阅信息如下:

c6ab0b24-74c5-11f0-9080-92fbcf53809c.png

4. 我们在代码中ka_mqtt加入到命令中去,开机起来后可以在命令行输入help看到ka_mqtt的命令:

MSH_CMD_EXPORT(ka_mqtt, Kawaii MQTT client test program);

c6c096d8-74c5-11f0-9080-92fbcf53809c.png

5. 在命令行启动即可,这一点还是很方便的。我们通过打开MQTTX订阅pub9215消息即可看到开发板周期性上报的数据

c6d102ca-74c5-11f0-9080-92fbcf53809c.pngc6db2a84-74c5-11f0-9080-92fbcf53809c.png

6. 开发板通过发布消息到云端服务器,电脑端MQTTX订阅云端消息就可以看到发布数据。反过来电脑端发布,开发板订阅线程也是有收到打印到串口

c6e8ff06-74c5-11f0-9080-92fbcf53809c.pngc6fa0044-74c5-11f0-9080-92fbcf53809c.png

3

使用GUI-Guider-1.5.1-GA

画UI实践

经过前面的demo实践,是时候自己操刀一把了,如下是使用UI工具画UI实践

1. 先跑一下LVGL的Demo试试,于是编译如下空调GUI

c707b3a6-74c5-11f0-9080-92fbcf53809c.png

2. 移植代码到板子中编译下载,看看效果

c7158d14-74c5-11f0-9080-92fbcf53809c.png

4

GUI-Guider画LVGL UI

做mqtt连接Onenet云实践

之前有玩过一下Onenet云,此次试试RT-Thread开发板连onenet云操作。

1. 首先画UI,使用按钮开关打开登录,做滑块切换值,最终效果如下:

c72a9ac4-74c5-11f0-9080-92fbcf53809c.png

下载板子点亮:

c73a0a22-74c5-11f0-9080-92fbcf53809c.png

2. 使用包rw007Wi-Fi包,cjson,LVGL,以及mqtt包。代码如下,在开机后起来连接Wi-Fi,创建LVGL的UI

c755fffc-74c5-11f0-9080-92fbcf53809c.png

3. mqtt的开始函数放在按钮响应事件中

c767cfb6-74c5-11f0-9080-92fbcf53809c.pngc77a528a-74c5-11f0-9080-92fbcf53809c.png

4. 将Onenet云设备密码填入准备登录

c78ba670-74c5-11f0-9080-92fbcf53809c.png

5. 最终登录后订阅消息

c79d6bc6-74c5-11f0-9080-92fbcf53809c.png

6. 后面创建一个子线程用于周期性上报电量数据

c7b24dde-74c5-11f0-9080-92fbcf53809c.png

7. 开机后自动连接我的Wi-Fi,使用ifconfig可以看到了联网成功

c7c535ac-74c5-11f0-9080-92fbcf53809c.png

8. 打开UI上的Onenet按钮开关可以看到连接登录成功,同时周期性发布数据到云端

c7d9758a-74c5-11f0-9080-92fbcf53809c.pngc7edc1b6-74c5-11f0-9080-92fbcf53809c.png

9. 云上后台看到设备登录在线状态

c804797e-74c5-11f0-9080-92fbcf53809c.png

10. 切换到云端数据上看到开开关切换以及电量等数据的刷新,以及终端log提示操作

c813435a-74c5-11f0-9080-92fbcf53809c.pngc8265666-74c5-11f0-9080-92fbcf53809c.png

5

总结

虽然那天天气很冷,活动现场氛围非常热情,让我看到每个开源爱好者的学习激情澎湃。

RT-Thread小师弟以及开发者不吝指导,答疑着每位学习者的疑问,为各位大佬点赞。

在这种氛围下虽说只有一下午时间,但还是学习到很多东西,比如mqtt工具使用,EQMX云,OneNet云,开发板LVGL画UI等。

  • 随机文章
  • 热门文章
  • 热评文章