硬件準備
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文件中添加自動連接的代碼。
3.3 阿里云物聯網平臺搭建
首先搜索阿里云物聯網平臺,進入登錄注冊后點擊管理控制臺。
然后點擊產品,選擇創建產品。
在創建面板中填入產品名稱(隨便起就好了),然后推薦選擇自定義品類。
選擇設備,新建一個設備。
選擇剛剛創建的產品,并且命名設備(隨便起名)。
回到剛剛的產品頁面,點擊剛剛新建的產品,查看產品信息。
再回剛剛新建的設備,同樣查看設備信息。
這時候在軟件包中搜索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線程,然后將數據上傳。我們在設備的物模型數據里就能直接看到上傳的數據啦,到此任務完成。
-
傳感器
+關注
關注
2551文章
51156瀏覽量
754069 -
物聯網
+關注
關注
2909文章
44694瀏覽量
373910 -
開發板
+關注
關注
25文章
5064瀏覽量
97587
發布評論請先 登錄
相關推薦
評論