硬件準(zhǔn)備
PSoC6 RTT開(kāi)發(fā)板(物聯(lián)網(wǎng)專(zhuān)業(yè)平臺(tái))
RTduino傳感器擴(kuò)展板
軟件準(zhǔn)備
RT-Thread Studio
MobaXterm(串口工具)
項(xiàng)目實(shí)踐
RTduino實(shí)踐列表:
項(xiàng)目1:傳感器數(shù)據(jù)采集實(shí)戰(zhàn)
任務(wù)難度:
任務(wù)內(nèi)容:使用RTduino采集氣壓及溫濕度數(shù)據(jù)并在串口顯示
任務(wù)目標(biāo):順利完成
項(xiàng)目2:數(shù)據(jù)UI顯示
任務(wù)難度:
任務(wù)內(nèi)容:使用RTduino將采集到的傳感器數(shù)據(jù)顯示在屏幕上
任務(wù)目標(biāo):順利完成
項(xiàng)目3:阿里云物聯(lián)網(wǎng)應(yīng)用實(shí)戰(zhàn)
任務(wù)難度:
任務(wù)內(nèi)容:將采集的傳感器數(shù)據(jù)上傳至阿里云物聯(lián)網(wǎng)云平臺(tái)
任務(wù)目標(biāo):盡量完成
1
傳感器數(shù)據(jù)采集實(shí)戰(zhàn)
在本任務(wù)中,我們首先會(huì)使用到 BMP280(氣壓溫度傳感器)模塊跟SHT31(溫濕度傳感器)模塊進(jìn)行數(shù)據(jù)采集,采集的數(shù)據(jù)有3個(gè):溫度(采用SHT采集的)、濕度、氣壓。并通過(guò)串口將采集到的數(shù)據(jù)輸出出來(lái)。
1.1 RTduino使能
首先我們使能RTduino。打開(kāi)RT-Thread Settings,然后進(jìn)入配置頁(yè)面再點(diǎn)擊右方的箭頭打開(kāi)配置菜單

選擇硬件-->板載設(shè)備驅(qū)動(dòng)-->使能RTduino(此項(xiàng)僅當(dāng)該bsp支持RTduino才可開(kāi)啟)

完成這一步以后,Ctrl + S保存一下并下載軟件包。
1.2數(shù)據(jù)采集軟件包配置
本次會(huì)使用到Arduino庫(kù)軟件包:Adafruit BMP280,使能軟件包以后,執(zhí)行Ctrl + S 保存并自動(dòng)下載軟件包。

在使用軟件包的時(shí)候,我們需要修改一下BMP里面的默認(rèn)的I2C地址。原本為0x77,修改為0x76

與下載BMP280軟件包操作相同,我們通過(guò)搜索使能SHT31軟件包,然后下載下來(lái)。

1.3 SConscript修改
SConscript的作用是選擇把哪些文件添加到編譯中,為了后續(xù)方便我們添加文件,需要修改一下。在所選的工程目錄下,找到applications/SConscript 然后將src += ['arduino_main.cpp'] 修改為 src += Glob('*.cpp') 。這樣它就能夠把我們后續(xù)所添加的.cpp文件加入到編譯中。

1.4 數(shù)據(jù)采集線程設(shè)計(jì)
這一步我們需要?jiǎng)?chuàng)建兩個(gè)新的線程,一個(gè)是用作BMP280來(lái)采集氣壓數(shù)據(jù),一個(gè)是用作SHT31來(lái)采集溫濕度數(shù)據(jù)。
我們?cè)?strong>applications文件夾下新建兩個(gè)文件,分別命名為:BMP_Test.cpp 和 SHT31_Test.cpp 。再創(chuàng)建一個(gè)Config.h文件方便我們后續(xù)進(jìn)行配置。然后把下面的代碼內(nèi)容分別粘貼上去。


