01 引言
在當(dāng)今快速發(fā)展的科技時代,環(huán)境監(jiān)測已經(jīng)成為眾多領(lǐng)域中不可或缺的一部分。從城市規(guī)劃到工業(yè)生產(chǎn),從農(nóng)業(yè)管理到健康生活,環(huán)境監(jiān)測技術(shù)的應(yīng)用無處不在,為人類提供了對自然環(huán)境變化的實時洞察,幫助我們做出更加科學(xué)合理的決策。
環(huán)境監(jiān)測的核心在于通過各類傳感器收集溫度、濕度、光照、空氣質(zhì)量、氣體成分、水質(zhì)和噪聲等數(shù)據(jù),并傳輸至嵌入式終端設(shè)備進行處理和分析。嵌入式終端設(shè)備作為系統(tǒng)的“大腦”,不僅負責(zé)讀取傳感器數(shù)據(jù),還能夠根據(jù)預(yù)設(shè)算法執(zhí)行智能判斷,觸發(fā)相應(yīng)的控制命令或預(yù)警機制,從而實現(xiàn)自動化管理和優(yōu)化資源配置。
舉例來說,在智慧農(nóng)業(yè)領(lǐng)域,土壤濕度傳感器和光照傳感器被廣泛應(yīng)用于灌溉系統(tǒng)和光合作用輔助系統(tǒng),在智能家居環(huán)境中,溫濕度傳感器與空氣凈化器相結(jié)合,可以根據(jù)室內(nèi)空氣狀況自動調(diào)節(jié)工作模式,保持舒適的居住環(huán)境;而在工業(yè)場景中,有害氣體檢測傳感器能夠及時發(fā)現(xiàn)并報告異常排放,防止環(huán)境污染事件的發(fā)生。
02 項目介紹
《環(huán)境監(jiān)測項目》是一個智能傳感器控制系統(tǒng),項目實戰(zhàn)平臺是基于華清遠見自主研發(fā)的嵌入式Linux教學(xué)級開發(fā)板——FS-MP1A開發(fā)板。該開發(fā)板主控為STM32MP157,集成2個Cortex-A7核和1個Cortex-M4核。A7核上可以跑Linux操作系統(tǒng),在本項目中主要是Linux+Qt應(yīng)用開發(fā),M4核要通過A7核啟動,在本項目里,M4主要是用于實現(xiàn)對傳感器的控制和數(shù)據(jù)讀取。
項目可以通過軟件指令輕松管理傳感器,讓它們按照我們的需求工作。M4芯片收集傳感器的數(shù)據(jù),并將這些信息顯示在屏幕上,讓我們一目了然。而且,系統(tǒng)還能根據(jù)我們設(shè)定的條件自動做出反應(yīng),比如溫度高了就自動開風(fēng)扇,讓傳感器變得更加智能和方便。

03 項目涉及技術(shù)點
①通過STM32CubeIDE,配置A7啟動M4的程序
②通過虛擬串口進行下發(fā)消息,實現(xiàn)功能
③接收消息,呈現(xiàn)到UI界面上
04 項目實現(xiàn)
項目總體設(shè)計

以下內(nèi)容主要講解,如何使用我們提供的項目源碼,將項目在開發(fā)板上運行起來。
- M4部分功能概述
M4 核部分主要實現(xiàn)兩個功能,首先可以接收 A7 核發(fā)送的指令,根據(jù)指令控制風(fēng)扇、蜂鳴器以及 LED燈工作,同時 M4 部分可以采集環(huán)境光、溫濕度傳感器數(shù)據(jù),將采集數(shù)值打包成 JSON 字符串然后發(fā)送給 A7。另外,通過按鍵可以控制數(shù)碼管顯示采集的溫濕度、環(huán)境光數(shù)據(jù)。
- cubeIDE功能配置
首先打開cubeIDE,創(chuàng)建一個新工程,進入cubeMX 配置界面,因為需要實現(xiàn)A7與M4 通信,需要配置IPCC與OPENAMP部分,如下圖所示:

(配置 IPCC)

(配置OPENAMP)
配置I2C1用于采集溫濕度、環(huán)境光傳感器數(shù)據(jù),這里分別選擇PF14、PF15 引腳用作I2C1_SDA 和I2C1_SCL功能。

(配置 I2C1)
因為需要用到數(shù)碼管顯示采集的傳感器數(shù)值,這里通過 SPI 進行控制,使用 SPI 默認引腳,分別對PE11、PE12、PE13 和 PE14 配置為 SPI4_NSS、SPI4_SCK、SPI4_MISO 和 SPI4_MOSI。切換到 SPI4 標(biāo)簽,勾選給“M4”,“Mode”選擇“Full-Duplex-Master”,使用硬件片選,選擇“Hardware NSS Output Signal”,其配置如下圖所示。

(配置SPI4)
擴展板 LED 燈對應(yīng)的GPIO 引腳分別為PE8、PE10、PF10,這里左鍵點擊設(shè)置為GPIO_Output

