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

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

【RT-Thread作品秀】車載環(huán)境參數(shù)采集終端

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

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

虛擬商品不可退

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

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

概述

車載環(huán)境參數(shù)采集終端基于STM32H750 系列芯片(RT-ART-PI開發(fā)板)開發(fā),支持采集多種環(huán)境參數(shù),包括車內(nèi)溫度,濕度,氣壓,噪音,有毒有害氣體,車輛震動沖擊加速度等。本地通過串口與 PC 端通訊,上位機(jī)實(shí)時顯示并存儲數(shù)據(jù)。該系統(tǒng)適用于記錄車輛的行駛車況及車內(nèi)的環(huán)境參數(shù)等。

開發(fā)環(huán)境

硬件:STM32H750-RT-ART-Pi開發(fā)板

擴(kuò)展板:博士BME280溫濕度氣壓三合一傳感器擴(kuò)展板、ADI ADXL375擴(kuò)展板、精訊暢通CO、NH3有害氣體模組、噪聲板卡等。

RT-Thread版本:RT-Thread V 4.0.2

開發(fā)工具及版本:RT-Thread-Studio

RT-Thread使用情況概述

內(nèi)核部分:調(diào)度器,信號量,線程,中斷,設(shè)備。

調(diào)度器:創(chuàng)建多個線程來實(shí)現(xiàn)不同的工作。

信號量:用來同步線程和資源分配。

SPI框架:使用 SPI 框架來驅(qū)動ADXL375。

I2C框架:使用 I2C 框架來驅(qū)動BME280。

串口驅(qū)動框架:使用串口框架來采集CO濃度,NH3濃度和噪音分貝。

設(shè)備:使用了SPI總線,SPI設(shè)備,uart,I2C總線等。

硬件框架

軟件框架

MCU 上電之后初始化外設(shè)接口和傳感器工作參數(shù)配置,之后會持續(xù)獲取傳感器采樣值并通過串口以50Hz的速率發(fā)送數(shù)據(jù)到上位機(jī)。

軟件模塊說明

設(shè)備:

UART:  uart1、uart4

SPI:SPI2總線,SPI20設(shè)備(ADXL375)

I2C:  I2C4

PIN:GPIOI8、GPIOC15、GPIOD13、GPIOH4

線程

1、LED_Blink:  LED閃爍線程,用來指示當(dāng)前系統(tǒng)的運(yùn)行狀態(tài),輸出數(shù)據(jù)時藍(lán)燈閃爍,否則紅燈閃爍。

2、Print_Task:  通過串口4將采集到的數(shù)據(jù)以50Hz頻率、字符形式上傳至PC端。

3、Noise_Task:  通過串口1以5Hz的速率讀取噪音分貝。

4、NH3_Task:  通過串口1以2Hz的速率讀取NH3氣體濃度。

5、CO_Task:  通過串口1以2Hz的速率讀取CO氣體濃度。

6、BMP280_Task:  通過I2C4讀取讀取溫度、濕度、氣壓等原始數(shù)據(jù)并轉(zhuǎn)換為實(shí)際數(shù)值。

7、ADXL375_Task:  通過SPI2總線讀取加速度數(shù)值,加速度采樣頻率為3200Hz,并記錄20ms內(nèi)絕對最大值。

8、button_Task:    讀取GPIOH4電平,低電平輸出數(shù)據(jù),高電平停止輸出。

信號量:

1、water_mark_sem:  ADXL375水印中斷,通過GPIOD13中斷輸入,用來同步ADXL375_Task 線程及時從器件FIFO中讀取樣本。

2、serial1_sem: 用來指示串口1可用狀況,線程CO_Task、NH3_Task、Noise_Task會先獲取此信號量,只有獲取到之后才能使用串口1,并在使用完之后釋放此信號量。此信號量用來避免串口訪問沖突。

3、serial1_tx_sem:  串口1通過中斷模式發(fā)送數(shù)據(jù),此信號指示數(shù)據(jù)發(fā)送完成。

4、serial1_rx_sem: 串口1通過中斷模式接收數(shù)據(jù),此信號指示數(shù)據(jù)接收完成。

演示效果

比賽感悟

非常感謝主辦方提供的這次契機(jī),讓我有幸一窺當(dāng)下MCU發(fā)展的主流趨勢。通過學(xué)習(xí)RT-Thread,我學(xué)到了很多很多以前從未接觸到的概念,編程思想等等,讓我對MCU編程有了全新的認(rèn)識。尤其是其  對象  的概念,讓我對嵌入式編程有了全新的理解。在此之前我還在裸機(jī),寄存器,外設(shè),驅(qū)動包等等之間徘徊,深陷其中不能自拔。偶然有幸接觸到RT-Thread,讓我醍醐灌頂。原來還有這樣騷操作。

遙想大學(xué)還在玩51,畢業(yè)之后種種原因并未從事單片機(jī)嵌入式方向的工作。轉(zhuǎn)眼間五六年過去,去年重拾MCU,又誤入AVR mage64系列(手動狗頭)。當(dāng)真正開始學(xué)習(xí)STM32系列單片機(jī)系列之后,和寄存器大眼瞪小眼,外設(shè)五花八門,標(biāo)準(zhǔn)庫,HAL庫等等資料多到眼花繚亂,各種參考資料久久不得啃下,自學(xué)之路崎嶇又坎坷。此次大賽有幸初次相識RT-thread,一見方恨晚。

時代的發(fā)展,MCU的性能也越來越強(qiáng),萬物互聯(lián)的需求也愈加強(qiáng)烈,使用RTOS來實(shí)現(xiàn)物與網(wǎng)的鏈接,是時代發(fā)展的潮流。接下來的嵌入式開發(fā)里緊繞RT-Thread這顆大樹,汲取難得的養(yǎng)料。

最后感謝主辦方提供了這么好的一個平臺,不僅能展示自我,也能學(xué)到很多知識,還要感謝論壇上那些解決我問題以及制作軟件包的大佬,希望有朝一日我也能給開源社區(qū)貢獻(xiàn)一份自己力量。

  • RT-Thread_ENV0.2.zip
  • 代碼地址.txt
  • 車載環(huán)境參數(shù)采集終端設(shè)計說明.docx

相關(guān)推薦

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