同時(shí)我們分別修改以下文件內(nèi)容,可點(diǎn)擊鏈接進(jìn)行下載查看詳情:
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 實(shí)驗(yàn)現(xiàn)象
把文件都添加好后就可以編譯下載了,成功運(yùn)行的話串口會(huì)一直輸出數(shù)據(jù)信息。

2
數(shù)據(jù)UI顯示
在本次任務(wù)中,我們會(huì)使用到拓展板上的SSD1306OLED模塊來(lái)將BMP與SHT采集到的數(shù)據(jù)做一個(gè)簡(jiǎn)單的顯示。
跟之前下載軟件包的步驟相同,我們通過(guò)搜索找到并使能軟件包,然后用Ctrl + S將軟件包下載下來(lái)。(記得需要選擇Adafruit庫(kù)的)

2.1 oled驅(qū)動(dòng)配置
我們需要給SSD1306新建一個(gè)線程用于顯示。同樣的我們?cè)赼pplications文件夾下新建一個(gè)SSD_Test.cpp文件。

然后我們需要在Config.h中把#define DIS_THREAD_ENABLE打開(kāi),解除相關(guān)注釋。

因?yàn)閺S商生成批次不同,I2C地址可能會(huì)有區(qū)別。如果SSD1306無(wú)法使用的話可以修改一下I2C地址,改為0x3C(默認(rèn)是0x3D)。
修改SSD_Test.cpp(代碼下載:https://club.rt-thread.org/file_download/65fffdd9784bbb48)
2.2 實(shí)驗(yàn)現(xiàn)象
添加完代碼后可以編譯下載,成功運(yùn)行我們就可以看到拓展板上的OLED屏幕在不斷的刷新數(shù)據(jù)。

3
阿里云物聯(lián)網(wǎng)應(yīng)用實(shí)戰(zhàn)
在本次任務(wù)中,我們會(huì)使用到拓展板上的RW007與阿里云物聯(lián)網(wǎng)平臺(tái)快速生成一個(gè)物聯(lián)網(wǎng)產(chǎn)品。
3.1 使能RW007
首先我們需要在硬件選項(xiàng)中打開(kāi)RW007的配置,然后把引腳修改成圖中配置。并在SSID處填寫(xiě)WIFI名稱(chēng)(最好不要有中文)(熱點(diǎn)的話需要是2.4G頻段的),然后在password處填寫(xiě)密碼。

然后搜索RW007軟件包。它默認(rèn)幫我們開(kāi)啟了Stm的示例,我們不需要它給的樣例,直接選擇不使用示例即可,然后把SPI時(shí)鐘頻率調(diào)整為10000000。

接下來(lái)就是把軟件包下載下來(lái),這時(shí)候可以進(jìn)行編譯下載,然后可以在用命令wifi join SSID password手動(dòng)連接wifi。(如果覺(jué)得數(shù)據(jù)輸出頻繁看不清命令可以在Config.h中把#define NO_USING_DATA_OUTPUT打開(kāi),這樣就不會(huì)持續(xù)輸出數(shù)據(jù)了)。


3.2 自動(dòng)連接wifi
每次都手動(dòng)輸入Wifi有點(diǎn)復(fù)雜,我們可以在main.c文件中添加自動(dòng)連接的代碼。
3.3 阿里云物聯(lián)網(wǎng)平臺(tái)搭建
首先搜索阿里云物聯(lián)網(wǎng)平臺(tái),進(jìn)入登錄注冊(cè)后點(diǎn)擊管理控制臺(tái)。
然后點(diǎn)擊產(chǎn)品,選擇創(chuàng)建產(chǎn)品。

在創(chuàng)建面板中填入產(chǎn)品名稱(chēng)(隨便起就好了),然后推薦選擇自定義品類(lèi)。

選擇設(shè)備,新建一個(gè)設(shè)備。

選擇剛剛創(chuàng)建的產(chǎn)品,并且命名設(shè)備(隨便起名)。

回到剛剛的產(chǎn)品頁(yè)面,點(diǎn)擊剛剛新建的產(chǎn)品,查看產(chǎn)品信息。

再回剛剛新建的設(shè)備,同樣查看設(shè)備信息。

這時(shí)候在軟件包中搜索Ali-iotkit,然后使能此軟件包。并將剛剛記錄的參數(shù)對(duì)應(yīng)放置上去即可。然后把軟件包下載下來(lái)。

下完軟件包以后,需要修改packages/ali-iotkit/ports/wrapper.c中最下面的那幾個(gè)虛函數(shù)關(guān)鍵字RT_WEAK。因?yàn)楝F(xiàn)在的RTT版本把這個(gè)關(guān)鍵字改成了小寫(xiě),我們修改成rt_weak即可。

3.4 阿里云物模型創(chuàng)建
首先點(diǎn)擊產(chǎn)品,然后選擇功能定義,前往編輯草稿(如果剛剛是選擇自定義品類(lèi)的話這里是空白的)

然后我們把自己想要的屬性添加上去,例如我這里填寫(xiě)的是溫度,它一般會(huì)有一個(gè)提示,直接選擇它所給的提示就好。配置完成后點(diǎn)擊確認(rèn)。

填寫(xiě)氣壓的時(shí)候,記得把上限調(diào)整大一些。

還有濕度。

把三個(gè)功能完成后應(yīng)該是如圖所示:

我們點(diǎn)擊發(fā)布上線。

在設(shè)備的物模型數(shù)據(jù)這里就能看到我們剛剛添加的功能了。

3.5 添加AliCloud.c
把平臺(tái)配置完成后,我們開(kāi)一個(gè)阿里云的線程,讓他去接收來(lái)自傳感器的數(shù)據(jù)然后上傳到云端。
記得這里添加的文件是.c文件不是.cpp

AliCloud.c代碼修改
記得要在代碼中

也修改一下信息,把產(chǎn)品設(shè)備信息填寫(xiě)成個(gè)人的。
另外,需要對(duì)比一下標(biāo)識(shí)符是否跟代碼里的一致,如果你創(chuàng)建的功能標(biāo)識(shí)符跟所給代碼不一致也需要改過(guò)來(lái)。

AliCloud.c(文件下載:https://club.rt-thread.org/file_download/98ad4bc48eecbfc1)文件修改:
3.6 rt_vsnprintf軟件包下載
這個(gè)軟件包是輔助我們使用.2f%進(jìn)行浮點(diǎn)數(shù)輸出的。我們也是直接下載下來(lái)就能用了。

3.7 燒錄下載
到這里我們已經(jīng)完成了環(huán)境的搭建,這時(shí)候來(lái)到Config.h中使能IOT線程,#define IOT_THREAD_ENABLE,然后進(jìn)行編譯下載即可。

3.8 實(shí)驗(yàn)現(xiàn)象
當(dāng)完成下載后,WIFI會(huì)自動(dòng)連接然后啟動(dòng)IOT線程,然后將數(shù)據(jù)上傳。我們?cè)谠O(shè)備的物模型數(shù)據(jù)里就能直接看到上傳的數(shù)據(jù)啦,到此任務(wù)完成。

-
傳感器
+關(guān)注
關(guān)注
2573文章
54017瀏覽量
782684 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2938文章
47059瀏覽量
404674 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
6046瀏覽量
111208
發(fā)布評(píng)論請(qǐng)先 登錄
ARM入門(mén),零基礎(chǔ)學(xué)習(xí)。
如何從零基礎(chǔ)到入門(mén)嵌入式的分享
FPGA的零基礎(chǔ)入門(mén)教程
零基礎(chǔ)入門(mén)HarmonyOS-聲明式開(kāi)發(fā)
零基礎(chǔ)入門(mén)HarmonyOS-現(xiàn)場(chǎng)開(kāi)發(fā)演示

RTduino物聯(lián)網(wǎng)應(yīng)用零基礎(chǔ)入門(mén)
評(píng)論