(配置引腳為輸出)
可以通過按鍵中斷控制數(shù)碼管顯示的數(shù)值,這里配置擴展板的按鍵為 PF9,如下所示

(配置外部中斷)
另外,這里還需要對剛才配置的 I/O 引腳設(shè)置“ Pin Reservation”給“ Cortex-M4”,否則 STM32CubeMX不會生生成 GPIO 初始化相關(guān)代碼。具體操作:在剛才選擇的引腳上,鼠標(biāo)右鍵選擇“ Pin Reservation”->“ Cortex-M4”。

(選擇Cortex-M4)
打開GPIO 標(biāo)簽,對 PF9 引腳進行配置

實驗中還用到了蜂鳴器與風(fēng)扇,查看原理圖得,對應(yīng)管腳分別為 PB6 與 PE9,分別配置為 TIM4 與TIM1 功能,在本次實驗中,系統(tǒng)默認時鐘頻率為 64MHz,TIM 配置如下所示

(配置 TIM4)

(配置 TIM1)
如果實現(xiàn)開發(fā)板與電腦串口通信,這里可以通過 485 總線實現(xiàn),即配置UART5,如下所示

(配置 UART5)

(配置 UART5)
另外,在本次實驗中,A7 與 M4 數(shù)據(jù)通信和數(shù)碼管顯示相當(dāng)于同時運行,可以通過配置 FreeRTOS 實現(xiàn)多任務(wù)運行。切換到中間件“Middleware”的“FREERTOS”,默認自動勾選給 M4 了,然后接口“Interface”選擇“CMSIS_V2”。為了運行其他任務(wù),這里需要切換到“Tasks and Queues”標(biāo)簽,可以看到看到默認有個“defaultTask”任務(wù),我們點擊“Add”再新增一個任務(wù),如圖所示

(配置 FreeRTOS)
上述配置完成以后,還要注意一點,因為用到 FreeRTOS,這里我們不能為每一種外設(shè)生成頭文件,如下所示

配置完成以后保存,然后生成初始化代碼,其間會出現(xiàn)如下提示框,選擇“Yes”

編譯 qt 界面應(yīng)用程序
①導(dǎo)入 sdk
sdk 位置在【08-Qt 綜合項目開發(fā)教程\工具軟件\sdk\arm-fsmp1x-linux-gnueabihf_sdk-buildroot.tar.gz】,將源碼拷貝到虛擬機中進行解壓并進入到工程目錄下


(示例圖)
重定向 sdk 位置

②獲取應(yīng)用程序源碼
源碼位置【08-Qt 綜合項目開發(fā)教程\08-環(huán)境監(jiān)測項目\01-環(huán)境監(jiān)測項目配套示例代碼\7 寸屏幕程序源碼】中的 8_EnvironmentalTest 文件,將源碼拷貝到虛擬機中進行解壓并進入到工程目錄下(這里以 7 寸屏幕為例)

③打開 qt 工程編譯
在 qt 中導(dǎo)入 8_EnvironmentalTest 文件中的.pro 文件,導(dǎo)入完成,如下圖所示:

選擇好自己配置的編譯器,點擊如圖所示左下角圖標(biāo)進行編譯。

編譯完成會生成編譯好的文件,和工程文件在相同目錄下。

(查看 build 文件)

(查看 build 文件)
④拷貝可執(zhí)行文件
通過有線直連的方式將路由器和開發(fā)板用網(wǎng)線連接,電腦連接路由器的 wifi,讓開發(fā)板和電腦是同一網(wǎng)段。
首先我們在開發(fā)板上使用 ifconfig 命令獲得 ip

可以看到我的開發(fā)板 ip 為 192.168.3.18,再通過 scp 命令將可執(zhí)行文件拷貝到開發(fā)板當(dāng)中,將命令中的 ip 換為你的開發(fā)板 ip
傳輸成功后會在開發(fā)板的【~】目錄下看到可執(zhí)行文件

(示例圖)
應(yīng)用程序運行
使用下面的命令執(zhí)行可執(zhí)行程序


(運行可執(zhí)行程序)
可以看到下面的界面。然后我們可以參照 2.4.1 章節(jié)開始操作,去實現(xiàn)我們相應(yīng)的模塊。

(示例圖)
除了上面如何將項目在板子上跑起來外,項目說明文檔內(nèi)容還包括項目功能演示、項目源碼分析以及SQLite安裝及系統(tǒng)命令等,詳細項目文檔目錄如下圖。

后臺私信小雯老師(備注:環(huán)境監(jiān)測),免費領(lǐng)取《環(huán)境監(jiān)測》項目完整文檔、項目源碼。
05 硬件平臺
《環(huán)境監(jiān)測》是一個Linux+Qt的綜合項目,硬件平臺是華清遠見FS-MP1A開發(fā)板(主控STM32MP157)
開發(fā)板簡介
FS-MP1A開發(fā)板是華清遠見自主研發(fā)的一款高品質(zhì)、高性價比的Linux+單片機二合一的嵌入式Linux教學(xué)級開發(fā)板,也是ST官方推薦的一款STM32 Linux開發(fā)板。
搭配仿真器、顯示屏、攝像頭、資源擴展板等豐富的擴展模塊,可拓展物聯(lián)網(wǎng)、人工智能等相關(guān)技術(shù)學(xué)習(xí),還可以拓展豐富的項目實戰(zhàn),非常貼合企業(yè)當(dāng)下開發(fā)需求,是一款嵌入式Linux入門進階必備開發(fā)板!

