應亞萍,應杰漢
(浙江工業大學之江學院 信息工程分院,浙江 杭州 312030)
衣食住行是人們賴以生存的基本生活需求,我國農業發展的研究和整個社會的穩定發展息息相關。土壤的溫濕度、空氣中二氧化碳濃度以及農作物接收的光照強度是農產品生長的基本條件,也是農產品品質與產出的關鍵因素。許多傳統的溫室大棚主要還是依賴人工的方法,特別是農村地區,大部分溫室大棚都是根據農民自己的經驗,實施現場人員看護環境的變化,效率很低,人力成本高,管理難度大,環境參數不好控制。如何檢測和控制相關環境參數,實現大棚環境的智能控制是一個很有意義的課題。隨著信息技術的飛速發展,溫室大棚技術應運而生,使種植業得到快速發展。本文設計一款基于STM32的果蔬大棚智能檢測系統,以提高果蔬大棚的管理水平,對提高農業生產力的研究具有深遠的意義[1-3]。
基于STM32的果蔬大棚智能檢測系統能實時精確地采集果蔬大棚中的溫度、濕度、光照以及等效二氧化碳濃度等數據,并對數據進行分析和處理,同時運用無線通信技術和物聯網技術實現對果蔬大棚相關環境參數的遠程監控,通過PC機和手機遠程監測大棚的實時狀態,實現對果蔬大棚的自動化和智能化管理,從而大大提高大棚的管理效率,并且能提高果蔬的產品品質和產量,提高土地的利用率[4,5]。
本次的設計采用STM32F103C8T6芯片作為主控制芯片,將采集得到的無線傳感器數據經UART接口發送給ZigBee的終端,通過無線點對點的傳輸方式向ZigBee的協調器發送數據,協調器則將其中的數據經串口進行傳輸,在上位機上對VISA進行串口配置后,上位機便可使用VISA標準API對電腦串口實現讀取操作,將串口數據根據格式解析并顯示于PC上,將數據與設定閾值相比較,如果超出閾值則在上位機上進行報警,以便于實現無線觀測的目的。
系統框圖如圖1所示,處理器選用STM32F103C8T6芯片,該芯片有兩路IIC、兩路SPI,此外還有48個GPIO口、4個定時器等外設資源。傳感器方面,溫濕度傳感器使用DHT11傳感器,通過單總線的方式傳輸數據,光照傳感器使用BH1750,通過IIC傳輸方式傳輸數據,同樣使用IIC通信的還有CCS811傳感器,作為檢測等效二氧化碳和有機揮發物的傳感器。OLED則使用SPI的方式通信,顯示采集到的各種測量數據。單片機與ZigBee無線模塊則是使用UART接口進行通信。在ZigBee使用Z-Stack協議棧將終端數據發送給協調器后,PC端使用LabVIEW撰寫的上位機系統通過VISA對串口進行讀取,將數據分別顯示在上位機上,并與上位機設置的閾值相比較,如果超出閾值則在LabVIEW上位機上進行報警燈閃爍。

