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=iar
scons --target=mdk4
scons --target=mdk5
如配置前与配置后的mdk5的工程如下:
可见,menuconfig工具给我们提供了很多便利,可以很方便地建立我们需要的工程。
编译完后运行之后。 运行onenet_mqtt_init命令后,可以看到连接log信息 :
运行onenet_upload_cycle命令,板卡端将会模拟周期上报温度信息,如:
可见,以上实验中我们仅进行了一些简单的配置,即可与Onenet平台对接,能够达到这样快速开发是因为rt-thread这个汽车及其零件库
给我们准备了很多可以直接使用的零件、轮子,我们可以利用这些轮子快速地进行我们的应用开发。
虽然说已经有很多可用的轮子供给我们使用了,但是我们还是需要多练习、多使用,理清各层的关系才能用好这些轮子。