硬件准备
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:阿里云物联网应用实战
任务难度:⭐️⭐️⭐️⭐️
任务内容:将采集的传感器数据上传至阿里云物联网云平台
任务目标:尽量完成
传感器数据采集实战
在本任务中,我们首先会使用到 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 实验现象
把文件都添加好后就可以编译下载了,成功运行的话串口会一直输出数据信息。
数据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屏幕在不断的刷新数据。
阿里云物联网应用实战
在本次任务中,我们会使用到拓展板上的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线程,然后将数据上传。我们在设备的物模型数据里就能直接看到上传的数据啦,到此任务完成。
🎉 促销活动进行中
PSoC™ 6 RTT开发板+ RTDUINO 传感器扩展板,组合装 269元
新品上市 优惠价 169元直出!(仅限100套,速抢!
PSoC62 RTDUINO 传感器扩展板套件
复制链接购买:
https://item.taobao.com/item.htm?id=851394948290&skuId=5812861127627
或扫描二维码
想要在RT-Thread平台或社区投放内容?或想参与相关直播活动及赛事?RT-Thread已开放对接窗口,请通过邮件与我们取得联系,期待合作!