習昊 鄧航倫 秦明明 蔡兵



摘要:利用STM32、傳感器、無線通信和局域網,以及遠程服務器的搭建,設計出一套林業信息監測系統。該系統可完成林區綜合信息采集和展示功能。通過該系統,解決了林區氣象站信息采集不足等問題。對于林區科研人員和護林員,該系統提供了有利的數據,對掌握林區信息有重大現實意義。
關鍵詞:STM32;傳感器;LORA模塊;網絡模塊
中圖分類號:TP393 ? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)15-0062-04
1 背景
根據資料顯示,我國森林覆蓋率僅為16.56%,隨著全球天氣的突變,以及人們對林業資源的亂砍濫伐,林業環境破壞嚴重,導致產量驟然降低。林區環境信息的有效獲取對林業生長尤為重要,所以對林區進行信息監測是大勢所趨,有效的信息能大幅度減少林業資源損失,提高林業產量,維護林業發展的健康與穩定。
本系統主要針對林業環境信息進行監測,利用多種傳感器、無線模塊、局域網,自主設計研發的一套關于林業信息監控系統,對林區環境信息的數據采集與展示,提供數據給護林員或農林研究員,通過數據分析獲取林業生長信息,減小森林資源損失,為科研提供研究數據。
2 系統總體設計
根據林區環境,結合林業生長影響要素,本系統設計總圖如圖1所示。整個系統由上位機、服務器、下位機三個部分構成。上位機包括手機APP和管理系統,手機APP和管理系統能夠隨時隨地顯示系統監測數據,以及向用戶提醒數據是否異常,手機APP還具有病蟲害識別功能,用戶能夠通過手機拍照獲取照片,使用該功能識別出樹木患病與蟲害情況;服務器主要用于存儲下位機獲取的數據,提供數據給上位機,保存注冊本系統的用戶信息,是下位機與上位機連接的紐帶;下位機是以STM32為中心的硬件控制系統,分為中心節點和終端節點,中心節點用于連接服務器,與服務器進行數據傳輸,終端節點用于讀取傳感器數據并將數據按規定格式回傳中心節點上傳服務器。通過廣域網與局域網的支撐,有線數據傳輸與無線數據傳輸的結合,本系統適合用于各大小林區林業信息與氣象信息監測。
3 系統硬件電路設計
3.1 中心處理器 STM32F103RCT6
STM32F103RCT6是一種嵌入式-微控制器的集成電路(IC)。芯片內部擁有2個基本定時器、4個通用定時器、2個高級定時器、2個DMA控制器(共12個通道)、3個SPI、2個IIC、5個串口、1個USB、1個CAN、3個12位ADC、1個12位DAC、1個SDIO接口及51個通用IO口。該芯片具有高性能、低功耗、低電壓等特性,同時具有高集成度和易于開發的優勢。
3.2 SX1278 LORA擴頻無線模塊
SX1278LORA擴頻無線模塊是安信可科技設計開發的一款超長距離擴頻通信模塊。它可以作為任何配備有SPI接口的控制器的通信工具,與STM32F103RCT6完美兼容。SX1278具有超過-148dBm的高靈敏度,+20dBm的功率輸出,傳輸距離遠,可靠性高。通信參考距離10KM,具有自動射頻信號檢測、CAD模式和超高速AFC。在本系統中主要解決了終端節點設備與中心節點設備的遠距離數據通信問題。
3.3 W5500以太網網絡模塊
W5500模塊是一款集成了全硬件TCP/IP協議棧的以太網模塊。它可以作為任何配備有SPI接口的控制器的通信工具,與STM32F103RCT6完美兼容。該模塊無須編寫以太網底層代碼實現TCP/IP協議棧、支持TCP、UDP、IPV4ICMP、ARP、IGMP以及PPPOE協議,支持10/100MBPs傳輸速率、休眠模式和網絡喚醒,通信速率高達8MHz,三種工作模式:客戶端、服務端和UDP,工作電壓:3.3V或5V。在本系統中完成了中心節點與服務器的數據傳輸功能。
3.4 傳感器電路設計
本系統主要針對林區林業信息的監測與林業病蟲害的預防,為保證監測的精準度和可靠性,必須選擇適合野外長期穩定工作的傳感器。經查閱大量有關林業生長信息的文獻后發現影響林業生長的要素主要為大氣溫度、大氣濕度、土壤水分、土壤PH、光照強度等,病蟲害預防主要對林葉進行圖像處理。綜合考慮后選擇的傳感器為大氣溫濕度傳感器、土壤濕度傳感器、土壤PH傳感器、光電式總輻射傳感器。
1) YGC-QWS 大氣溫濕一體傳感器
YGC-QWS 大氣溫濕一體傳感器為485型傳感器,輸出信號為RS485,溫度量程:-40℃~80℃,濕度量程:0~100%RH,工作電壓:5V。
2) ZZ-S-GTH-A 485型土壤濕度傳感器
ZZ-S-GTH-A 485型土壤濕度傳感器,輸出信號為RS485,濕度量程:-45℃~115℃,工作電壓:12~24V。
3) ST-TPH-10 485型土壤PH傳感器
ST-TPH-10 485型土壤PH傳感器,輸出信號為RS485,PH量程:4~10PH,工作電壓:12~24V。
4)YGC-JYZ 光電式總輻射傳感器
YGC-JYZ 光電式總輻射傳感器,輸出信號為模擬電壓:0~2.5V,工作電壓:5V,計算公式為[E=V/2.5×1500](E為測量輻射值(W/m2),V為輸出電壓(V))。
上述傳感器多為485型傳感器,為了便于合理的控制各個傳感器工作,設計出RS485電路和開關電路;485電路:STM32的串口1通過RS485電路與傳感器的A+、B-連接,控制傳感器工作;5V、12V開關電路:由于傳感器工作電壓不同,同時也不需要實時監測與上傳數據,為了節省功耗設計出開關電路便于定時控制電壓輸出進而控制傳感器工作。
4 系統軟件設計
4.1 上位機軟件介紹
4.1.1 系統APP軟件工作流程
本系統APP,主要負責和服務器端通信。下位機利用單片機采集溫度,濕度,土壤PH值等環境因子并通過TCP scoket通信到云服務器端。云服務器端將數據存儲到數據庫中,當APP登錄成功之后,啟動Service服務,APP和云服務器端建立了scoket通信。云服務器端每隔五分鐘向APP發送實時數據,Service服務中的TCP客戶端接收數據通過廣播發送出去,在需要接收的Activity中創建廣播接收器,接收數據包解析后以不同控件的方式顯示在界面上;若用戶需要請求云服務端時,Activity通過Intents向Service傳遞請求命令,Service響應請求命令后發送到云服務器端的。界面的人機交互通過監聽事件實現,當監聽到地圖顯示事件或圖像識別事件觸發時調用對應的API接口,然后將返回數據展示在界面上。APP系統工作流程圖如下圖2所示:
4 .1.2 系統APP軟件設計
因為需要遠程展示監控數據,所以必須有從網絡獲取數據,鑒于直接和單片機等硬件電路板通信的諸多不便,系統設計時需要一個中間服務器承載數據,作為數據的中繼。具體流程為通過單片機采集溫度、濕度、土壤P H值等數據,封裝為指定格式數據,上傳到中間服務器,APP從服務器獲取所需數據,按指定格式解析,獲取溫度、濕度、土壤PH等值展示在界面。
軟件由5大部分組成,組成如下(智能云網關監測系統APP系統框圖如下圖3所示):
1)用戶登錄、注冊管理
通過對SQLite數據庫的簡單操作,實現用戶賬號的登錄、注冊。
2) Activity交互
在Service服務中保持TCPsocket的連接,接收數據包和發送數據包,然后通過在Service服務創建廣播,在Activity中創建廣播接收器實現數據從Service傳遞到Activity中。
3)TCP客戶端
設置IP地址和端口號,然后建立與TCP服務器的連接,保證和服務器端正常的數據接收和發送。
4)監測點信息展示
解析后的實時數據以進度條的形式顯示,方便直觀;歷史數據以曲線圖的形式顯示;監測點坐標顯示以百度地圖展示。實時數據顯示如下圖5所示:
5)病蟲害識別
首先利用百度EasyDL定制化訓練平臺,創建訓練集庫,獲取API和SDK。然后手機拍照,調用API將圖片發送到百度云上進行圖像識別,將圖片的識別結果返回到APP上顯示。
4.2 下位機軟件介紹
在本系統中,下位機分為兩個節點:終端節點和中心節點。終端節點主要負責與各個傳感器通信,讀取與處理各個傳感器數據,將數據通過LORA模塊傳回中心節點;中心節點主要負責校驗回傳數據,將數據發送至云服務器存儲,便于上位機調取數據。
終端節點軟件具體工作流程:系統上電,初始化完成,系統開始工作;控制器STM32定時打開開關電路,傳感器上電開始工作,通過RS485電路與傳感器通信,讀取傳感器返回數據,提取數據保存;LORA模塊定時將數據回傳給中心節點;回傳數據完成后接收中心節點返回指令,判斷是否需要再次讀取與回傳數據。
中心節點軟件具體工作站流程:系統上電,初始化完成,系統開始工作;控制器STM32接收終端節點回傳數據,校驗回傳數據是否正確;數據出錯則發送命令給終端節點再次讀取與回傳數據;數據正確則將數據通過W5500網絡模塊發送至云服務器存儲,提供給上位機讀取調用。
下位機工作流程圖如下圖6所示:
5 結束語
本系統采用傳感器、ARM控制技術、無線傳輸技術以及遠程服務器和系統管理軟件搭建,自主研發了一套林業信息可視化監測系統。系統監測信息包括大氣溫濕度、土壤濕度、土壤PH和光照強度,一定程度上涵蓋了林業生長所需的影響要素。
通過本系統的監測信息,可以了解到林區樹木所需的生長因子變換情況,及時對林區環境進行控制,農林研究員可以根據本系統所提供的數據實時掌握林區樹木生長信息、氣象信息等,為科研工作提供了有利幫助;護林員可以根據系統數據及時了解到樹木生長狀況,預防病蟲害和天氣變化等自然災害,減小林業損失,維護林業發展的健康與穩定。
本系統有很強的實用性,致力廣泛應用于林區林業信息與氣象監測。
參考文獻:
[1] 劉云莉. 面向智慧林業環境因子監測系統的研究與設計[J]. 物聯網技術, 2016, 6(4): 66-68.
[2] 于泓博, 賈煬, 王治良. 基于北斗和ZigBee的森林環境監測系統研究[J]. 科技視界, 2018(31): 125-126.
[3] 李昊. 面向森林環境的動態監測及數據可視化分析研究[D]. 北京: 北京工業大學, 2017.
[4] 顧垚江, 錢佳偉, 倪陳龍, 等. 基于移動通信的森林安全監測系統[J]. 測控技術, 2017, 36(10): 20-23.
[5] 趙家剛, 李俊萩. C語言程序設計[M]. 成都: 西南交通大學出版社, 2010: 1-296.
[6] 萬隆, 巴奉麗. 單片機原理及應用技術[M]. 北京: 清華大學出版社, 2010: 1-380.
[7] 孫肖子, 張企民. 模擬電子電路及技術基礎[M]. 西安: 西安電子科技大學出版社, 2008: 1-390.
[8] 魯寧, 寇衛利, 幸宏, 等. 數據庫原理與應用[M]. 成都: 西南交通大學出版社, 2010: 1-291.
[9] 甘玲, 張璞. 解析JAVA程序設計[M]. 北京: 清華大學出版社, 2006: 1-361.
[10] Android編程權威指南[M]. 王明發, 譯. 北京: 人民郵電出版社, 2016: 147-152.
[11] 嚴蔚敏. 數據結構(C語言版)[M]. 北京: 清華大學出版社, 2012: 47-65.
【通聯編輯:謝媛媛】