RTduino物联网应用零基础入门

企业   2024-11-11 11:26   上海  


硬件准备


  • PSoC™6 RTT开发板(物联网专业平台)

    https://item.taobao.com/item.htm?id=851394948290&skuId=5812861127627

  • RTduino传感器扩展板


软件准备


  • RT-Thread Studio

  • MobaXterm(串口工具)


项目实践


RTduino实践列表:

项目1:传感器数据采集实战

  • 任务难度:⭐️⭐️

  • 任务内容:使用RTduino采集气压及温湿度数据并在串口显示

  • 任务目标:顺利完成

项目2:数据UI显示

  • 任务难度:⭐️⭐️⭐️

  • 任务内容:使用RTduino将采集到的传感器数据显示在屏幕上

  • 任务目标:顺利完成

项目3:阿里云物联网应用实战

  • 任务难度:⭐️⭐️⭐️⭐️

  • 任务内容:将采集的传感器数据上传至阿里云物联网云平台

  • 任务目标:尽量完成

1

传感器数据采集实战

在本任务中,我们首先会使用到 BMP280(气压温度传感器)模块跟SHT31(温湿度传感器)模块进行数据采集,采集的数据有3个:温度(采用SHT采集的)、湿度、气压。并通过串口将采集到的数据输出出来。

1.1 RTduino使能

首先我们使能RTduino。打开RT-Thread Settings,然后进入配置页面再点击右方的箭头打开配置菜单

选择 硬件-->板载设备驱动-->使能RTduino(此项仅当该bsp支持RTduino才可开启)

完成这一步以后,Ctrl + S 保存一下并下载软件包。

1.2 数据采集软件包配置

本次会使用到Arduino库软件包:Adafruit BMP280,使能软件包以后,执行Ctrl + S 保存并自动下载软件包。

在使用软件包的时候,我们需要修改一下BMP里面的默认的I2C地址。原本为0x77,修改为0x76

与下载BMP280软件包操作相同,我们通过搜索使能SHT31软件包,然后下载下来。

1.3 SConscript修改

SConscript的作用是选择把哪些文件添加到编译中,为了后续方便我们添加文件,需要修改一下。在所选的工程目录下,找到applications/SConscript 然后将src += ['arduino_main.cpp'] 修改为 src += Glob('*.cpp') 。这样它就能够把我们后续所添加的.cpp文件加入到编译中。

1.4 数据采集线程设计

这一步我们需要创建两个新的线程,一个是用作BMP280来采集气压数据,一个是用作SHT31来采集温湿度数据。

我们在applications文件夹下新建两个文件,分别命名为:BMP_Test.cpp SHT31_Test.cpp 。再创建一个Config.h文件方便我们后续进行配置。然后把下面的代码内容分别粘贴上去。

同时我们分别修改以下文件内容,可点击链接进行下载查看详情:

BMP_Test.cpp:https://club.rt-thread.org/file_download/200c351589730560

SHT_Test.cpp:https://club.rt-thread.org/file_download/f73c4180ee544e7a

Config.h:https://club.rt-thread.org/file_download/4188a59beb11ae0

1.5 实验现象

把文件都添加好后就可以编译下载了,成功运行的话串口会一直输出数据信息。

2

数据UI显示

在本次任务中,我们会使用到拓展板上的SSD1306OLED模块来将BMP与SHT采集到的数据做一个简单的显示。

跟之前下载软件包的步骤相同,我们通过搜索找到并使能软件包,然后用Ctrl + S将软件包下载下来。(记得需要选择Adafruit库的)

2.1 oled驱动配置

我们需要给SSD1306新建一个线程用于显示。同样的我们在applications文件夹下新建一个SSD_Test.cpp文件


然后我们需要在Config.h中把#define DIS_THREAD_ENABLE打开,解除相关注释。

因为厂商生成批次不同,I2C地址可能会有区别。如果SSD1306无法使用的话可以修改一下I2C地址,改为0x3C(默认是0x3D)

