01 引言
在當(dāng)今快速發(fā)展的科技時(shí)代,環(huán)境監(jiān)測已經(jīng)成為眾多領(lǐng)域中不可或缺的一部分。從城市規(guī)劃到工業(yè)生產(chǎn),從農(nóng)業(yè)管理到健康生活,環(huán)境監(jiān)測技術(shù)的應(yīng)用無處不在,為人類提供了對自然環(huán)境變化的實(shí)時(shí)洞察,幫助我們做出更加科學(xué)合理的決策。
環(huán)境監(jiān)測的核心在于通過各類傳感器收集溫度、濕度、光照、空氣質(zhì)量、氣體成分、水質(zhì)和噪聲等數(shù)據(jù),并傳輸至嵌入式終端設(shè)備進(jìn)行處理和分析。嵌入式終端設(shè)備作為系統(tǒng)的“大腦”,不僅負(fù)責(zé)讀取傳感器數(shù)據(jù),還能夠根據(jù)預(yù)設(shè)算法執(zhí)行智能判斷,觸發(fā)相應(yīng)的控制命令或預(yù)警機(jī)制,從而實(shí)現(xiàn)自動(dòng)化管理和優(yōu)化資源配置。
舉例來說,在智慧農(nóng)業(yè)領(lǐng)域,土壤濕度傳感器和光照傳感器被廣泛應(yīng)用于灌溉系統(tǒng)和光合作用輔助系統(tǒng),在智能家居環(huán)境中,溫濕度傳感器與空氣凈化器相結(jié)合,可以根據(jù)室內(nèi)空氣狀況自動(dòng)調(diào)節(jié)工作模式,保持舒適的居住環(huán)境;而在工業(yè)場景中,有害氣體檢測傳感器能夠及時(shí)發(fā)現(xiàn)并報(bào)告異常排放,防止環(huán)境污染事件的發(fā)生。
02 項(xiàng)目介紹
《環(huán)境監(jiān)測項(xiàng)目》是一個(gè)智能傳感器控制系統(tǒng),項(xiàng)目實(shí)戰(zhàn)平臺(tái)是基于華清遠(yuǎn)見自主研發(fā)的嵌入式Linux教學(xué)級開發(fā)板——FS-MP1A開發(fā)板。該開發(fā)板主控為STM32MP157,集成2個(gè)Cortex-A7核和1個(gè)Cortex-M4核。A7核上可以跑Linux操作系統(tǒng),在本項(xiàng)目中主要是Linux+Qt應(yīng)用開發(fā),M4核要通過A7核啟動(dòng),在本項(xiàng)目里,M4主要是用于實(shí)現(xiàn)對傳感器的控制和數(shù)據(jù)讀取。
項(xiàng)目可以通過軟件指令輕松管理傳感器,讓它們按照我們的需求工作。M4芯片收集傳感器的數(shù)據(jù),并將這些信息顯示在屏幕上,讓我們一目了然。而且,系統(tǒng)還能根據(jù)我們設(shè)定的條件自動(dòng)做出反應(yīng),比如溫度高了就自動(dòng)開風(fēng)扇,讓傳感器變得更加智能和方便。
03 項(xiàng)目涉及技術(shù)點(diǎn)
①通過STM32CubeIDE,配置A7啟動(dòng)M4的程序
②通過虛擬串口進(jìn)行下發(fā)消息,實(shí)現(xiàn)功能
③接收消息,呈現(xiàn)到UI界面上
04 項(xiàng)目實(shí)現(xiàn)
項(xiàng)目總體設(shè)計(jì)
以下內(nèi)容主要講解,如何使用我們提供的項(xiàng)目源碼,將項(xiàng)目在開發(fā)板上運(yùn)行起來。
- M4部分功能概述
M4 核部分主要實(shí)現(xiàn)兩個(gè)功能,首先可以接收 A7 核發(fā)送的指令,根據(jù)指令控制風(fēng)扇、蜂鳴器以及 LED燈工作,同時(shí) M4 部分可以采集環(huán)境光、溫濕度傳感器數(shù)據(jù),將采集數(shù)值打包成 JSON 字符串然后發(fā)送給 A7。另外,通過按鍵可以控制數(shù)碼管顯示采集的溫濕度、環(huán)境光數(shù)據(jù)。
- cubeIDE功能配置
首先打開cubeIDE,創(chuàng)建一個(gè)新工程,進(jìn)入cubeMX 配置界面,因?yàn)樾枰獙?shí)現(xiàn)A7與M4 通信,需要配置IPCC與OPENAMP部分,如下圖所示:
(配置 IPCC)
(配置OPENAMP)
配置I2C1用于采集溫濕度、環(huán)境光傳感器數(shù)據(jù),這里分別選擇PF14、PF15 引腳用作I2C1_SDA 和I2C1_SCL功能。
(配置 I2C1)
因?yàn)樾枰玫?a target="_blank">數(shù)碼管顯示采集的傳感器數(shù)值,這里通過 SPI 進(jìn)行控制,使用 SPI 默認(rèn)引腳,分別對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)
擴(kuò)展板 LED 燈對應(yīng)的GPIO 引腳分別為PE8、PE10、PF10,這里左鍵點(diǎn)擊設(shè)置為GPIO_Output
(配置引腳為輸出)
可以通過按鍵中斷控制數(shù)碼管顯示的數(shù)值,這里配置擴(kuò)展板的按鍵為 PF9,如下所示
(配置外部中斷)
另外,這里還需要對剛才配置的 I/O 引腳設(shè)置“ Pin Reservation”給“ Cortex-M4”,否則 STM32CubeMX不會(huì)生生成 GPIO 初始化相關(guān)代碼。具體操作:在剛才選擇的引腳上,鼠標(biāo)右鍵選擇“ Pin Reservation”->“ Cortex-M4”。
(選擇Cortex-M4)
打開GPIO 標(biāo)簽,對 PF9 引腳進(jìn)行配置
實(shí)驗(yàn)中還用到了蜂鳴器與風(fēng)扇,查看原理圖得,對應(yīng)管腳分別為 PB6 與 PE9,分別配置為 TIM4 與TIM1 功能,在本次實(shí)驗(yàn)中,系統(tǒng)默認(rèn)時(shí)鐘頻率為 64MHz,TIM 配置如下所示
(配置 TIM4)
(配置 TIM1)
如果實(shí)現(xiàn)開發(fā)板與電腦串口通信,這里可以通過 485 總線實(shí)現(xiàn),即配置UART5,如下所示
(配置 UART5)
(配置 UART5)
另外,在本次實(shí)驗(yàn)中,A7 與 M4 數(shù)據(jù)通信和數(shù)碼管顯示相當(dāng)于同時(shí)運(yùn)行,可以通過配置 FreeRTOS 實(shí)現(xiàn)多任務(wù)運(yùn)行。切換到中間件“Middleware”的“FREERTOS”,默認(rèn)自動(dòng)勾選給 M4 了,然后接口“Interface”選擇“CMSIS_V2”。為了運(yùn)行其他任務(wù),這里需要切換到“Tasks and Queues”標(biāo)簽,可以看到看到默認(rèn)有個(gè)“defaultTask”任務(wù),我們點(diǎn)擊“Add”再新增一個(gè)任務(wù),如圖所示
(配置 FreeRTOS)
上述配置完成以后,還要注意一點(diǎn),因?yàn)橛玫?FreeRTOS,這里我們不能為每一種外設(shè)生成頭文件,如下所示
配置完成以后保存,然后生成初始化代碼,其間會(huì)出現(xiàn)如下提示框,選擇“Yes”
編譯 qt 界面應(yīng)用程序
①導(dǎo)入 sdk
sdk 位置在【08-Qt 綜合項(xiàng)目開發(fā)教程\工具軟件\sdk\arm-fsmp1x-linux-gnueabihf_sdk-buildroot.tar.gz】,將源碼拷貝到虛擬機(jī)中進(jìn)行解壓并進(jìn)入到工程目錄下
(示例圖)
重定向 sdk 位置
②獲取應(yīng)用程序源碼
源碼位置【08-Qt 綜合項(xiàng)目開發(fā)教程\08-環(huán)境監(jiān)測項(xiàng)目\01-環(huán)境監(jiān)測項(xiàng)目配套示例代碼\7 寸屏幕程序源碼】中的 8_EnvironmentalTest 文件,將源碼拷貝到虛擬機(jī)中進(jìn)行解壓并進(jìn)入到工程目錄下(這里以 7 寸屏幕為例)
③打開 qt 工程編譯
在 qt 中導(dǎo)入 8_EnvironmentalTest 文件中的.pro 文件,導(dǎo)入完成,如下圖所示:
選擇好自己配置的編譯器,點(diǎn)擊如圖所示左下角圖標(biāo)進(jìn)行編譯。
編譯完成會(huì)生成編譯好的文件,和工程文件在相同目錄下。
(查看 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
傳輸成功后會(huì)在開發(fā)板的【~】目錄下看到可執(zhí)行文件
(示例圖)
應(yīng)用程序運(yùn)行
使用下面的命令執(zhí)行可執(zhí)行程序
(運(yùn)行可執(zhí)行程序)
可以看到下面的界面。然后我們可以參照 2.4.1 章節(jié)開始操作,去實(shí)現(xiàn)我們相應(yīng)的模塊。
(示例圖)
除了上面如何將項(xiàng)目在板子上跑起來外,項(xiàng)目說明文檔內(nèi)容還包括項(xiàng)目功能演示、項(xiàng)目源碼分析以及SQLite安裝及系統(tǒng)命令等,詳細(xì)項(xiàng)目文檔目錄如下圖。
后臺(tái)私信小雯老師(備注:環(huán)境監(jiān)測),免費(fèi)領(lǐng)取《環(huán)境監(jiān)測》項(xiàng)目完整文檔、項(xiàng)目源碼。
05 硬件平臺(tái)
《環(huán)境監(jiān)測》是一個(gè)Linux+Qt的綜合項(xiàng)目,硬件平臺(tái)是華清遠(yuǎn)見FS-MP1A開發(fā)板(主控STM32MP157)
開發(fā)板簡介
FS-MP1A開發(fā)板是華清遠(yuǎn)見自主研發(fā)的一款高品質(zhì)、高性價(jià)比的Linux+單片機(jī)二合一的嵌入式Linux教學(xué)級開發(fā)板,也是ST官方推薦的一款STM32 Linux開發(fā)板。
搭配仿真器、顯示屏、攝像頭、資源擴(kuò)展板等豐富的擴(kuò)展模塊,可拓展物聯(lián)網(wǎng)、人工智能等相關(guān)技術(shù)學(xué)習(xí),還可以拓展豐富的項(xiàng)目實(shí)戰(zhàn),非常貼合企業(yè)當(dāng)下開發(fā)需求,是一款嵌入式Linux入門進(jìn)階必備開發(fā)板!
FS-MP1A開發(fā)板配套豐富的學(xué)習(xí)資源,包括開發(fā)教程、視頻課程及Linux+Qt綜合項(xiàng)目案例??蓪?shí)戰(zhàn)“音樂播放器、智慧家庭、智能工業(yè)電表、智能出行助手、智能貓眼、環(huán)境監(jiān)測、智能安防、智能語音識別”等10余個(gè)項(xiàng)目案例,涉及家居、醫(yī)療、農(nóng)業(yè)多種應(yīng)用方向,在案例中使用了多種物聯(lián)網(wǎng)和嵌入式技術(shù),包括Qt開發(fā)、linux應(yīng)用開發(fā)、linux驅(qū)動(dòng)開發(fā)、物聯(lián)網(wǎng)云端接入、MQTT協(xié)議、json字符串等知識點(diǎn)。“硬件+項(xiàng)目”的優(yōu)勢,也使其廣泛應(yīng)用于高校教學(xué)、學(xué)生畢設(shè)以及個(gè)人開發(fā)學(xué)習(xí)。
配套學(xué)習(xí)路線推薦
嵌入式linux開發(fā)建議從應(yīng)用層開始學(xué)起,因?yàn)槿菀卓焖偕鲜植@得成就感。這個(gè)方向主要是依靠經(jīng)驗(yàn),不斷地積累不同行業(yè)的項(xiàng)目開發(fā)經(jīng)驗(yàn),會(huì)讓你在職場上更有優(yōu)勢。
對于初學(xué)者,在找工作前,也可以多做一些項(xiàng)目案例練手,在實(shí)戰(zhàn)中去理解并應(yīng)用技術(shù)。有精力的話,最好可以基于我們的開發(fā)板去拓展一些功能更豐富的項(xiàng)目,做更多技術(shù)上的創(chuàng)新拓展,去參加一些競賽,DIY一些更接近實(shí)際產(chǎn)品的項(xiàng)目,這樣的經(jīng)歷,也會(huì)為你的簡歷及面試加分不少。
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19123瀏覽量
305150 -
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209476 -
監(jiān)測
+關(guān)注
關(guān)注
2文章
3611瀏覽量
44524 -
畢業(yè)設(shè)計(jì)
+關(guān)注
關(guān)注
7文章
226瀏覽量
15495
發(fā)布評論請先 登錄
相關(guān)推薦
評論