• 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

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

2020/12/28
720
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

代碼地址.txt

共2個文件

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

作者:安靜的句型

概述(說明應用產(chǎn)生的背景、實現(xiàn)功能)

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

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

硬件:ART-Pi;L610;LPS22HH

RT-Thread版本:4.0.3

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

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

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

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

加載了多個軟件包:

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

WebClient軟件包,測試L610功能。

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

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

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

利用ART-Pi作為主控單元,通過I2C接口與LPS22HH氣壓傳感器模塊通訊,獲取氣壓和溫度值。通過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都是為LPS22HH供電,直接使用ART-Pi的3.3V電源。SA0是用于選擇地址,接地后地址為0x5C。SDA和SCL是I2C接口“i2c3”。CS作為片選信號,接高電平后選擇接口為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接口供電和通訊。

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

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

    當前實現(xiàn)了基礎功能:

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

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

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

還有一些問題:

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

 

軟件模塊說明(介紹應用軟件關鍵部分的邏輯、采用的實現(xiàn)方式等)

sensor_st_lps22hh應用模塊

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

api_ali應用模塊

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

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

 

 

 

 

 

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

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

L610的手冊很多而且是一個個給出,沒有一個清晰的了解。希望能有一個包括連線說明、快速使用、自測方法、移植方法等的一個循序漸進的說明手冊。

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

相關推薦