RT-Thread线下培训实例分享:基于i.MX RT1050的云接入

我们做技术的不应该只局限于技术的学习,更应该多出去走走看看。上周六(10月26日)去参加了一次RT-Thread的线下培训(免费的),这也是我第一次参加这样子的活动,现场氛围挺好的:

培训中有一项动手实践环节,就是使用NXP的i.MX RT1050EVK开发板运行基础网络用例及IOT物联网云用例。

整个实验中并不需要动手写代码,只需简单地进行一些工程配置把一些已有的“轮子”拿来用就可以完成这个实验。

虽说这次实验没有触及代码层面的东西,但是这让我们很深刻的体会到了使用RT-Thread平台来开发给我们带来的便利。

RT-Thread源码目录介绍

RT-Thread源码结构大致如下

rt-thread├───bsp // 板级支持包├───components // 组件代码├───documentation // 一些说明文档├───examples // 一些例子 ├───include // 内核头文件├───libcpu // 各类芯片的接口文件├───src // 内核的源文件└───tools // 一些工具

以下强行打个比喻

。根目录rt-thread好比一个资源丰富的汽车及其零件库

bsp目录就是这里所说的汽车库中,这里面已经造好了市面上常见的品牌的车的模板,供给制造或者改造汽车的我们做参考、使用:

components目录就是零件库,这里面提供了很多公用的、丰富的零件及轮子,给我们造车提供了很多的便利性:

documentation目录是这个汽车及其零件库的一些说明:

src、include目录是这个汽车库中所有车的车架:

有了这个车架之后才能在车架上添加汽车零部件去造车。也就是说这是汽车及汽车零件库最核心的东西,没有这一块也就没有rt-thread。

examples目录里放着汽车车架及零件的使用例子:

libcpu是各种品牌车独有的核心零件,要造哪一类车就选择特定的核心零件:

tools是管理这个汽车及其零件库的一些工具:

除了这些,其实还有一个高级的零件包package不断给rt-thread这个汽车及其零件库供货,package零件包是由一些造车爱好者造出来的,并且这个package零件包会不断增多,这会给我们造车及改造车提供了更多的可能性与便利性。

i.MX RT1050EVK云接入

本实验使用RW007  wifi模块连接Onenet平台,并把温度信息上传到Onenet平台上。(以下内容大多来自培训资料及官网资料)

1、注册Onenet账号并新建一个产品及设备:

(1)  注册账号并登陆

https://open.iot.10086.cn

进入开发者中心建立设备和产品 :

(2)选择 全部产品 -> 多协议接入

(3)  选择MQTT(旧版),并点击添加产品,创建新产品 ,  接着创建设备 :

(4)  填写新设备信息,其中的鉴权信息建议填写时间 ,  比如

201910191000

记录下如下信息备用:

  • 设备ID
  • 设备鉴权信息
  • 设备的APIKey
  • 产品ID
  • 产品APIKey

2、从bsp中找到汽车:imxrt1052-nxp-evk

H:\rt-thread\bsp\imxrt\imxrt1052-nxp-evk

使用menuconfig工具来开始改装我们这这辆汽车,

因为RTT是个可裁剪的,可以通过这个界面来进行配置,需要用到的就添加,不需要用到的也可以删掉。比如这里用到RW007模块,需要设置WiFi连接的信息:

用到Onenet软件包,需要设置上面备用的信息:

其它模块也是这么设置,设置完保存退出即可。此时软件包已被标记选中,但是还没有下载到本地,所以还无法使用。

此时输入:pkgs --update,软件包就会自动下载。同样的,如果在menuconfig界面取消选择软件包,也要输入该命令,本地的软件包才会被删除。

随着RTT的不断发展壮大,软件包package会越来越多,本地看到 menuconfig 中的软件包列表可能会与服务器 不同步,此时我们使用pkgs --upgrate来同步。

此时需要用的源码已经准备好了,我们可以在命令行使用scons命令来编译,也可以使用MDK或者IAR来编译,但前提是要更新相关工程,相关命令为:

scons --target=iarscons --target=mdk4scons --target=mdk5

如配置前与配置后的mdk5的工程如下:

可见,menuconfig工具给我们提供了很多便利,可以很方便地建立我们需要的工程。

编译完后运行之后。 运行onenet_mqtt_init命令后,可以看到连接log信息 :

运行onenet_upload_cycle命令,板卡端将会模拟周期上报温度信息,如:

可见,以上实验中我们仅进行了一些简单的配置,即可与Onenet平台对接,能够达到这样快速开发是因为rt-thread这个汽车及其零件库给我们准备了很多可以直接使用的零件、轮子,我们可以利用这些轮子快速地进行我们的应用开发。

虽然说已经有很多可用的轮子供给我们使用了,但是我们还是需要多练习、多使用,理清各层的关系才能用好这些轮子。

(0)

相关推荐