FS-MP1A開發(fā)板配套豐富的學(xué)習(xí)資源,包括開發(fā)教程、視頻課程及Linux+Qt綜合項目案例。可實戰(zhàn)“音樂播放器、智慧家庭、智能工業(yè)電表、智能出行助手、智能貓眼、環(huán)境監(jiān)測、智能安防、智能語音識別”等10余個項目案例,涉及家居、醫(yī)療、農(nóng)業(yè)多種應(yīng)用方向,在案例中使用了多種物聯(lián)網(wǎng)和嵌入式技術(shù),包括Qt開發(fā)、linux應(yīng)用開發(fā)、linux驅(qū)動開發(fā)、物聯(lián)網(wǎng)云端接入、MQTT協(xié)議、json字符串等知識點。“硬件+項目”的優(yōu)勢,也使其廣泛應(yīng)用于高校教學(xué)、學(xué)生畢設(shè)以及個人開發(fā)學(xué)習(xí)。
配套學(xué)習(xí)路線推薦

嵌入式linux開發(fā)建議從應(yīng)用層開始學(xué)起,因為容易快速上手并獲得成就感。這個方向主要是依靠經(jīng)驗,不斷地積累不同行業(yè)的項目開發(fā)經(jīng)驗,會讓你在職場上更有優(yōu)勢。

對于初學(xué)者,在找工作前,也可以多做一些項目案例練手,在實戰(zhàn)中去理解并應(yīng)用技術(shù)。有精力的話,最好可以基于我們的開發(fā)板去拓展一些功能更豐富的項目,做更多技術(shù)上的創(chuàng)新拓展,去參加一些競賽,DIY一些更接近實際產(chǎn)品的項目,這樣的經(jīng)歷,也會為你的簡歷及面試加分不少。
-
嵌入式
+關(guān)注
關(guān)注
5148文章
19634瀏覽量
316810 -
Linux
+關(guān)注
關(guān)注
87文章
11506瀏覽量
213467 -
監(jiān)測
+關(guān)注
關(guān)注
2文章
3959瀏覽量
45533 -
畢業(yè)設(shè)計
+關(guān)注
關(guān)注
7文章
234瀏覽量
15756
發(fā)布評論請先 登錄
【書籍評測活動NO.61】Yocto項目實戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)
畢業(yè)設(shè)計競賽選題推薦 | HaaS EDU物聯(lián)網(wǎng)應(yīng)用之野外救援項目實戰(zhàn)

嵌入式芯片與系統(tǒng)設(shè)計競賽實戰(zhàn)指南:選題方向與備賽策略詳解

畢業(yè)設(shè)計競賽選題推薦 | HaaS EDU物聯(lián)網(wǎng)應(yīng)用之微信小程序云養(yǎng)花項目實戰(zhàn)(含文檔及源碼)

畢業(yè)設(shè)計競賽選題推薦 | 鴻蒙物聯(lián)網(wǎng)應(yīng)用之倒車?yán)走_項目實戰(zhàn)(含文檔及源碼)

畢業(yè)設(shè)計競賽選題推薦 | 鴻蒙物聯(lián)網(wǎng)應(yīng)用之智能測距儀項目實戰(zhàn)(含文檔及源碼)

畢業(yè)設(shè)計競賽選題推薦 | 鴻蒙物聯(lián)網(wǎng)應(yīng)用之智慧農(nóng)業(yè)項目實戰(zhàn)(含文檔及源碼)

畢業(yè)設(shè)計競賽選題推薦 | 鴻蒙物聯(lián)網(wǎng)應(yīng)用之智慧安防報警項目實戰(zhàn)(含文檔及源碼)

畢業(yè)設(shè)計競賽選題推薦 | 鴻蒙物聯(lián)網(wǎng)應(yīng)用之智能溫度計項目實戰(zhàn)(含文檔及源碼)

畢業(yè)設(shè)計競賽選題推薦 | 鴻蒙物聯(lián)網(wǎng)應(yīng)用之智能照明燈項目實戰(zhàn)(含文檔及源碼)

畢業(yè)設(shè)計競賽選題推薦 | 嵌入式Linux應(yīng)用之音樂播放器項目實戰(zhàn)(含文檔及源碼)

畢業(yè)設(shè)計競賽選題推薦 | 嵌入式Linux應(yīng)用之智能貓眼項目實戰(zhàn)(含文檔及源碼)

【畢設(shè)項目參考】嵌入式Linux 10+項目推薦,附項目文檔/源碼/視頻

入門?畢設(shè)?競賽?項目練手?STM32/嵌入式/物聯(lián)網(wǎng)學(xué)習(xí),有這幾款開發(fā)板就夠了!

評論