Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RTThreaed
RTduino物联网应用零基础入门
发布于 2024-11-11 18:53:29 浏览:378
订阅该版
[tocm] ### 硬件准备 - 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,然后进入配置页面再点击右方的箭头打开配置菜单 ![1.png](https://oss-club.rt-thread.org/uploads/20241111/cc33873967939217405a611cf3bb8ab8.png.webp) 选择** 硬件-->板载设备驱动-->使能RTduino**(此项仅当该bsp支持RTduino才可开启) ![2.png](https://oss-club.rt-thread.org/uploads/20241111/95e9ce16e7b8f46b6049c1148cb0cea6.png.webp) 完成这一步以后,**Ctrl + S **保存一下并下载软件包。 #### **1.2 数据采集软件包配置** 本次会使用到Arduino库软件包:Adafruit BMP280,使能软件包以后,执行Ctrl + S 保存并自动下载软件包。 ![3.png](https://oss-club.rt-thread.org/uploads/20241111/615b72704a3d52dea2e686d650b221b3.png.webp) 在使用软件包的时候,我们需要修改一下BMP里面的默认的I2C地址。原本为**0x77**,修改为**0x76** ![4.png](https://oss-club.rt-thread.org/uploads/20241111/078dd09fbf79b01a504d907ed81b16b6.png.webp) 与下载BMP280软件包操作相同,我们通过搜索使能SHT31软件包,然后下载下来。 ![5.png](https://oss-club.rt-thread.org/uploads/20241111/95b36e7e2bc70281e1c5c517503b4d18.png.webp) #### 1.3 SConscript修改 SConscript的作用是选择把哪些文件添加到编译中,为了后续方便我们添加文件,需要修改一下。在所选的工程目录下,找到**applications/SConscript **然后将**src += ['arduino_main.cpp']** 修改为 **src += Glob('*.cpp')** 。这样它就能够把我们后续所添加的.cpp文件加入到编译中。 ![6.png](https://oss-club.rt-thread.org/uploads/20241111/8534917d24f7197784c8bba4aa7219c3.png.webp) #### 1.4 数据采集线程设计 这一步我们需要创建两个新的线程,一个是用作BMP280来采集气压数据,一个是用作SHT31来采集温湿度数据。 我们在**applications**文件夹下新建两个文件,分别命名为:**BMP_Test.cpp **和 **SHT31_Test.cpp** 。再创建一个**Config.h**文件方便我们后续进行配置。然后把下面的代码内容分别粘贴上去。 ![7.png](https://oss-club.rt-thread.org/uploads/20241111/15eccc42aa85ba0a3c1d82347b7bcd66.png.webp) ![8.png](https://oss-club.rt-thread.org/uploads/20241111/812c0c09d1e196e7bff7da4bf0407fb0.png) 同时我们分别修改以下文件内容,可点击链接进行下载查看详情: **BMP_Test.cpp**: https://club.rt-thread.org/file_download/dd49f1210141606e **SHT_Test.cpp**:https://club.rt-thread.org/file_download/f73c4180ee544e7a **Config.h**:https://club.rt-thread.org/file_download/0cc46fb8eea26b00 #### 1.5 实验现象 把文件都添加好后就可以编译下载了,成功运行的话串口会一直输出数据信息。 ![9.png](https://oss-club.rt-thread.org/uploads/20241111/383cf3d5a48a2f39b14d280ea9a77f43.png) ### 2.数据UI显示 在本次任务中,我们会使用到拓展板上的SSD1306OLED模块来将BMP与SHT采集到的数据做一个简单的显示。 跟之前下载软件包的步骤相同,我们通过搜索找到并使能软件包,然后用Ctrl + S将软件包下载下来。(记得需要选择Adafruit库的) ![10.png](https://oss-club.rt-thread.org/uploads/20241111/88637f051368f1148b649fb1baa20ca6.png) #### ** 2.1 oled驱动配置** 我们需要给SSD1306新建一个线程用于显示。同样的我们在applications文件夹下新建一**个SSD_Test.cpp**文件。 ![11.png](https://oss-club.rt-thread.org/uploads/20241111/20689c1f2ecd5bd95ba7976d73ab0c36.png) 然后我们需要在**Config.h**中把#define DIS_THREAD_ENABLE打开,解除相关注释。 ![12.png](https://oss-club.rt-thread.org/uploads/20241111/8e0abc3d4deac89ce76ab3991879d596.png) 因为厂商生成批次不同,I2C地址可能会有区别。如果SSD1306无法使用的话可以修改一下I2C地址,改为**0x3C(默认是0x3D)。 ** **修改SSD_Test.cpp**(代码下载:https://club.rt-thread.org/file_download/65fffdd9784bbb48 ) #### **2.2 实验现象** 添加完代码后可以编译下载,成功运行我们就可以看到拓展板上的OLED屏幕在不断的刷新数据。 ![15.jpg](https://oss-club.rt-thread.org/uploads/20241111/eec9d45b9a27634cc25b16806317cd79.jpg.webp) ### 3.阿里云物联网应用实战 在本次任务中,我们会使用到拓展板上的RW007与阿里云物联网平台快速生成一个物联网产品。 #### 3.1 使能RW007 首先我们需要在硬件选项中打开RW007的配置,然后把引脚修改成图中配置。并在SSID处填写WIFI名称(最好不要有中文)(热点的话需要是2.4G频段的),然后在password处填写密码。 ![16.png](https://oss-club.rt-thread.org/uploads/20241111/8da65cf362766fa019a0dc3209247dc7.png.webp) 然后搜索RW007软件包。它默认帮我们开启了Stm的示例,我们不需要它给的样例,直接选择不使用示例即可,然后把SPI时钟频率调整为10000000。 ![17.png](https://oss-club.rt-thread.org/uploads/20241111/45dc1d6b549b08f43031a8d1d6689577.png.webp) 接下来就是把软件包下载下来,这时候可以进行编译下载,然后可以在用命令**wifi join SSID password**手动连接wifi。(如果觉得数据输出频繁看不清命令可以在**Config.h**中把**#define NO_USING_DATA_OUTPUT**打开,这样就不会持续输出数据了)。 ![18.png](https://oss-club.rt-thread.org/uploads/20241111/b3de43dbec8ff98f1e313b5c7d97849e.png) ![19.png](https://oss-club.rt-thread.org/uploads/20241111/85473ab58fabf4d84d808176010e153c.png) #### 3.2 自动连接wifi 每次都手动输入Wifi有点复杂,我们可以在**main.c**(文件在此下载:(https://club.rt-thread.org/file_download/c83e2440c2339201 ) 文件中添加自动连接的代码。 #### 3.3 阿里云物联网平台搭建 首先搜索阿里云物联网平台(https://www.aliyun.com/product/iot/iot_instc_public_cn),进入登录注册后点击管理控制台。 ![20.png](https://oss-club.rt-thread.org/uploads/20241111/34a9a8f1a1fe7a5bd59869f835dc7c6f.png.webp) 然后点击产品,选择创建产品。 ![21.png](https://oss-club.rt-thread.org/uploads/20241111/de330f028ac0e8513f795ccd3152c3b0.png.webp) 在创建面板中填入产品名称(随便起就好了),然后推荐选择自定义品类。 ![22.png](https://oss-club.rt-thread.org/uploads/20241111/aed0ede814e4ea92c6c7dec7328fe939.png.webp) 选择设备,新建一个设备。 ![23.png](https://oss-club.rt-thread.org/uploads/20241111/2a637c8e02dd3b9a475b0ce1988d795a.png.webp) 选择刚刚创建的产品,并且命名设备(随便起名)。 ![24.png](https://oss-club.rt-thread.org/uploads/20241111/a3fd0042d3e9251faede2a025a3ce4b5.png.webp) 回到刚刚的产品页面,点击刚刚新建的产品,查看产品信息。 ![25.png](https://oss-club.rt-thread.org/uploads/20241111/c545cc0183a995d26b5e048ce0eed4f3.png.webp) 再回刚刚新建的设备,同样查看设备信息。 ![26.png](https://oss-club.rt-thread.org/uploads/20241111/2f25127b64b586a49f8ac680ed538697.png.webp) 这时候在软件包中搜索Ali-iotkit,然后使能此软件包。并将刚刚记录的参数对应放置上去即可。然后把软件包下载下来。 ![28.png](https://oss-club.rt-thread.org/uploads/20241111/20e5afac02c87ee7485758775454fbf8.png.webp) 下完软件包以后,需要修改**packages/ali-iotkit/ports/wrapper.c**中最下面的那几个虚函数关键字**RT_WEAK**。因为现在的RTT版本把这个关键字改成了小写,我们修改成**rt_weak**即可。 ![29.png](https://oss-club.rt-thread.org/uploads/20241111/d52989263eec1d9391a661816e6bdc37.png.webp) #### 3.4 阿里云物模型创建 首先点击产品,然后选择功能定义,前往编辑草稿(如果刚刚是选择自定义品类的话这里是空白的) ![30.png](https://oss-club.rt-thread.org/uploads/20241111/174507661a0c4a4f994cf0babb82d8f4.png.webp) 然后我们把自己想要的属性添加上去,例如我这里填写的是温度,它一般会有一个提示,直接选择它所给的提示就好。配置完成后点击确认。 ![31.png](https://oss-club.rt-thread.org/uploads/20241111/2c786c51af38d2d456a647babbcf8824.png.webp) 填写气压的时候,记得把上限调整大一些。 ![32.png](https://oss-club.rt-thread.org/uploads/20241111/6220c4e537029c6ccd9acb8e00e6107a.png.webp) 还有湿度。 ![33.png](https://oss-club.rt-thread.org/uploads/20241111/011ef65f0afef4d331d8864b95b0af8e.png.webp) 把三个功能完成后应该是如图所示: ![34.png](https://oss-club.rt-thread.org/uploads/20241111/2fdd25263d78ed51b7eab8a22a11173e.png.webp) 我们点击发布上线。 ![35.png](https://oss-club.rt-thread.org/uploads/20241111/1ca0c518e453cd511fc2da8b5c574bc3.png.webp) 在设备的物模型数据这里就能看到我们刚刚添加的功能了。 ![36.png](https://oss-club.rt-thread.org/uploads/20241111/9034a9555f6a049565ed088657bfa5e0.png.webp) #### 3.5 添加AliCloud.c 把平台配置完成后,我们开一个阿里云的线程,让他去接收来自传感器的数据然后上传到云端。 记得这里添加的文件是**.c**文件不是**.cpp** ![37.png](https://oss-club.rt-thread.org/uploads/20241111/9aa93b81bd90ab88aa45387e9d631392.png) AliCloud.c代码修改 记得要在代码中 ![38.png](https://oss-club.rt-thread.org/uploads/20241111/df6e8c06c39bc45465ee6e48022a99ad.png) 也修改一下信息,把产品设备信息填写成个人的。 另外,需要对比一下标识符是否跟代码里的一致,如果你创建的功能标识符跟所给代码不一致也需要改过来。 ![39.png](https://oss-club.rt-thread.org/uploads/20241111/864d44671160a7901196b13a9500b04f.png.webp) AliCloud.c(文件下载:https://club.rt-thread.org/file_download/87a1faa193d8afe9 )文件修改: #### 3.6 rt_vsnprintf软件包下载 这个软件包是辅助我们使用.2f%进行浮点数输出的。我们也是直接下载下来就能用了。 ![40.png](https://oss-club.rt-thread.org/uploads/20241111/f32f81e6d800f65ed915c76ffa9fa0c7.png.webp) #### 3.7 烧录下载 到这里我们已经完成了环境的搭建,这时候来到Config.h中使能IOT线程,**#define IOT_THREAD_ENABLE**,然后进行编译下载即可。 ![41.png](https://oss-club.rt-thread.org/uploads/20241111/c5069ac0d1eaa070ad3509d27e9fbbe9.png) #### 3.8 实验现象 当完成下载后,WIFI会自动连接然后启动IOT线程,然后将数据上传。我们在设备的物模型数据里就能直接看到上传的数据啦,到此任务完成。 ![42.png](https://oss-club.rt-thread.org/uploads/20241111/4c3084ece0b6126930375a430414c15f.png.webp) ### 促销活动进行中 **PSoC™ 6 RTT开发板+ RTDUINO 传感器扩展板,组合装 269元** **新品上市 优惠价 169元直出!(仅限100套,速抢!** ![43.png](https://oss-club.rt-thread.org/uploads/20241111/778292d5e7aa89b89c1150b5d0da01f9.png.webp) PSoC62 RTDUINO 传感器扩展板套件 复制链接购买: https://item.taobao.com/item.htm?id=851394948290&skuId=5812861127627 ![44.png](https://oss-club.rt-thread.org/uploads/20241111/8b74f21025a18bc02b594b339aa23b98.png.webp) ——————End——————
8
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
RT-Thread小师弟
微信:rtthread2020
文章
289
回答
171
被采纳
33
关注TA
发私信
相关文章
1
RTThread支持loongson2k1000了么?
2
终端出现The aht10 is under an abnormal status
3
为什么系统一直在重启?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
5
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部