加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶(hù)
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

【RT-Thread作品秀】基于RT-Thread和阿里云的氣壓溫度測(cè)量系統(tǒng)

2020/12/28
1000
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買(mǎi)成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買(mǎi)后不支持退換且無(wú)法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
方塊圖(2)
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【RT-Thread作品秀】基于RT-Thread的氣壓溫度測(cè)量系統(tǒng)

作者:安靜的句型

概述(說(shuō)明應(yīng)用產(chǎn)生的背景、實(shí)現(xiàn)功能)

基于ART-Pi,利用MS-P2XD10氣壓傳感器模塊,L610-CN-00-MiniPCIe-10Cat模塊,設(shè)計(jì)了一款氣壓溫度測(cè)量系統(tǒng),測(cè)量環(huán)境的大氣壓力和溫度,并上報(bào)到阿里云,連接到物模型,實(shí)時(shí)顯示。

開(kāi)發(fā)環(huán)境(所采用的軟、硬件方案)

硬件:ART-Pi;L610;LPS22HH

RT-Thread版本:4.0.3

開(kāi)發(fā)工具及版本:MDK-v5.27.0.0

RT-Thread使用情況概述(簡(jiǎn)要總結(jié)下應(yīng)用中RT-Thread使用情況:內(nèi)核部分、組件部分、軟件包部分、內(nèi)核、其他)

使用了RT-Thread內(nèi)核中使用線程、信號(hào)量、 郵箱、內(nèi)存池等功能,在讀取到傳感器數(shù)據(jù)后,將氣壓和溫度數(shù)據(jù)通過(guò)郵箱傳輸?shù)桨⒗镌瓢l(fā)布線程,向云端發(fā)送。

調(diào)用了FinSH組件用于系統(tǒng)過(guò)程調(diào)試,監(jiān)視線程應(yīng)用情況、設(shè)備使用情況、其它信息等。

加載了多個(gè)軟件包:

AT DEVICE軟件包,用于L610的驅(qū)動(dòng)。

WebClient軟件包,測(cè)試L610功能。

ali_iotkit軟件包,配置阿里云三元組信息,連接阿里云。

cJSON軟件包,進(jìn)行數(shù)據(jù)封裝

硬件框架(概述應(yīng)用所采用的硬件方案框圖,并對(duì)核心部分做介紹)

利用ART-Pi作為主控單元,通過(guò)I2C接口與LPS22HH氣壓傳感器模塊通訊,獲取氣壓和溫度值。通過(guò)UART接口與L610Cat通訊模塊通訊,與云端連接。

 

其中LPS22HH需注意連線,具體連線如下:

LPS22HH

ART-Pi

定義

VDD

P1-1

3.3V

VDDIO

P1-1

3.3V

SA0

P2-39

GND

SDA

P1-3

I2C-SDA

SCL

P1-5

I2C-SCL

CS

P1-1

3.3V

GND

P1-39

GND

其中VDD和VDDIO都是為L(zhǎng)PS22HH供電,直接使用ART-Pi的3.3V電源。SA0是用于選擇地址,接地后地址為0x5C。SDA和SCL是I2C接口“i2c3”。CS作為片選信號(hào),接高電平后選擇接口為I2C。

L610連線如下:

L610

ART-Pi

定義

UA1_TX

P1-10

UART-TX

UA1_RX

P1-8

UART-RX

AUTO_POWER_ON_1

P1-6

GND

AUTO_POWER_ON_2

P1-12

PI5                                                                                                                                                   

CTS短路帽不接。

電源短路帽接至VUSB。

連接USB接口供電和通訊。

軟件框架說(shuō)明(介紹應(yīng)用所采用的軟件方案框圖、流程圖等,并加以解說(shuō))

    在main.c文件中首先進(jìn)行了L1610的上電,mqtt初始化,lps22hh初始化等,并創(chuàng)建了四個(gè)線程,LED閃爍線程、阿里云發(fā)送數(shù)據(jù)線程、接收阿里云命令線程、定時(shí)器線程。

    當(dāng)前實(shí)現(xiàn)了基礎(chǔ)功能:

  1. 通過(guò)控制臺(tái)發(fā)送讀取傳感器數(shù)據(jù)指令后,在阿里云顯示的功能。

后期還需繼續(xù)完善兩個(gè)功能:

  1. 硬件定時(shí)器功能,可按設(shè)定的時(shí)間間隔進(jìn)行工作,采集傳感器數(shù)據(jù)并上報(bào)云端,當(dāng)前使能了timer13,但是定時(shí)器無(wú)法正常工作,程序是按照文檔和原潘多拉板直接移植的,暫未找到問(wèn)題原因。
  2. 阿里云下發(fā)命令功能,阿里云可以下發(fā)命令控制LED開(kāi)關(guān),下發(fā)命令控制硬件定時(shí)器定時(shí)間隔,隨時(shí)修改傳感器上報(bào)數(shù)據(jù)頻率。除了阿里云在線調(diào)試界面,暫未找到如何下發(fā)命令方法。

