歐陽林群,楊逸輝,阮承治,吳鴻興,鄧瑤鈴
(武夷學(xué)院 1.機(jī)電工程學(xué)院;2.農(nóng)機(jī)智能控制與制造技術(shù)福建省高校重點實驗室,福建 武夷山 354300)
中國是一個農(nóng)業(yè)大國,茶葉一直是出口創(chuàng)匯的主要農(nóng)產(chǎn)品之一,因此茶葉的產(chǎn)量與振興農(nóng)村經(jīng)濟(jì)和增加農(nóng)民收入密切相關(guān)[1]。茶樹的生長環(huán)境較為苛刻,在土壤水分含量占80%~90%時,茶樹的生長速度最快,葉芽產(chǎn)量最大,品質(zhì)最優(yōu)。但是,當(dāng)含水量大于93%時則會出現(xiàn)茶樹爛根現(xiàn)象,小雨40%時則會出現(xiàn)葉芽受損,生長緩慢,甚至死亡的現(xiàn)象[1],所以在茶園中引入現(xiàn)代科學(xué)技術(shù)來精準(zhǔn)控制茶園生態(tài)環(huán)境,增加產(chǎn)量是一種必要的措施。武夷山市是中國知名的茶葉生產(chǎn)基地,茶相關(guān)產(chǎn)業(yè)的規(guī)模大,歷史悠久[3]。在近年來,隨著智慧農(nóng)業(yè)的興起,將現(xiàn)代科學(xué)技術(shù)引入農(nóng)業(yè)生產(chǎn)中,提高產(chǎn)量,是一種勢在必行的趨勢[3]。在現(xiàn)代科學(xué)技術(shù)的加持下,通過無線通信技術(shù),實時獲取土壤濕度、成分以及光照強(qiáng)度等環(huán)境信息,便能對茶園生態(tài)環(huán)境進(jìn)行科學(xué)管理,對茶樹生長提供科學(xué)指導(dǎo)。
基于以上分析,本文設(shè)計了一種基于STM32的無線傳感器遠(yuǎn)程環(huán)境實時監(jiān)控物聯(lián)網(wǎng)系統(tǒng),系統(tǒng)采用LoRa無線傳輸技術(shù),通過光照強(qiáng)度傳感器,土壤濕度傳感器等獲取數(shù)據(jù),之后通過LoRa模塊將數(shù)據(jù)發(fā)送到主機(jī)端,主機(jī)端在接收到數(shù)據(jù)后解析出傳感器數(shù)據(jù)再將其顯示出來。主機(jī)通過WiFi模塊連接網(wǎng)絡(luò),就可以在手機(jī)軟件上查看到實時數(shù)據(jù)。
本設(shè)計是基于STM32單片機(jī)的茶園環(huán)境監(jiān)測物聯(lián)網(wǎng)系統(tǒng),該系統(tǒng)將采集的傳感器數(shù)據(jù)通過LoRa通信模塊發(fā)送到主機(jī),再通過ESP8266發(fā)送到云端實現(xiàn)在手機(jī)端實時查看數(shù)據(jù)控制設(shè)備。該系統(tǒng)的電源供電電路通過電池輸入后經(jīng)過壓降芯片降至5V和3.3V直流電,再經(jīng)過濾波電容后給系統(tǒng)的控制器和各個子模塊供電;從機(jī)控制器先通過采集溫濕度傳感器,空氣成分傳感器,土壤成分傳感器的數(shù)據(jù),再通過LoRa通信模塊發(fā)送到主機(jī),主機(jī)將數(shù)據(jù)處理并顯示,再由WiFi模塊將數(shù)據(jù)發(fā)送到云端以供用戶手機(jī)查看茶園環(huán)境信息;單片機(jī)的掉電存儲系統(tǒng)由AT24C02以及SD卡共同組成,其中AT24C02負(fù)責(zé)保存系統(tǒng)的配置信息,而SD卡負(fù)責(zé)保存?zhèn)鞲衅鞑杉臄?shù)據(jù)。系統(tǒng)總體由SD卡電路,顯示電路,LoRa通信模塊,WiFi模塊,掉電存儲電路,溫濕度傳感器,光照傳感器,空氣成分傳感器,土壤成分傳感器等子模塊組成。系統(tǒng)總體設(shè)計方案,如圖1所示。
圖1 系統(tǒng)總體設(shè)計
本系統(tǒng)的設(shè)計主要以STM32單片機(jī)為主控制器,該系統(tǒng)主要由SD卡電路,顯示電路,LoRa通信模塊,WiFi模塊,掉電存儲電路,溫濕度傳感器,光照傳感器,空氣成分傳感器,土壤成分傳感器等子模塊組成。
該最小系統(tǒng)主要是由復(fù)位電路、SWD電路等構(gòu)成,并由3.3V壓降電路提供直流電源支持單片機(jī)的正常運(yùn)行[5]。本設(shè)計中單片機(jī)最小系統(tǒng),如圖2所示。
2.2.1 電源電路
在本系統(tǒng)中使用AMS1117作為系統(tǒng)電源的壓降芯片,將電源輸入的12V直流電降壓為3.3V和5V,為STM32和各個模塊供電[6]。在開關(guān)閉合后,輸出的電壓經(jīng)過兩個LED燈,當(dāng)兩個LED燈都正常亮起時表示電源電路正常運(yùn)行,其電路如圖3所示。
圖3 電源電路
2.2.2 WiFi模塊電路
本系統(tǒng)中WiFi模塊使用的是ESP8266-12F,此模塊負(fù)責(zé)將數(shù)據(jù)由本地上傳到云端實現(xiàn)手機(jī)查看數(shù)據(jù)[6]。模塊通過串口與單片機(jī)通信,在運(yùn)行時其GPIO15要接地,否則不能正常運(yùn)行;在下載程序時GPIO0要接低電平,其中U9和U10開關(guān)分別用于控制RST和GPIO0兩引腳的電平,其電路如圖4所示。
圖4 ESP8266 WiFi模塊
2.2.3 SD卡電路
單片機(jī)通過SPI通信,4根SPI總線全部接上45K的上拉電阻,該模塊必須使用3.3V的電壓才能驅(qū)動,使用5V有可能燒毀SD卡。在本系統(tǒng)中SD卡的主要功能為存儲傳感器數(shù)據(jù)以及保存交互界面的圖片素材,使用8GB的SD卡即可。SD卡的驅(qū)動電路,如圖5所示。
圖5 SD卡驅(qū)動電路
2.2.4光照傳感器電路
本系統(tǒng)使用的光照傳感器是BH1750,其采用I2C協(xié)議來與單片機(jī)通信,使用時要將ADD引腳接地。通過芯片手冊可知通訊地址為0x46。該傳感器具有穩(wěn)定性好、誤差小、價格低等特點,且分辨率高達(dá)1~65535lux,能夠監(jiān)測日常環(huán)境中的光照變化[9],其電路如圖6所示。
圖6 光照傳感器電路
本系統(tǒng)程序是基于C語言環(huán)境進(jìn)行開發(fā)編寫的,通過編寫主程序和子程序從而實現(xiàn)主機(jī)對從機(jī)的調(diào)用,子程序的設(shè)計包含顯示程序、DHT11溫濕度獲取程序、SD卡程序等。
程序開始執(zhí)行時先在主函數(shù)完成各個外設(shè)的初始化,例如SD卡初始化,外部中斷初始化,定時器初始化,屏幕初始化,傳感器初始化。在初始化完成后從機(jī)等待主機(jī)發(fā)來的命令,若從機(jī)成功接收到采集數(shù)據(jù)命令則實行對相應(yīng)的數(shù)據(jù)采集;若沒有接收到采集數(shù)據(jù)命令,則進(jìn)行從機(jī)設(shè)備的重新啟動并初始化,此時采集的數(shù)據(jù)相當(dāng)于零。然后將獲得的數(shù)據(jù)通過TFT屏幕顯示出來,保存數(shù)據(jù)到SD卡并發(fā)送到云端??刂葡到y(tǒng)主程序流程,如圖7所示。
圖7 主程序流程圖
3.2.1 顯示程序設(shè)計
在本系統(tǒng)中TFT屏幕用于顯示來自傳感器的數(shù)據(jù)以及與用戶交互。首先在屏幕完成初始化,之后打印一下SD卡的狀態(tài),在SD卡無誤后正式進(jìn)入系統(tǒng)界面顯示傳感器數(shù)據(jù),在按下“設(shè)置”按鈕后進(jìn)入配置系統(tǒng)頁面,其中可以修改系統(tǒng)時間,屏幕休眠時間,各個從機(jī)的地址,信道等等,在配置完成后點“保存”即可將配置信息存入AT24C02,或者點擊“返回”不保存配置信息,顯示流程如圖8所示。
圖8 TFT顯示流程圖
3.2.2 DHT11溫濕度獲取程序設(shè)計
主程序首先初始化連接該模塊的IO口以實現(xiàn)DHT11的初始化,然后等待數(shù)據(jù)的采集,在主程序調(diào)用該子程序后開始采集數(shù)據(jù),采集完成后再將數(shù)據(jù)發(fā)送給單片機(jī),流程如圖9所示。
圖9 DHT11獲取溫濕度流程圖
3.2.3 SD卡程序設(shè)計
本SD卡用于存儲傳感器數(shù)據(jù)以及顯示界面的圖片素材。首先單片機(jī)完成SPI通信的初始化,在完成SPI初始化后,SD卡寫入一系列命令。在SD卡初始化無誤后,與ESP8266通信獲取實時時間,此時間用于判斷是否新建一個文件保存?zhèn)鞲衅鲾?shù)據(jù),因為本系統(tǒng)按天保存每天的數(shù)據(jù)。當(dāng)日期更新系統(tǒng)創(chuàng)建一個新文件用于保存數(shù)據(jù),在每次寫入數(shù)據(jù)前要判斷文件是否存在,不存在時則再次新建文件,寫入數(shù)據(jù)結(jié)束后關(guān)閉文件,程序流程如圖10所示。
圖10 SD卡程序流程圖
在系統(tǒng)設(shè)計完成后就開始測試系統(tǒng)是否符合設(shè)計要求,本系統(tǒng)的調(diào)試主要內(nèi)容是LoRa通信以及SD卡數(shù)據(jù)存儲還有硬件調(diào)試與分析[5]。
在LoRa串口通信模塊的調(diào)試中,首先通過單片機(jī)發(fā)送一系列AT指令給LoRa模塊,這些AT指令包括設(shè)置通信地址、信道、速率、波特率、工作模式、發(fā)射功率等。每條指令發(fā)送完成,模塊正確接收到數(shù)據(jù)后就會返回“OK”,否則返回“ERROR”,當(dāng)所有參數(shù)設(shè)置完成后模塊就開始正常工作。由測試結(jié)果可知,此系統(tǒng)符合設(shè)計需求。
硬件調(diào)試的第一步是先測試各個模塊上電后是否能正常工作,其次是對畫好的PCB進(jìn)行電氣檢測,查看是否有短路、斷路等問題,以免電子元件焊接在PCB上通電時燒毀。最后是驗證各個模塊在PCB上是否能正常工作,例如:LoRa是否能接收和發(fā)送數(shù)據(jù),單片機(jī)能否正常工作,電源電壓是否穩(wěn)定,WiFi模塊是否能連接,傳感器采集數(shù)據(jù)是否正常等。在發(fā)生故障后及時斷電,并檢查串口打印的數(shù)據(jù)以及PCB上是否有過熱的部位,在一切正常后檢查TFT屏幕的數(shù)據(jù)是否正常、完整,各個模塊是否正常工作。設(shè)計與制作的系統(tǒng)實物,如圖11所示??梢杂^察到接收到的傳感器數(shù)據(jù),由此可以得出結(jié)論,該系統(tǒng)符合設(shè)計需求。
圖11 實物圖
手機(jī)軟件顯示的主界面,如圖12所示,該界面負(fù)責(zé)接收并顯示傳感器數(shù)據(jù)和設(shè)備狀態(tài),以及控制各個從機(jī)的工作狀態(tài)。
圖12 軟件顯示圖
光照傳感器的分析結(jié)果,如圖13所示。光照傳感器在一天中不同時間所獲取的光照強(qiáng)度數(shù)值與測光表所測數(shù)據(jù)對比,單位Lux。由圖13中可以觀察到傳感器數(shù)據(jù)與測光儀數(shù)據(jù)差值不大,由此可以得出結(jié)論,該系統(tǒng)符合設(shè)計需求。
圖13 光照傳感器結(jié)果分析
本系統(tǒng)在經(jīng)過長期的硬件和軟件調(diào)試運(yùn)行后,已經(jīng)完成了對環(huán)境中的溫度濕度,光照,空氣成分等數(shù)據(jù)的采集,并且能夠通過LoRa無線通信技術(shù)進(jìn)行遠(yuǎn)距離通信,在主機(jī)端能夠通過ESP8266上傳數(shù)據(jù)到云端并在手機(jī)端通過軟件查看實時數(shù)據(jù)和控制各個從機(jī)。該控制系統(tǒng)經(jīng)過調(diào)試已經(jīng)能夠滿足設(shè)計需求,能夠?qū)崟r查看并控制設(shè)備,采集的數(shù)據(jù)具有參考價值,能夠?qū)Σ鑸@生態(tài)環(huán)境的科學(xué)化信息化管理提供幫助,對茶葉的生長提供科學(xué)的管理和干預(yù)。