修改SSD_Test.cpp(代码下载:https://club.rt-thread.org/file_download/65fffdd9784bbb48

2.2 实验现象

添加完代码后可以编译下载,成功运行我们就可以看到拓展板上的OLED屏幕在不断的刷新数据。

3

阿里云物联网应用实战

在本次任务中,我们会使用到拓展板上的RW007与阿里云物联网平台快速生成一个物联网产品。

3.1 使能RW007

首先我们需要在硬件选项中打开RW007的配置,然后把引脚修改成图中配置。并在SSID处填写WIFI名称(最好不要有中文)(热点的话需要是2.4G频段的),然后在password处填写密码。

然后搜索RW007软件包。它默认帮我们开启了Stm的示例,我们不需要它给的样例,直接选择不使用示例即可,然后把SPI时钟频率调整为10000000。

接下来就是把软件包下载下来,这时候可以进行编译下载,然后可以在用命令wifi join SSID password手动连接wifi。(如果觉得数据输出频繁看不清命令可以在Config.h中把#define NO_USING_DATA_OUTPUT打开,这样就不会持续输出数据了)。

3.2 自动连接wifi

每次都手动输入Wifi有点复杂,我们可以在main.c(文件在此下载:https://club.rt-thread.org/file_download/1b40d8fbad800248)文件中添加自动连接的代码。

3.3 阿里云物联网平台搭建

首先搜索阿里云物联网平台(https://www.aliyun.com/product/iot/iot_instc_public_cn),进入登录注册后点击管理控制台。

然后点击产品,选择创建产品。

在创建面板中填入产品名称(随便起就好了),然后推荐选择自定义品类。

选择设备,新建一个设备。

选择刚刚创建的产品,并且命名设备(随便起名)。

回到刚刚的产品页面,点击刚刚新建的产品,查看产品信息。

再回刚刚新建的设备,同样查看设备信息。

这时候在软件包中搜索Ali-iotkit,然后使能此软件包。并将刚刚记录的参数对应放置上去即可。然后把软件包下载下来。

下完软件包以后,需要修改packages/ali-iotkit/ports/wrapper.c中最下面的那几个虚函数关键字RT_WEAK。因为现在的RTT版本把这个关键字改成了小写,我们修改成rt_weak即可。

3.4 阿里云物模型创建

首先点击产品,然后选择功能定义,前往编辑草稿(如果刚刚是选择自定义品类的话这里是空白的)

然后我们把自己想要的属性添加上去,例如我这里填写的是温度,它一般会有一个提示,直接选择它所给的提示就好。配置完成后点击确认。

填写气压的时候,记得把上限调整大一些。

还有湿度。

把三个功能完成后应该是如图所示:

我们点击发布上线。

在设备的物模型数据这里就能看到我们刚刚添加的功能了。

3.5 添加AliCloud.c

把平台配置完成后,我们开一个阿里云的线程,让他去接收来自传感器的数据然后上传到云端。

记得这里添加的文件是.c文件不是.cpp

AliCloud.c代码修改

记得要在代码中

也修改一下信息,把产品设备信息填写成个人的。

另外,需要对比一下标识符是否跟代码里的一致,如果你创建的功能标识符跟所给代码不一致也需要改过来。

AliCloud.c(文件下载:https://club.rt-thread.org/file_download/98ad4bc48eecbfc1)文件修改:

3.6 rt_vsnprintf软件包下载

这个软件包是辅助我们使用.2f%进行浮点数输出的。我们也是直接下载下来就能用了。

3.7 烧录下载

到这里我们已经完成了环境的搭建,这时候来到Config.h中使能IOT线程,#define IOT_THREAD_ENABLE,然后进行编译下载即可。

3.8 实验现象

当完成下载后,WIFI会自动连接然后启动IOT线程,然后将数据上传。我们在设备的物模型数据里就能直接看到上传的数据啦,到此任务完成。


SALE

🎉 促销活动进行中

PSoC™ 6 RTT开发板+ RTDUINO 传感器扩展板,组合装 269元

新品上市 优惠价 169元直出!(仅限100套,速抢!


PSoC62 RTDUINO 传感器扩展板套件

复制链接购买:

https://item.taobao.com/item.htm?id=851394948290&skuId=5812861127627

或扫描二维码

——————End——————

想要在RT-Thread平台或社区投放内容?或想参与相关直播活动及赛事?RT-Thread已开放对接窗口,请通过邮件与我们取得联系,期待合作!

合作邮箱: tongfangyi@rt-thread.com 
↓ 点击“阅读原文”购买

RTThread物联网操作系统
帮助您了解RT-Thread相关的资讯。
 最新文章