還有一些問(wèn)題:

  1. L610的初始化過(guò)程有些不太清楚,看at_device_l610.c文件,是在其中創(chuàng)建了一個(gè)初始化的線程并直接調(diào)用了,這個(gè)怎么能在main中統(tǒng)一初始化呢,現(xiàn)在是在main中延時(shí)了10秒等待初始化完成后再執(zhí)行mqtt等初始化。
  2. 對(duì)接sensor設(shè)備框架未成功,嘗試了創(chuàng)建sensor設(shè)備成功,但是初始化過(guò)程應(yīng)該有問(wèn)題,對(duì)于一個(gè)傳感器兩個(gè)參數(shù)的情況暫未了解透徹。

 

軟件模塊說(shuō)明(介紹應(yīng)用軟件關(guān)鍵部分的邏輯、采用的實(shí)現(xiàn)方式等)

sensor_st_lps22hh應(yīng)用模塊

直接調(diào)用了st的函數(shù)庫(kù)lps2hh_reg,首先創(chuàng)建了stmdev_ctx_t變量,完成了寄存器讀寫(xiě)函數(shù)的實(shí)例化,在此需注意lps22hh的地址,選擇了sa0為gnd后地址為0x5c,此地址為7位,可以直接在i2c設(shè)備框架中直接賦值無(wú)需右移。另外在讀取寄存器值時(shí)應(yīng)首先寫(xiě)地址然后才是讀數(shù)據(jù)。參考st的polling文件,編寫(xiě)了初始化函數(shù)和讀取數(shù)據(jù)函數(shù),直接讀取氣壓和溫度值,并發(fā)送至郵箱。

api_ali應(yīng)用模塊

    參考ali-iotkit的mqtt_example文件,在ENV中配置好三元組信息后,進(jìn)行mqtt初始化,讀取三元組,與云端建立mqtt連接,并訂閱了發(fā)布和讀取主題。編寫(xiě)了數(shù)據(jù)發(fā)布函數(shù),可由發(fā)布線程直接調(diào)用。試驗(yàn)了cJSON軟件包,直接打包成json數(shù)據(jù),試驗(yàn)了直接賦值字符串,均可正常實(shí)現(xiàn)。試驗(yàn)了接收命令線程,在阿里云中在線調(diào)試發(fā)送命令,可以在串口助手中看到接收的命令。

演示效果(演示效果請(qǐng)采用3張高清圖片,并錄制一段不少于1min視頻解說(shuō)應(yīng)用所實(shí)現(xiàn)的效果,視頻上傳至B站或者騰訊視頻或其他視頻平臺(tái),給出鏈接即可)

 

 

 

 

 

比賽感悟(可以圍繞這次比賽學(xué)到了什么,克服了哪些困難,有哪些收獲,不低于200字)

  1. 第一次使用L610這種無(wú)線通訊模塊,遇到了很多問(wèn)題,從模塊連接、模塊自測(cè)、模塊連云等,還出現(xiàn)了USB插座掉落等問(wèn)題,感謝群里的leon和廣和通技術(shù)王工,耐心的指點(diǎn),解決了很多問(wèn)題,例如沒(méi)有例程中的算法,其實(shí)加載rtt的算法也可以正常運(yùn)行;L610的連線和功能定義;AT+CLOUDAUTH錯(cuò)誤;模塊有多個(gè)程序版本(有的可以直接連阿里云,有的是通過(guò)ART-Pi連接);物聯(lián)網(wǎng)卡初始化過(guò)程需要屏蔽掉CREG自測(cè)等等。
  2. lps22hh使用過(guò)程中的問(wèn)題主要是連線,對(duì)于開(kāi)發(fā)板的各個(gè)引腳連接不太清楚,查看手冊(cè)后根據(jù)開(kāi)發(fā)板上絲印嘗試了CS和SA0等的連接,解決問(wèn)題。
  3. 還有一些問(wèn)題,sensor框架對(duì)接還是沒(méi)有實(shí)現(xiàn),硬件定時(shí)器不工作。
  4. ART-Pi及L610的手冊(cè)還是有豐富和規(guī)范的空間。例如ART-Pi找各個(gè)功能模塊和引腳定義比較復(fù)雜,后來(lái)看到了《RT-Thread 開(kāi)源硬件ART-Pi引腳擴(kuò)展說(shuō)明》簡(jiǎn)化了很多工作,還可以有很多類(lèi)似工作。

L610的手冊(cè)很多而且是一個(gè)個(gè)給出,沒(méi)有一個(gè)清晰的了解。希望能有一個(gè)包括連線說(shuō)明、快速使用、自測(cè)方法、移植方法等的一個(gè)循序漸進(jìn)的說(shuō)明手冊(cè)。

  1. 沒(méi)有提供IAR的工程模板,用MDK編譯太慢了。另外文件結(jié)構(gòu)也與原來(lái)的stm32文件夾下的其他板不一樣,沒(méi)有在board中找到kconfig文件,希望能夠統(tǒng)一或者能有指導(dǎo)文件,如何創(chuàng)建IAR工程,如何增加外設(shè)等。
  2. 后續(xù)還需在上位機(jī)或者APP上做一些工作,形成完整的可應(yīng)用系統(tǒng)。
  • 代碼地址.txt
  • 【RT-Thread作品秀】基于RT-Thread的氣壓溫度測(cè)量系統(tǒng).docx
    描述:文檔

相關(guān)推薦

電子產(chǎn)業(yè)圖譜