圖1 系統框圖
硬件電路主要由傳感器模塊、無線傳輸模塊、主控模塊等模塊構成。
2.1.1 溫濕度傳感器
棚內溫濕度監測模塊采用的是DHT11數字溫濕度復合傳感器,是一款含有已校準數字信號輸出的溫濕度復合傳感器。該傳感器電壓的工作范圍為3~5.5 V,平均工作電流為0.2 mA,濕度測量范圍為20%~90%RH,溫度測量范圍為0~50 ℃,測濕精度為±5%RH,測溫精度為±2 ℃,溫度分辨率為1 ℃,DHT11傳感器每次通信時間約4 ms,具有傳輸速度快、抗干擾能力強、價格低等優點,并且DHT11有數據校驗位保證了測量數據的準確性,完全滿足對蔬菜大棚內溫濕度的監測。
2.1.2 等效二氧化碳與有機揮發物傳感器
等效二氧化碳與有機揮發物傳感器使用CCS811傳感器,是一種超低功耗數字氣體傳感器解決方案,監測室內空氣質量的金屬氧化物氣體傳感器被集成于其中。不僅如此,CCS811支持智能檢測算法來處理原始傳感器測量值,以表示實際環境中的等效CO2(eCO2)水平或TVOC測量值。這些算法的結果通過標準的I2C數字接口提供。
2.1.3 光照采集傳感器
BH1750FVI是一種以總線接口為傳輸方式的數字環境光傳感器芯片。該芯片采集的數據被普遍運用于電子設備的背光調節。寬范圍的探測可以使用高分辨率模式進行探測,該模式下檢測的范圍為1~65 535。
該傳感器有如下優點:(1)BH1750傳感器的光譜響應接近于人眼;(2)低功耗模式下低電流耗散,待機時間更長;(3)可濾除50~60 dB的光噪音;(4)邏輯輸入接口;(5)不同光源之間數據基本相似(如白熾燈、熒光燈、鹵素燈、LED、自然光);(6)擁有兩個可切換的地址;(7)可以調節的測量結果分辨率。
無線模塊使用了ZigBee開發套件,它具有低價格、低功率、高可靠性、高安全性等優點,ZigBee受IEEE802.15.4標準約束。本設計ZigBee系統主要由終端和協調器構成,所謂協調器,調度著ZigBee網絡群組的參與者。對于一般的應用模型,ZigBee網絡組網后,其主要功能是根據掃描選擇合適的參數來建立網絡,每個ZigBee網絡僅允許一個協調器在此網絡中找一條通道,隨后建立一個網絡信號以便于啟動網絡。整個網絡的起點是協調器,負責維護整個網絡,并且設計安全中心并執行其他操作以維持與網絡其他成員的通信。
主控模塊采用STM32F103C8T6芯片。其高性能的32位RISC內核可以提供強大的運算能力,72 MHz的工作頻率使得芯片處理語句的速度高于一般的8位和16位MCU。此外,該MCU使用的高速閃存和高速SRAM賦予了該存儲系統能匹配MCU系統的處理速度,MCU可以發揮出全部實力。通信接口總線資源方面,MCU擁有兩個IIC和SPI接口,3個USART接口和一個Micro-USB接口,滿足項目的基本通信需要。
采集數據部分使用比較常用的方式,即使用C語言配合編譯器對STM32芯片進行編譯。先通過單總線的方式將DHT11的溫濕度數據采集到STM32并進行存儲,然后使用IIC的方式將BH1750的光強度數據以及CCS811的等效二氧化碳和揮發性有機物的數值分別取回至主控芯片并且進行存儲,并通過SPI的通信方式將這些數據顯示在OLED上,然后通過UART的通信方式將這些重組后的傳感器數據發送至ZigBee的終端,終端在獲取到這些數據后,使用Z-Stack協議棧將這些數據發送給數米外的Zigbee協調器,協調器在接收到終端的傳感器數據后,通過串口傳送給PC,PC通過串口讀到了協調器發送的數據后,可以打開由LabVIEW工程文件生成的EXE執行文件,在對串口參數進行配置后便可在上位機上對發送來的數據進行解析并顯示在對應位置。本次設計的系統流程如圖2所示。

圖2 系統流程圖
在確保電壓正確、每個元器件都正常接線、二次檢查正負極接線并未接反的情況下,本設計期間是使用分階段調試的方法,每一個傳感器的代碼分階段寫入程序,在確認上一階段所有傳感器都正常工作并顯示讀數的情況下,再將下一個傳感器的代碼加入到總程序中,這樣能保證每一次加入傳感器前系統工作正常,不會出現系統整個癱瘓但無從下手改代碼的問題。
最后在數據傳輸之前撰寫數據傳輸DEMO,將DEMO調通后再將數據搭載到UART上傳送給ZigBee終端,這樣大部分可能出現的問題都會在DEMO測試階段暴露出來,便于找出導致程序不滿足預期的原因。
本文設計了一個基于STM32的農業智能果蔬大棚,主要實現了對大棚環境中的溫濕度、光照強度、等效二氧化碳以及有機揮發物進行監測,并通過無線模塊串口傳輸至PC端,使用上位機顯示在計算機上。與現有技術相比,增加了多個大棚拓展的可能性,與傳統拉線連接的方式相比,成本直線下降,增加觀測的大棚數目不需再重新接線,一臺連接PC端的協調器可以同時與多臺終端進行廣播通信。