關鍵詞:STM32;土壤數據;物聯(lián)網
中圖分類號:TN29 文獻標識碼:A
文章編號:1009-3044(2024)26-0086-05開放科學(資源服務)標識碼(OSID) :
0 引言
隨著全球農業(yè)的不斷發(fā)展和城市化進程的加速,土壤的健康和質量監(jiān)測顯得日益重要。土壤營養(yǎng)元素對農作物生長質量產生直接影響。由于土地利用過度、施肥過度等問題,不同土層中的氮磷鉀含量呈現出較大差異[1]。因此,土壤數據的實時監(jiān)測和分析對于提高農業(yè)生產效率、實現土地可持續(xù)管理以及環(huán)境保護至關重要。規(guī)?;r業(yè)種植地區(qū)通常面臨土壤養(yǎng)分不均勻性、養(yǎng)分失衡和水分管理等挑戰(zhàn)。為了解決這些問題,我們設計了一款基于STM32高性能32位處理器的大承包地土壤數據實時分析監(jiān)測系統(tǒng)。該系統(tǒng)旨在為規(guī)?;霓r業(yè)種植地區(qū)提供先進的土壤監(jiān)測和管理解決方案,以提高土壤質量、推動農業(yè)生產效率和土地可持續(xù)性。這對于糧食安全和環(huán)境保護至關重要,也是農業(yè)現代化的重要推動力。
1 大承包地土壤數據實時分析監(jiān)測系統(tǒng)的總體結構設計
本項目終端設備采用了STM32高性能32位處理器設計,云平臺采用OneNet云平臺設計,打造了一款用于規(guī)?;蟪邪赝寥罃祿崟r監(jiān)測分析的系統(tǒng)。該系統(tǒng)通過土壤數據傳感器采集多點土壤氮磷鉀以及pH值,利用RS485通信協(xié)議將數據傳輸至單片機。RS485通信協(xié)議具有出色的抗干擾性,適用于工業(yè)環(huán)境。單片機使用RS485通信協(xié)議讀取土壤數據,經過相應處理后,將結果上傳至OneNet云平臺服務器。通過OneNet云平臺實時監(jiān)測數據并進行實時顯示,當數據異常時,在地圖上標示GPS位置并發(fā)出警報。同時,通過App獲取數據,數據異常時,地圖將會實時顯示,方便實地考察人員查看,極大地減小了對實地考察人員設備的要求。系統(tǒng)總體結構如圖1所示。
2 主控硬件電路設計
如圖2所示是基于物聯(lián)網的大承包地土壤數據實時分析監(jiān)測系統(tǒng)硬件連接圖。
2.1 STM32單片機介紹
STM32單片機是一種較為領先的嵌入式ARM處理器,以其低功耗、高性能和經濟成本而聞名。它在各種設備控制應用中廣泛應用,是不可或缺的組件。STM32的核心處理器是Cortex-M3,它具有32位CPU、嵌套中斷向量控制單元、調試系統(tǒng)、高效的并行總線結構以及標準的存儲映射。該單片機的工作頻率可達72MHz,擁有512KB 的Flash 存儲器和6~64KB 的SRAM存儲器,為高速數據處理提供了強大支持。此外,STM32還提供4個16位定時器,每個定時器可以用作4個ICOCPWM或脈沖計時器,以滿足各種定時和計時需求。供電電壓范圍為2.0~3.6V,在本設計中,供電電壓被設置為3.3V[2]。
2.2 五插針土壤多參數傳感器介紹
五插針土壤多參數傳感器具有性能穩(wěn)定、靈敏度高、響應迅速、輸出穩(wěn)定的特點,適用于各種土質。它是觀測和研究鹽漬土的發(fā)生、演變、改良以及水鹽動態(tài)的重要工具。通過測量土壤的介電常數,能夠直接、穩(wěn)定地反映各種土壤的實際水分含量。該傳感器可測量土壤水分的體積百分比,符合目前國際標準的土壤水分測量方法。此外,該傳感器可以長期埋入土壤中,具有耐長期電解、耐腐蝕的特性,并經過抽真空灌封,完全防水。該傳感器適用于土壤墑情監(jiān)測、科學試驗、節(jié)水灌溉、溫室大棚、花卉蔬菜、草地牧場、土壤速測、植物培養(yǎng)、污水處理、精細農業(yè)等場合的溫濕度、電導率、pH值測試。
2.3 北斗定位傳感器介紹
獲取定位信息采用的是ATGM336H-5N 模塊,ATGM336H-5N 系列模塊是小尺寸的高性能BDS/GNSS全星座定位導航模塊系列的總稱。該系列模塊產品都是基于中科微第四代低功耗GNSS SOC單芯片-AT6558,支持多種衛(wèi)星導航系統(tǒng),包括中國的BDS (北斗衛(wèi)星導航系統(tǒng))、美國的GPS、俄羅斯的GLONASS、歐盟的GALILEO、日本的QZSS 以及衛(wèi)星增強系統(tǒng)SBAS(WAAS,EGNOS GAGAN,MSAS)。AT6558 是一款真正意義的六合一多模衛(wèi)星導航定位芯片,包含32個跟蹤通道,可以同時接收六個衛(wèi)星導航系統(tǒng)的GNSS 信號,并且實現聯(lián)合定位導航與授時。
2.4 OLED屏幕介紹
本次終端顯示設計使用的是0.96的OLED。采用的是SSD1306的驅動器,SSD1306是一款單片CMOSOLED/PLED驅動器,具有有機聚合物發(fā)光控制器二極管點陣圖形顯示系統(tǒng)。它由128個段和64個公共部分組成。這個IC是為普通陰極型OLED面板設計。SSD1306內置對比度控制、顯示RAM和振蕩器,減少了外部組件和功耗。它有256級亮度控制。數據命令是從通用單片機通過硬件可選的6800/8000系列兼容并行接口發(fā)送,I2C接口或串行外圍接口。它適用于許多緊湊型便攜式應用終端,例如手機副顯示屏、MP3播放器、計算器等。本次屏幕的選擇也是因為它的這些特點,并且采用IIC的方式可以大大減小單片機引腳的使用數量,功耗相對于液晶顯示器更低,符合本次低功耗的設計。
2.5 通信模塊介紹
無線數據通信模塊采用了SIM800C這一款通信模塊,體積較小,價格較低,通信方式簡單。在本次設計中,不需要實時數據傳輸,只需要在1秒之內將數據傳入云平臺服務器即可,加之以成本問題,該模塊非常適合本次設計。該模塊自帶MQTT/TCP協(xié)議,并且只需要使用AT指令即可控制該模塊,大大減小了在單片機上程序的編寫時間,提高了開發(fā)速度。
2.6 土壤數據傳感器數據傳輸電路設計
在本項目中,我們采用了五插針土壤多參數傳感器作為外部信號采集處理傳感器。在眾多土壤數據傳感器中,這款傳感器是一個出色的選擇,其主要優(yōu)勢在于采用了RS485通信,RS485是一種工業(yè)控制環(huán)境中常用的通信協(xié)議,支持多節(jié)點:一般最大支持 32 個節(jié)點;傳輸距離遠:最遠通信距離可達1200米;抗干擾能力強:差分信號傳輸;連接簡單:只需要兩根信號線(A+和B-) 就可以進行正常的通信,確保了數據傳輸信號的穩(wěn)定性、掛入節(jié)點的數量性以及通信的距離足夠遠。不僅如此,五插針土壤多參數傳感器也不容易受到酸堿鹽的腐蝕而導致數據誤差。因此在設備的一側,我們只需要設計一個RS485通信電路,本次設計根據單片機IO口耐受電壓從而采用SP3485芯片,將RS485的差分信號轉換為TTL串口信號。通過單片機的串口和傳感器的數據讀取協(xié)議,我們能夠輕松地獲取傳感器數據。由上文可知,我們的項目核心處理器選用了STM32F103VET6,它擁有5個串口,并內置專門的串口中斷寄存器,在硬件上我們選擇串口2 當作與土壤傳感器通信的接口,將串口2的接口接入SP3485通信芯片的TTL側接口,從而與土壤數據傳感器進行RS485通信。
2.7 北斗定位傳感器電路設計
在北斗定位模塊的設計當中,采用的是串口通信,并且ATGM336H-5N定位模塊的工作機制是每一秒鐘自動向外發(fā)送一次JSON格式數據,無須單片機發(fā)送給相應指令進行讀取,因此,連接方式簡單,整個模塊僅需要四根線,分別為電源、地、TXD、RXD四根線,其中與單片機連接的為TXD、RXD兩根線,輸出電平也為3.3V,與單片機的串口直連即可,其余兩根電源線采用的是3.3V供電,可以與單片機使用一個電源,減小了對電源電路的設計。
2.8 云平臺數據傳輸電路設計
這一部分電路的主要任務是將終端處理器(MCU) 所采集并處理的土壤數據、位置數據上傳至云平臺。這個電路部分相對來說比較簡單,主要涉及SIM800C通信模塊與MCU之間的連接(下面稱為通信模塊)。在我們的設計中,我們采用了通信模塊作為無線傳輸模塊,并使用了該模塊提供的AT指令集。
因此,我們利用了無線模塊的串口功能,將MCU與通信模塊連接起來。MCU通過發(fā)送特定的AT指令來控制通信模塊進行網絡連接,并最終通過串口將實際的數據值傳輸給通信模塊,然后由通信模塊將數據發(fā)送到云平臺。這個電路模塊的目標是通過無線通信模塊將經過微控制器單元(MCU) 處理的土壤數據傳送至云平臺。該模塊主要由通信模塊和MCU之間的連接組成,通信模塊通過AT指令進行通信,并與MCU 通過串口相連。MCU通過向通信模塊發(fā)送特定的AT 指令來控制網絡連接,最終,通過串口將準確的數據值傳送至通信模塊,由通信模塊將數據傳輸至云平臺服務器。
2.9 電源電路設計
本項目的主要目標是設計一個用于監(jiān)測大承包地土壤數據的物聯(lián)網系統(tǒng),實現實時分析。為了確保系統(tǒng)的持續(xù)穩(wěn)定運行和實時性,我們決定采用太陽能電池作為主要的電源供應方式。在電池選擇方面,采用了可充電鋰電池,鋰電池體積小,能量密度高,與鉛酸電池相比更適合本次系統(tǒng)設計。通過增加電池,確保系統(tǒng)具備持續(xù)供電能力。系統(tǒng)的能源來源主要依賴于小型太陽能板為鋰電池充電,足以滿足系統(tǒng)正常運行時的電能需求。太陽能板通過吸收太陽能為電池充電,電池成為系統(tǒng)的可靠電源。這一設計保證了系統(tǒng)在白天能夠持續(xù)運行,而在夜間則通過鋰電池提供穩(wěn)定電力支持。通過這種方案,不僅滿足了系統(tǒng)的電力需求,還避免了傳統(tǒng)電線布線所需的費用和工程成本??偟膩碚f,以太陽能和鋰電池為基礎的供電方式,為系統(tǒng)的實時性和穩(wěn)定性提供了可靠的支持。
2.10 顯示電路設計
顯示電路的存在是為系統(tǒng)出現網絡問題或者當下數據采集者需要實地考察數據時,不方便再通過上位機的方式進行數據查看時的一種查看方式。在這里采用的是OLED屏幕顯示的方式,這種屏幕相對于其他屏幕對電的消耗是非常友好的,其他液晶類屏幕會有背光的存在,從而無法達到完全不顯示,進而使得耗電相對較高。OLED屏幕不需要背光,在黑色情況下是完全黑色的。OLED屏幕在這里主要是減小這種消耗,從而提高對電池電量的保護,確保采集電路的準確性,并減少了因耗電高而導致電源系統(tǒng)成本的增加。該屏幕主要是使用的是3.3V即可供電,采用與單片機使用同一個電壓即可。通信方式使用的是IIC 通信方式 ,除電源線外僅需兩根線接入單片機的IO 口即可。
3 系統(tǒng)軟件設計
如圖3所示是基于物聯(lián)網的大承包地土壤數據實時分析監(jiān)測系統(tǒng)軟件設計流程圖。
3.1 網絡傳輸驅動程序設計
本設計采用了端口初始定義的方式,以啟動入網請求,以便判斷是否成功入網。如果入網失敗,系統(tǒng)將嘗試重新發(fā)送入網請求,一直等待入網成功后再進行下一步操作。成功入網后,系統(tǒng)執(zhí)行數據檢測。如果沒有檢測到數據,系統(tǒng)將返回到先前的檢測狀態(tài),再次進行檢測。當檢測到數據時,數據將被解析與分析后直接傳送到OneNet云平臺。這一過程需要編寫RS485通信應用程序,以偵測傳感器的土壤各數據,并使用相應的轉換算法將其轉化為土壤數據。最終,通過MQTT協(xié)議將數據傳輸至OneNet云平臺服務器。MQTT協(xié)議作為一種輕量級的消息傳輸協(xié)議,MQTT(Message Que+861NUxy7l32SUg0/LZ6uhL3B5LdqVDQdYkpPzQqd6Y=uing Telemetry Transport) 協(xié)議通常被用于物聯(lián)網設備之間的通信。它是一種應用層協(xié)議,具有低帶寬和網絡開銷小的特點,其工作方式是發(fā)布者(Publisher) 將消息發(fā)布到主題(Topic) ,而訂閱者(Sub?scriber) 則可以通過訂閱主題并接收相應的消息,這種模式使得設備之間的通信更加靈活、可靠和易于擴展。MQTT協(xié)議也被廣泛應用于大規(guī)模物聯(lián)網應用程序中,例如,智能家居、工業(yè)自動化、智能交通等,已成為物聯(lián)網領域的標準協(xié)議之一[3]。云平臺服務器獲取數據后,在網頁端實時顯示,并繪制曲線,直觀地看出數據變化;通過手機客戶端實時查看并監(jiān)測數據。在編程過程中,我們使用了Keil編程開發(fā)環(huán)境,以確保程序正常運行。在網絡傳輸方面,我們主要關注模塊與服務器的連接。通信模塊通過AT指令方式與單片機進行通信,單片機通過AT指令控制通信模塊與服務器通信。這減少了對通信模塊的開發(fā)工作,只需通過串口將字符串傳遞給通信模塊。通過AT指令的控制,模塊會自動將字符串通過網絡傳送至OneNet云平臺服務器,并等待服務器的應答。如果應答成功,模塊將返回相應字符,單片機會繼續(xù)發(fā)送下一步指令。如果沒有得到相應字符,單片機會等待一段時間,然后重新發(fā)送相應字符串,以再次請求連接,直到成功為止。
3.2 土壤數據傳感器驅動程序設計
隨著微型傳感器技術、信號處理技術和微處理器技術的迅猛發(fā)展,土壤數據檢測技術已經從傳感器檢測單一信號演變?yōu)閭鞲衅髋c物聯(lián)網相結合的發(fā)展趨勢,如我們本次使用的RS485協(xié)議傳感器。這種趨勢使土壤數據的獲取和分析能夠實現更高的實時性。在我們的傳感器中,我們選擇了一種集成式傳感器,將土壤的pH值、氮、磷、鉀等數據統(tǒng)一采集,這種傳感器的好處就是能夠極大地簡化傳感器的數量,減小了物理實體的損壞率,使得設備更加穩(wěn)定。土壤數據傳感器的數據采集主要依賴于單片機通過串口直接讀取傳感器的數據。在圖3中,我們展示了串口初始化函數的流程圖,我們在這里使用串口2,通過單片機的串口2發(fā)送相應的指令以獲取傳感器數據,然后將數據顯示在OLED屏上。
3.3 北斗定位傳感器程序設計
北斗定位傳感器的驅動程序主要是對單片機串口程序的編寫以及JSON數據的解析,串口程序的編寫主要是串口的初始化,串口的中斷程序以及中斷的優(yōu)先級的選擇,波特率設置等。在定位信息當中,時間信息以及經緯度信息與我們平時用的信息是不同的,如在時間上,我們拿到的數據是小8個時區(qū)的,也就是當前的時間為返回時間加8小時才是我們當地的時間;在經緯度上,我們常用的地圖與北斗實際采集到的定位經緯度是需要糾偏的,也就是使用的坐標系是不同的。定位模塊返回的是JSON格式的數據,無法使我們直接使用,所以需要將JSON個失敗的數據解析成變量的數據,再將數據,如時間、經緯度進行相應調整,糾偏后,再通過網絡傳輸功能將數據發(fā)送至云平臺服務器,使得時間以及經緯度準確,進而方便使用人員精確無誤地查看數據,從而做出判斷。
3.4 OLED屏幕驅動程序的設計
OLED屏幕使用的通信方式是IIC的通信。其中顯示方式只需要通過IIC協(xié)議向SSD1306發(fā)送相應的指令數據以及相應的顯示數據,從而達到顯示的效果,IIC的通信方式大大減小引腳的使用,也減小了通信的難度,提高了開發(fā)速度。
3.5 手機客戶端程序的設計
手機客戶端的開發(fā)使用的是Android Studio軟件[4]進行開發(fā),其使用的開發(fā)語言為JAVA語言,分為后端功能板塊與前端界面板塊。在本次開發(fā)的App當中,后端中主要使用了MQTT協(xié)議來讀取OneNet云平臺服務器數據值,讀到JSON 格式的數據值之后,將JSON 數據解析,拿到相應數據,如土壤中的五大數據,以及經緯度等。將數據轉換后,在前端界面板塊進行數據的實時顯示,并且調用高德地圖的API進行相關的地圖定點顯示,將數據顯示到坐標點上,數據也會實時判斷,當數據超過相應閾值時,坐標點將會變成紅色,從而達到相應的預警效果。
3.6 OneNet云平臺數據顯示設計
OneNet云平臺采用的是模塊化顯示,并且在物聯(lián)網領域持有開放性,實用性以及可拓展性[5],這種方式的好處是降低了開發(fā)難度,不再需要對UI界面的開發(fā),只需要進行拖取相應的模塊,就可以進行相應的界面設計,在這里主要使用到了其三種模塊,儀表模塊、曲線模塊、地圖模塊。在服務器中拿取數據以及處理使用的是JavaScript進行的相應處理,但代碼量是非常小非常適合非計算機類人員的開發(fā)使用,大大減小了開發(fā)時間,提高了開發(fā)效率。
4 總結與展望
土地承包中,土壤數據是至關重要的。在過去的土壤數據測量中,市場上的大多數產品都依賴于采樣和手動檢測,然后根據結果進行土壤成分的調整。這種方法存在一系列問題,包括需要大量檢測人員、數據分析不及時,導致土壤成分誤差較大,最終對農作物產生損失。然而,通過利用物聯(lián)網實時監(jiān)測技術,可以顯著減小這些損失。借助高精度傳感器,結合4G模塊將數據上傳至OneNet服務器,用戶可以通過手機客戶端或PC端實時訪問服務器并將數據可視化為曲線圖,以監(jiān)測土壤數據的動態(tài)變化。這有助于提高土地產量和管理方法技術,為土地承包人員提供了極大的便利。因此,研究開發(fā)一種多點土壤數據實時檢測系統(tǒng)變得至關重要。
本設計還有一些相對不足的問題,如數據的安全性,服務器使用的并不是自己的服務器,這樣會導致數據的泄漏;使用人員學歷問題導致的使用復雜程度,在軟件優(yōu)化上是否可以解決掉;在當下人工智能的大時代下,分析土壤數據的同時,是否可以通過攝像頭分析植株葉子從而達到對土壤的分析,從而推斷土壤缺少哪些成分,以達到對土壤數據分析的結果。這將對未來現代化土地種植作物會起到一個非常大的推動。