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