0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RTduino物联网应用零基础入门

RT-Thread官方账号 2024-11-12 01:06 次阅读

硬件准备

PSoC6 RTT开发板(物联网专业平台)

RTduino传感器扩展板

软件准备

RT-Thread Studio

MobaXterm(串口工具)

项目实践

RTduino实践列表:

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

任务难度:

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

任务目标:顺利完成

项目2:数据UI显示

任务难度:

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

任务目标:顺利完成

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

任务难度:

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

任务目标:尽量完成

1

传感器数据采集实战

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

1.1 RTduino使能

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

544edd9e-a04f-11ef-8084-92fbcf53809c.png

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

5452c6ac-a04f-11ef-8084-92fbcf53809c.png

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

1.2数据采集软件包配置

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

545677a2-a04f-11ef-8084-92fbcf53809c.png

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

54690340-a04f-11ef-8084-92fbcf53809c.png

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

546de554-a04f-11ef-8084-92fbcf53809c.png

1.3 SConscript修改

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

54828676-a04f-11ef-8084-92fbcf53809c.png

1.4 数据采集线程设计

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

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

54873f86-a04f-11ef-8084-92fbcf53809c.png548b89f6-a04f-11ef-8084-92fbcf53809c.png

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

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 实验现象

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

548fbd64-a04f-11ef-8084-92fbcf53809c.png

2

数据UI显示

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

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

5493178e-a04f-11ef-8084-92fbcf53809c.png

2.1 oled驱动配置

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

54aba736-a04f-11ef-8084-92fbcf53809c.png

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

54c7f008-a04f-11ef-8084-92fbcf53809c.png

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

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

2.2 实验现象

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

54d3e64c-a04f-11ef-8084-92fbcf53809c.jpg

3

阿里云物联网应用实战

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

3.1 使能RW007

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

54ed051e-a04f-11ef-8084-92fbcf53809c.png

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

54f12662-a04f-11ef-8084-92fbcf53809c.png

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

54f4d15e-a04f-11ef-8084-92fbcf53809c.png54f83d12-a04f-11ef-8084-92fbcf53809c.png

3.2 自动连接wifi

每次都手动输入Wifi有点复杂,我们可以在main.c文件中添加自动连接的代码。

3.3 阿里云物联网平台搭建

首先搜索阿里云物联网平台,进入登录注册后点击管理控制台。

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

551a4b8c-a04f-11ef-8084-92fbcf53809c.png

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

551eaeb6-a04f-11ef-8084-92fbcf53809c.png

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

55324d90-a04f-11ef-8084-92fbcf53809c.png

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

5536efda-a04f-11ef-8084-92fbcf53809c.png

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

553bccd0-a04f-11ef-8084-92fbcf53809c.png

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

554038a6-a04f-11ef-8084-92fbcf53809c.png

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

5544635e-a04f-11ef-8084-92fbcf53809c.png

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

556692da-a04f-11ef-8084-92fbcf53809c.png

3.4 阿里云物模型创建

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

5591eb92-a04f-11ef-8084-92fbcf53809c.png

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

55a9cf3c-a04f-11ef-8084-92fbcf53809c.png

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

55aec398-a04f-11ef-8084-92fbcf53809c.png

还有湿度。

55b366a0-a04f-11ef-8084-92fbcf53809c.png

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

55b79e14-a04f-11ef-8084-92fbcf53809c.png

我们点击发布上线。

55c7ee72-a04f-11ef-8084-92fbcf53809c.png

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

55e53ba8-a04f-11ef-8084-92fbcf53809c.png

3.5 添加AliCloud.c

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

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

55ea0bce-a04f-11ef-8084-92fbcf53809c.png

AliCloud.c代码修改

记得要在代码中

5603c87a-a04f-11ef-8084-92fbcf53809c.png

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

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

560781ae-a04f-11ef-8084-92fbcf53809c.png

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

3.6 rt_vsnprintf软件包下载

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

560bffa4-a04f-11ef-8084-92fbcf53809c.png

3.7 烧录下载

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

561077d2-a04f-11ef-8084-92fbcf53809c.png

3.8 实验现象

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

561430ac-a04f-11ef-8084-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2546

    文章

    50514

    浏览量

    751274
  • 物联网
    +关注

    关注

    2902

    文章

    44142

    浏览量

    370501
  • 开发板
    +关注

    关注

    25

    文章

    4914

    浏览量

    97101
收藏 人收藏

    评论

    相关推荐

    零基础自学PLC入门

    零基础自学PLC入门
    发表于 08-20 15:01

    ARM入门零基础学习。

    ARM入门零基础学习。自学过,觉得非常好。分享一下。
    发表于 03-24 16:31

    请问stm32如何零基入门

    请问stm32如何零基入门
    发表于 10-12 07:51

    如何从零基础到入门嵌入式的分享

    随着社会的发展,联网,嵌入式都相继发展起来,很多人都踩着这股潮流,争相学习嵌入式,而对于新手来说,学习嵌入式可以说是是比较困难的,但是也是有方法的,我这只老鸟就是从零基础过来的。分享一下我是如何从
    发表于 12-17 07:55

    FPGA的零基入门教程

    本文档的主要内容详细介绍的是FPGA的零基入门教程免费下载。
    发表于 01-18 16:47 58次下载
    FPGA的<b class='flag-5'>零基</b>础<b class='flag-5'>入门</b>教程

    C语言零基入门教学资料汇总下载

    C语言零基入门教学资料汇总下载
    发表于 05-29 10:41 132次下载

    零基入门HarmonyOS-部分卡片模板效果展示

    零基入门HarmonyOS-部分卡片模板效果展示
    的头像 发表于 10-23 11:51 1156次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>入门</b>HarmonyOS-部分卡片模板效果展示

    零基入门HarmonyOS-卡片内容布局描述

    零基入门HarmonyOS-卡片内容布局描述
    的头像 发表于 10-23 11:56 1661次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>入门</b>HarmonyOS-卡片内容布局描述

    零基入门HarmonyOS-绑定卡片数据展示

    零基入门HarmonyOS-绑定卡片数据展示
    的头像 发表于 10-23 11:59 1290次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>入门</b>HarmonyOS-绑定卡片数据展示

    零基入门HarmonyOS-响应卡片交互事件

    2021 HDC2021华为开发者分论坛零基入门HarmonyOS-响应卡片交互事件
    的头像 发表于 10-23 13:03 1330次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>入门</b>HarmonyOS-响应卡片交互事件

    零基入门HarmonyOS-UI编程框架

    HDC 2021华为开发者分论坛零基入门HarmonyOS-UI编程框架
    的头像 发表于 10-23 13:09 1734次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>入门</b>HarmonyOS-UI编程框架

    零基入门HarmonyOS-声明式开发

    HDC 2021华为开发者大会分论坛零基入门HarmonyOS-声明式开发
    的头像 发表于 10-23 13:14 1143次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>入门</b>HarmonyOS-声明式开发

    零基入门HarmonyOS-现场开发演示

    HDC 2021华为开发者大会分论坛零基入门HarmonyOS-现场开发演示
    的头像 发表于 10-23 13:17 1365次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>入门</b>HarmonyOS-现场开发演示

    零基础LabVIEW入门实例教程免费下载

    零基础LabVIEW入门实例教程免费下载。
    发表于 04-12 14:58 0次下载

    零基入门 Hyperlynx 仿真教程

    电子发烧友网站提供《零基入门 Hyperlynx 仿真教程.pdf》资料免费下载
    发表于 12-22 10:49 29次下载