兰州网站建设哪家好网站图片尺寸
web/
2025/9/27 13:02:22/
文章来源:
兰州网站建设哪家好,网站图片尺寸,怎么添加wordpress模板,中国化工网网站建设建议【RA6M3 HMI Board线下培训笔记】 RT Thread实现物联网应用 ETHMQTTLVGLRTOS 实现温湿度监测
1. 序言
随着物联网技术的飞速发展#xff0c;越来越多的生活场景变得越来越智能#xff0c;网联化、智能化越来越成为主旋律。
值此之际#xff0c;RT-Thread 和 瑞萨电子共同…【RA6M3 HMI Board线下培训笔记】 RT Thread实现物联网应用 ETHMQTTLVGLRTOS 实现温湿度监测
1. 序言
随着物联网技术的飞速发展越来越多的生活场景变得越来越智能网联化、智能化越来越成为主旋律。
值此之际RT-Thread 和 瑞萨电子共同举办 智能家居网络开发RA6M3 HMI Board 以太网GUI技术实践 线下培训。
这次培训融合了很多物联网相关的知识以太网ETHMQTT协议LVGL图像化界面和RTOS多任务开发RT Thread Studio软件和生态高质量、高复用和高平台性的软件工具链将这四者综合起来让开发者可以快速的上手物联网开发 2. 瑞萨RA6M3芯片Cortex M4内核
下面我们先来介绍MCU瑞萨RA6M3属于RA6系列微控制器这个系列是瑞萨电子推出的高性能微控制器主要针对物联网和工业应用。你想要的详细介绍来啦
核心特点RA6M3使用了Arm Cortex-M4核心这意味着它有着高效的处理能力和低功耗的特点。其最高频率可达200 MHz这在微控制器界就像是“跑车”的性能。内存配置这款芯片拥有高达1MB的闪存和256KB的SRAM。这样的内存配置在处理复杂程序时就能像是在公园散步一样轻松。丰富的外设接口RA6M3支持USB Full-speed和High-speed有CAN接口还支持SDHI、QSPI等。这些接口就像是一座桥让RA6M3能和各种设备“握手”。安全功能安全性也是这款芯片的强项。它有安全加密模块可以保护你的数据不被“偷窥”。低功耗设计在物联网时代设备通常需要长时间运行。RA6M3在这方面做得很好它的低功耗设计可以让设备长时间运行而不“喘气”。图形功能RA6M3还支持2D图形引擎和Capacitive Touch Sensing Unit让你的界面美观又好用。
如下图所示RA系列目前主要有以下四个系列 RA2 系列 – 低功耗基于 Arm Cortex-M23 内核最高频率 60 MHz拥有高达 256 KB 的闪存和 32 KB 的 SRAM。电源电压范围为 1.6 V 到 5.5 V。外设包括全速 USB、CAN、24 位 ∑-△ 模数转换器 (ADC)、16 位数模转换器 (DAC)、电容式触摸感应以及安全功能。RA4 系列 – 高性能和出色的功耗基于支持 TrustZone 的 Arm Cortex-M33F 内核或 Arm Cortex-M4F 内核构建最高频率 100 MHz。高达 1 MB 的闪存和 128 KB 的 SRAM。电压范围为 1.6 V 到 5.5 V。 外设包括电容式触摸感应、段码式 LCD 控制器、全速 USB、CAN、安全功能以及数据转换器和定时 器。RA4W1 系列器件还额外配备了 Bluetooth® 低功耗 (BLE) 5.0。RA6 系列 – 高性能基于支持 TrustZone 的 Arm Cortex-M33F 内核或 Arm Cortex-M4F 内核。最高频 率 240 MHz。高达 2 MB 的闪存和 640 KB 的 SRAM。电压范围为 2.7 V 到 3.6 V。外设包括数据转换 器、定时器、外部存储总线、以太网、全速和高速 USB、CAN、安全功能、电容式触摸感应和用于 TFT 显示的图形 LCD 控制器以及一个 2D 图形引擎。RA6T1 和 RA6T2 系列器件带有用于电机控制 的增强型外设如高分辨率 PWM 定时器或高级模拟模块。
3. 开发板介绍
本次使用的开发板是RT-Thread联合瑞萨推出的高性价比图形评估套件取代传统的HMI主控板硬件一套硬件即可实现HMIIOT控制的全套能力。依托于瑞萨高性能芯片和RT-Thread软件生态HMI Board不仅硬件性能强劲同时软件生态丰富主力开发者快速开发出GUI硬件产品。淘宝链接https://item.taobao.com/item.htm?abbucket6id721524271628ns1skuId5190654114275spma21n57.1.0.0.7427523cJCmd89
开发板硬件配置如下图所示 4. RT Thread Studio介绍
RT-Thread Studio是一个基于RT-Thread操作系统的一站式开发环境。RT-Thread作为一个开源的实时操作系统RTOS在嵌入式领域非常受欢迎。那么RT-Thread Studio具体是什么样的我们一探究竟
一体化的开发环境RT-Thread Studio集成了代码编辑、编译、下载、调试等功能。它就像是嵌入式开发者的“瑞士军刀”应有尽有用起来方便极了。图形化配置这个特点非常吸引人。你可以通过图形化界面来配置你的RT-Thread系统不需要手动去修改复杂的配置文件。这就像是在用积木搭建房子直观又好玩。丰富的软件包支持RT-Thread Studio提供了大量的软件包涵盖了网络、文件系统、图形界面等多个领域。这些软件包就像是加油站为你的项目提供强大的动力。跨平台兼容支持多种操作系统无论你是Windows、Linux还是macOS用户都能使用RT-Thread Studio。这种兼容性就像是“通用翻译器”让不同系统的用户都能愉快交流。仿真和调试功能RT-Thread Studio提供了仿真和调试工具可以让你在还没拿到实际硬件之前就开始软件开发。这就像是先有了“试衣间”再去定制你的“高级定制服装”。开源社区支持由于RT-Thread本身就是开源的RT-Thread Studio也享受着强大的社区支持。这意味着你可以获取丰富的学习资料和社区的帮助就像有一个“智囊团”在身边。
5. 前期准备
上面我们介绍了本次培训的主要应用的软件和硬件下面是我们本次培训所需要的软件按照和参考资料 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 项目代码链接hmi-board-eth-monitor **项目参考教程**https://docs.qq.com/doc/DY0FIWFVuTEpORlNn?login_t1705968438854 **开发工具**RT-Thread Studio/Keil MDK5固件开发、编译SquareLine StudioLVGL UI设计工具 **Demo代码**链接https://pan.baidu.com/s/1XdJvCTmsO8IjTumSQm_R-g 提取码gxlj
6. 实践环节一以太网外设的使用
6.1 安装SDK 软件包瑞萨开发板支持包DAP调试包 6.2 打开RT-Thread Studio创建新的RT-Thread项目 6.3 选择基于开发板选择HMI-Board开发板类型选择模板工程调试器选择板载DAP调试 6.4 在 RT-Thread Setting 中的Hardware中使能 Ethernet 以太网外设 6.5 编译程序和下载 编译成功 下载代码 6.6 设置共享网络 6.7 烧录好固件后打开串口终端可以输入 ifconfig 命令查看是否获取到IP地址。 6.8 获取到IP地址后可以输入 ping www.baidu.com 测试网络是否可以用。 7. 实践环节二MQTT 软件包的使用
7.1 MQTT 简介
要理解MQTT协议首先让我们了解为什么会开发MQTT。在1999年之前石油和天然气行业面临着从油气管道到SCADA系统的数据交换的大问题。石油和天然气行业尤其是油井和管道通常位于非常偏远的地方要从仪器和RTU获取数据到SCADA系统非常困难。为了获取数据我们有诸如串行通信、卫星、低带宽无线电波系统等选项。但由于偏远的位置和网络带宽问题我们无法及时获取数据即使能获取到响应也非常糟糕。因此工程师Andy Stanford-Clerk和Allen Nipper在1999年开发并发明了MQTT以解决所有这些问题。MQTT是一种适用于低成本、低带宽或不稳定连接的协议。现在通过MQTT协议你可以快速有效地从所有偏远地点使用低带宽获取数据。 让我们借助一个简单的日常生活例子来理解MQTT协议。以YouTube为例YouTube的工作原理与MQTT协议类似。比如说它自动化学院的YouTube频道有超过3700万个YouTube频道。因为你订阅了我的YouTube频道所以每当我发布视频时你肯定会在YouTube首页上得到更新。你还会看到更多来自你已订阅频道的视频推荐。因此YouTube是基于发布和订阅机制工作的。我们将通过这个例子来简单理解MQTT概念。MQTT协议或消息队列遥测协议是基于发布和订阅机制工作的。MQTT有一个我们称之为MQTT代理或服务器的东西。MQTT代理是MQTT协议的核心它负责接收所有消息过滤这些消息决定谁对它们感兴趣然后将这些消息发布给所有订阅的客户端。因此你现在看到的是我们的MQTT代理或服务器。
让我们理解使用MQTT协议的好处。MQTT协议的美妙之处在于它支持不可靠的网络它有可靠的消息传递你可以将这些协议扩展到数百万个设备并启用安全功能它轻巧且高效。
7.2 基于实践一的工程在 RT-Thread Setting 中搜索 Kawaii-mqtt 软件包并使能mqtt test功能然后ctrls 拉取软件包到工程内 7.2 将下面代码粘贴覆盖 packages/kawaii-mqtt-latest/test/test.c
#include stdio.h
#include stdint.h
#include rtthread.h
#include rtdevice.h
#include board.h
#include mqttclient.hstatic 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);
7.3 编译烧录固件到开发板中使用 ifconfig 命令查看是否获取到IP地址 7.4 输入 ka_mqtt 命令等待连接MQTT服务器成功 7.5 上位机软件配置安装MQTTX-Setup-1.9.6-x64.exe 软件新建配置按下图进行配置 **注意**订阅和发布的topic需要和开发板上的topic保持一致sub/pub手机号后四位
7.6 更改test.c中的mqtt_subscribe()中的命名和客户端保持一致 7.7 在MQTT中向订阅的topic发送信息 {temp: 23,humi: 20,lux: 120
}7.8 使用MQTT工具向开发板订阅的Topic发送数据
开发板串口终端接收到此消息并打印 8. 实践环节三LVGL 以太网数据监视器
8.1 LVGL介绍
LVGL在2016年左右诞生了。它最初是作为一个简单的GUI库开始的目标是提供轻量级、易于使用的界面解决方案。随着时间的推移LVGL逐渐发展成为一个功能丰富、高度可定制的图形库支持各种显示和输入设备变得越来越流行。
优点:
轻量级: 正如其名LVGL非常适合资源有限的嵌入式系统。易于使用: 它提供了丰富的控件和简单的API让开发者容易上手。高度可定制: 你可以根据自己的需求定制各种界面。跨平台兼容: 支持多种操作系统和硬件平台非常灵活。 8.2 使用Demo代码导入到RT Thread中
1、打开RT-Thread Studio 选择导入 8.3 点击编译按钮等待编译完成下载 8.4 当程序下载到开发板中LVGL设计的UI界面显示在下面的图中按下属的操作即可通过MQTT发送相应的信息到开发板中 9. 实践环节四使用Squareline Studio开发UI
Squareline Studio是一个专门为嵌入式设备设计的用户界面开发工具。它旨在简化嵌入式UI的设计和开发流程。如果你是一名嵌入式开发新手那么使用Squareline Studio来开发UI就像是找到了一把开启嵌入式界面大门的钥匙。下面是一些关于使用Squareline Studio的要点 直观的图形设计界面 Squareline Studio提供了一个直观易用的图形界面你可以通过拖放组件来设计UI就像是在玩拼图一样简单有趣。 组件丰富 它拥有丰富的UI组件比如按钮、滑块、文本框等这就像是你的设计工具箱里面应有尽有。 预览功能 Squareline Studio支持实时预览功能你可以即时看到UI更改的效果。这就像是拥有了一个“魔镜”让你立刻看到变化。 代码生成 设计完成后Squareline Studio可以自动生成C代码这就省去了手动编写代码的麻烦对于新手来说这无疑是一大利好。 自定义样式 它允许你自定义组件的样式包括颜色、字体等这让你的界面不仅功能强大而且美观大方。 跨平台兼容 Squareline Studio生成的代码可以在多种平台上运行无论是ARM、x86还是其他这就像是通用的“翻译器”让你的UI在不同的设备上都能“说同一种语言”。 易于学习 对于新手来说Squareline Studio相对易于学习和上手。它的用户界面直观功能划分清晰就像是有了一位耐心的老师指导你一步步完成设计。
使用Squareline Studio开发UI对于嵌入式开发新手来说是一个既省时又高效的选择。它不仅让UI设计变得简单而且通过自动生成代码大大降低了开发的复杂度。简而言之Squareline Studio就像是嵌入式UI设计的“魔法棒”让原本复杂的过程变得简单有趣
**实践指导可以参考**https://docs.qq.com/doc/DY0FIWFVuTEpORlNn?login_t1705968438854
下图是我在培训时自己的做的UI界面做好的样式可以直接下载到开发板上面 10. 总结
通过上述的动手编程体会到RT-Thread作为一个开源实时操作系统在物联网、MQTT、以太网以及LVGL这些领域的表现可以说是既专业又用户友好。
物联网方面 集成度高RT-Thread提供了完整的物联网协议栈支持包括但不限于M2M、CoAP等。这些协议已经被集成在RT-Thread中对于新手来说这意味着可以直接使用而不需要从头开始开发。文档和社区支持RT-Thread有着详尽的文档和活跃的社区支持对于遇到问题的新手来说这是学习和解决问题的宝贵资源。 MQTT方面 简单的客户端实现RT-Thread内置了MQTT客户端实现对于初学者而言这降低了实现MQTT通信的复杂度。通过简单的API调用新手可以快速搭建起MQTT通信。示例和教程RT-Thread提供了MQTT使用的示例和教程这对于刚接触MQTT的新手非常有帮助可以快速理解并上手。 以太网方面 驱动和网络栈支持RT-Thread为常用的以太网芯片提供了驱动支持并且集成了LwIP网络栈这让新手能够更容易地实现以太网通信。配置简便通过RT-Thread的图形化配置工具新手可以很容易地完成以太网相关的设置无需深入了解复杂的网络配置。 LVGL图形库方面 高度集成RT-Thread对LVGL图形库有很好的支持和集成。LVGL是一个轻量级的图形库非常适合用在资源有限的嵌入式设备上。易于使用的APILVGL提供了易于理解和使用的API对于新手来说这意味着可以更快地开发出漂亮的用户界面。丰富的文档和例程LVGL有着详尽的文档和丰富的示例这对于初学者来说非常重要可以帮助他们快速上手和理解图形界面的开发。
总体来说RT-Thread在物联网、MQTT、以太网和LVGL图形库方面对新手非常友好。它通过提供集成的解决方案、丰富的文档、社区支持以及简单易用的API大大降低了新手入门的门槛。对于刚入门的嵌入式开发者来说使用RT-Thread就像是有了一个全面且易懂的导师让整个学习过程变得更加轻松和愉快。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82778.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!