韓琛曄
摘? 要: 為了提高農(nóng)業(yè)氣象數(shù)據(jù)觀測可靠性、實(shí)時性與精準(zhǔn)性,設(shè)計基于STM32嵌入式微處理器的農(nóng)業(yè)氣象觀測系統(tǒng)。此系統(tǒng)通過物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)局部區(qū)域中的多點(diǎn)氣象數(shù)據(jù)收集,并且對基站傳輸數(shù)據(jù)。利用基站傳輸能夠使主監(jiān)控機(jī)監(jiān)控軟件中展示節(jié)點(diǎn)數(shù)據(jù),并且對節(jié)點(diǎn)數(shù)據(jù)進(jìn)行歸類存儲。主控軟件利用機(jī)房的Internet網(wǎng)絡(luò),能夠使數(shù)據(jù)傳輸?shù)竭h(yuǎn)程客戶端中。系統(tǒng)還具備全球移動通信系統(tǒng)的移動報警功能,客戶能夠?qū)缶畔⑦M(jìn)行收集。此系統(tǒng)能夠應(yīng)用到遠(yuǎn)程與室內(nèi)局部多點(diǎn)氣象信息收集監(jiān)控領(lǐng)域中,通過系統(tǒng)測試表示,終端收集節(jié)點(diǎn)對網(wǎng)關(guān)傳輸數(shù)據(jù)距離不超過100 m,整體網(wǎng)絡(luò)平均丟包率不超過2.6%,使大棚內(nèi)空氣濕度、溫度、光照強(qiáng)度和土壤濕度的需求得到滿足。
關(guān)鍵詞: 農(nóng)業(yè)氣象; 物聯(lián)網(wǎng)數(shù)據(jù)采集; 嵌入式微處理器; 環(huán)境數(shù)據(jù)收集; 系統(tǒng)設(shè)計; 軟件設(shè)計
中圖分類號: TN710?34? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼: A? ? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)05?0010?04
Design of agrometeorological Internet of Things data acquisition
system based on embedded microprocessor STM32
HAN Chenye
(Hebei Polytechnic Institute, Shijiazhuang 050091, China)
Abstract: An agrometeorological observation system based on embedded microprocessor STM32 is designed to improve the reliability, real?time performance and accuracy of agrometeorological data observation. In the system, the multi?point meteorological data in local area is collected with the technology of Internet of Things, and the data is transmitted to the base station. The base station transmission function can make the node data displayed in the monitoring software of the main monitor and classified for storing. The main control software can transmit the data to the remote client by the Internet network of the machine room. In addition, the system has the mobile alarm function of the global mobile communication system, enabling clients to collect alarm information. The system can be applied to the fields of remote and indoor local multi?point meteorological information collection and monitoring. The testing results of the system indicate that the data transmission distance from the terminal collecting node to the gateway does not exceed 100 m, and the average packet loss rate of the whole network is no more than 2.6%, which satisfy the demands of air humidity, temperature, illumination intensity and soil moisture in agricultural greenhouses.
Keywords: agrometeorology; Internet of Things data acquisition; embedded microprocessor; environmental data collection; system design; software design
0? 引? 言
中國為農(nóng)業(yè)大國,農(nóng)業(yè)發(fā)展能夠提高中國農(nóng)業(yè)的生產(chǎn)率,也是中國現(xiàn)代化建設(shè)的主要任務(wù)。氣象預(yù)報為中國現(xiàn)代化農(nóng)業(yè)發(fā)展中的基礎(chǔ),能夠?qū)r(nóng)業(yè)正常的生產(chǎn)進(jìn)行指導(dǎo),并且預(yù)防災(zāi)害。在此背景下,促進(jìn)農(nóng)業(yè)氣象信息的現(xiàn)代化建設(shè)成為農(nóng)業(yè)現(xiàn)代化建設(shè)中的重點(diǎn)。但是在農(nóng)業(yè)氣象預(yù)報中,我國還是存在部分問題,比如,基于區(qū)域性創(chuàng)建自動化氣象觀測站、設(shè)置農(nóng)田小氣候站收集氣象數(shù)據(jù)。因?yàn)榇藲夂蚴占O(shè)備具有較高的使用率,所以只能夠使用以點(diǎn)帶面的方式實(shí)現(xiàn)區(qū)域性農(nóng)事氣象預(yù)報。但是,此種大區(qū)域性氣象預(yù)報的可靠性、精準(zhǔn)性無法滿足現(xiàn)代大型農(nóng)業(yè)或者特色企業(yè)在生產(chǎn)過程中對于農(nóng)業(yè)氣象、防災(zāi)減災(zāi)等信息需求。所以,就要使用現(xiàn)代物聯(lián)網(wǎng)技術(shù)和嵌入式微處理技術(shù),研發(fā)低成本、低功耗和靈活部署的無線農(nóng)業(yè)氣象物聯(lián)網(wǎng)數(shù)據(jù)收集系統(tǒng),利用大面積及多點(diǎn)的數(shù)據(jù)收集,解決精細(xì)化農(nóng)業(yè)氣象預(yù)報對于信息依賴的問題[1]。
1? 系統(tǒng)結(jié)構(gòu)
農(nóng)業(yè)氣象物聯(lián)網(wǎng)數(shù)據(jù)收集系統(tǒng)如圖1所示,系統(tǒng)整體主要包括硬件平臺和相應(yīng)軟件設(shè)計。創(chuàng)建硬件平臺要對穩(wěn)定性、功耗、數(shù)據(jù)處理能力和可擴(kuò)展性進(jìn)行考慮,根據(jù)模塊劃分微處理器、觸摸顯示屏、無線通信模塊、系統(tǒng)供電等模塊。
1.1? 微處理器設(shè)計
在嵌入式系統(tǒng)中,ARM處理器芯片因?yàn)楦咝詢r比、豐富的內(nèi)部資源和可移植實(shí)時操作系統(tǒng)等優(yōu)勢,使用在各個自動化領(lǐng)域嵌入式系統(tǒng)開發(fā)過程中?,F(xiàn)代ARM微處理器中的STM32使用較為廣泛,并且性價比較高,其主要包括M4,M3,MO+等內(nèi)核。因?yàn)楸疚脑O(shè)計農(nóng)業(yè)氣象物聯(lián)網(wǎng)系統(tǒng)是在野外應(yīng)用,要充分考慮芯片功耗、總體成本與運(yùn)算功耗,所以使用STM32系列中的Cortex?M3內(nèi)核,其主要特點(diǎn)就是功耗比較小,并且具有較高的性價比,還能夠支持16位和32位雙指令集,其中主要包括大量寄存器,運(yùn)行速度比較快,尋址方式比較靈活,能夠提高執(zhí)行效率。為滿足農(nóng)業(yè)氣象物聯(lián)網(wǎng)監(jiān)測系統(tǒng)的需求,使用STM32F103RBT6芯片,其在性能方面能夠使農(nóng)業(yè)氣象物聯(lián)網(wǎng)監(jiān)測系統(tǒng)需求得到滿足,并且節(jié)約系統(tǒng)硬件成本,縮短整體研發(fā)周期[2]。
1.2? 環(huán)境收集終端設(shè)計
終端收集部分能夠收集大棚氣象環(huán)境數(shù)據(jù),利用ZigBee協(xié)議使數(shù)據(jù)傳輸?shù)絀oT網(wǎng)關(guān)中。在本文設(shè)計過程中,使用CC2530射頻模塊實(shí)現(xiàn)終端硬件核心芯片的設(shè)計,此芯片屬于TI公司推出的支持ZigBee協(xié)議的單片機(jī)。在軟件設(shè)計過程中,使用相應(yīng)協(xié)議棧設(shè)計。CC2530微控制器內(nèi)部利用業(yè)界標(biāo)準(zhǔn)增強(qiáng)型8051內(nèi)核,通過QFN40進(jìn)行封裝,引腳一共有49個。
收集設(shè)備核心芯片CC2530外圍電路在設(shè)計過程中主要包括電源模塊、射頻板模塊、外設(shè)I/O模塊和程序下載模塊。其中,程序下載模塊使用專門仿真器,實(shí)現(xiàn)程序下載與在線仿真調(diào)試,硬件設(shè)計部分主要包括CC Debugger仿真器接口。
在設(shè)計過程中,光照強(qiáng)度使用BH1750FVI傳感器,其屬于應(yīng)用到兩線式的串行總線接口16位數(shù)字輸出型環(huán)境光強(qiáng)度傳感器集成電路,通過其高分辨率能夠在1~65 535 lx范圍中對光強(qiáng)度變化進(jìn)行測量,還能夠?qū)崿F(xiàn)高精度數(shù)字信號的直接輸出。
利用DHT11對空氣濕度和溫度進(jìn)行測量,其屬于已經(jīng)校準(zhǔn)數(shù)字信號輸出濕度、溫度傳感技術(shù),能夠保證系統(tǒng)具備長期穩(wěn)定性和可靠性。內(nèi)部具有電阻式感濕原件與NTC測溫元件,并且和高性能8位單片機(jī)相互連接,從而提高抗干擾能力,降低成本,使其具備長期穩(wěn)定性[3]。
1.3? 網(wǎng)關(guān)硬件設(shè)計
網(wǎng)關(guān)為接入設(shè)備,與公共通信網(wǎng)絡(luò)與無線傳感器網(wǎng)絡(luò)相互連接,并且還能夠提供多種通信途徑,保證終端節(jié)點(diǎn)收集數(shù)據(jù)在用戶平臺中傳輸。其主要功能就是利用創(chuàng)建的ZigBee網(wǎng)絡(luò)接收來自于終端設(shè)備收集氣象環(huán)境數(shù)據(jù),以設(shè)備類型分配地址封包處理,之后利用串口通信對IoT網(wǎng)關(guān)發(fā)送。
通過CC2530串口通信和WiFi傳輸數(shù)據(jù)功能設(shè)計網(wǎng)關(guān)設(shè)備,硬件部分主要包括電源模塊、CC2530射頻板模塊、程序下載模塊。CC2530芯片和NodeMCU芯片在電路設(shè)計過程中利用排針連接[4],串口連接的結(jié)構(gòu)如圖2所示。
通過UART和CC2530通信引腳相互連接,接收終端環(huán)境數(shù)據(jù)收集設(shè)備中傳輸數(shù)據(jù)。之后利用ESP8266芯片中NodeMCU進(jìn)行開發(fā),通過MQTT使數(shù)據(jù)到服務(wù)器中發(fā)送。通過NodeMCU和ZigBee兩種技術(shù)設(shè)計網(wǎng)關(guān),不僅能夠保證數(shù)據(jù)傳輸過程中的效率與安全性,還能夠降低開發(fā)成本,應(yīng)用到農(nóng)業(yè)大棚等經(jīng)濟(jì)產(chǎn)業(yè)中。
1.4? 通信電路
串口和PC機(jī)是實(shí)現(xiàn)通信最為方便的通信接口,串行端口的本質(zhì)功能就是串行設(shè)備和CPU編碼轉(zhuǎn)換器。在數(shù)據(jù)通過CPU利用串行端口發(fā)送的過程中,字節(jié)數(shù)據(jù)發(fā)送到串行位中。在數(shù)據(jù)接收的過程中,串行位轉(zhuǎn)變?yōu)樽止?jié)數(shù)據(jù),串口屬于系統(tǒng)資源部分。
RS 485通信的主要優(yōu)勢就是利用雙絞線實(shí)現(xiàn)上位機(jī)和單片機(jī)的通信,其主要優(yōu)勢就是沖突保護(hù)、長傳輸距離、寬工模范圍、高噪聲抑制,此優(yōu)勢被廣泛應(yīng)用到工業(yè)設(shè)備和工業(yè)控制中[5]。通信電路的設(shè)計如圖3所示。
此系統(tǒng)使用RS 485串口通信,RS 485通信收發(fā)器使用Maxim公司低電壓芯片,此芯片屬于高速、低功耗、便于控制、價格便宜的異步通信接口芯片。通過其構(gòu)成的差分平衡系統(tǒng)抗干擾能力強(qiáng),接收器對200 mV信號進(jìn)行檢測。此芯片使用3.3 V低電壓供電,所以和LPC2101相互連接,不需要實(shí)現(xiàn)電平轉(zhuǎn)換。
1.5? 接口電路
為了提高系統(tǒng)和其他氣象儀器設(shè)備的兼容配套性,本文系統(tǒng)使用廣泛應(yīng)用到工業(yè)中的單排插針接口,系統(tǒng)板中利用工頭。將12 V和5 V,RS 485接口放置到系統(tǒng)一端,使數(shù)字量信號和模擬量輸入設(shè)置到另外一端。從而能夠避免信號干擾,降低測量進(jìn)入到本系統(tǒng)后的前后收集誤差。外部接口電路如圖4所示。
2? 系統(tǒng)的軟件設(shè)計
2.1? 軟件架構(gòu)的設(shè)計
本文所設(shè)計的軟件是將物聯(lián)網(wǎng)技術(shù)作為基礎(chǔ),系統(tǒng)軟件架構(gòu)如圖5所示?;贛ySQL數(shù)據(jù)庫和Apache Web服務(wù)器,利用氣象數(shù)據(jù)糾正程序、網(wǎng)絡(luò)數(shù)據(jù)交換程序、接口程序等模塊構(gòu)成。接口程序和數(shù)據(jù)庫能夠調(diào)用數(shù)據(jù)信息與服務(wù),提供給應(yīng)用程序部署模塊服務(wù)訪問接口與信息。ZigBee網(wǎng)絡(luò)數(shù)據(jù)交換程序模塊的主要目的就是通過網(wǎng)絡(luò)得出氣象觀測數(shù)據(jù),氣象數(shù)據(jù)糾正和融合處理程序以ZigBee網(wǎng)絡(luò)得出的數(shù)據(jù)與市級氣象服務(wù)器中得到區(qū)域天氣數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)融合,實(shí)現(xiàn)觀測氣象數(shù)據(jù)的修正處理,之后到數(shù)據(jù)庫存儲,最后Web發(fā)布和應(yīng)用模塊都能夠提供給用戶氣象觀測數(shù)據(jù)的Web服務(wù)[6]。
2.2? 基站和節(jié)點(diǎn)的軟件設(shè)計
節(jié)點(diǎn)的主要目的就是對氣象數(shù)據(jù)進(jìn)行收集,并且將數(shù)據(jù)傳輸?shù)交局校驹賹?shù)據(jù)傳輸?shù)街鞅O(jiān)控PC機(jī)中。因?yàn)槌浞挚紤]節(jié)點(diǎn)和基站通信的需求,首先要使用信道時分復(fù)用算法解決信道傳輸過程中的沖突問題,基于此添加身份識別碼進(jìn)行識別,利用循環(huán)主動訪問等算法實(shí)現(xiàn)系統(tǒng)信息的傳輸。具體軟件的設(shè)計思想是:首先,將ID分配給全部節(jié)點(diǎn),各節(jié)點(diǎn)使得到的ID到各自程序中寫入,基站也會存儲全部ID。系統(tǒng)在運(yùn)行的過程中,基站要根據(jù)循環(huán)發(fā)射各個節(jié)點(diǎn)ID對節(jié)點(diǎn)發(fā)送的數(shù)據(jù)幀進(jìn)行命令?;驹诮邮盏綌?shù)據(jù)幀之后實(shí)現(xiàn)ID和糾錯校驗(yàn),如果加入正確就記錄數(shù)據(jù),并且在主監(jiān)控PC機(jī)中傳輸,直到對下個節(jié)點(diǎn)進(jìn)行訪問,否則就再次發(fā)送此節(jié)點(diǎn)ID,直到接收數(shù)據(jù)。節(jié)點(diǎn)的軟件流程如圖6所示。
節(jié)點(diǎn)主程序在接收基站ID命令時觸發(fā)數(shù)據(jù)發(fā)送任務(wù)中斷服務(wù)程序,在中斷過程中,MCU會對接收命令和自身ID的一致性進(jìn)行判斷,假如一致,則到寄存器中存儲,使各個氣象數(shù)據(jù)和自身ID打包封裝成為指定數(shù)據(jù)幀,并且利用無線收發(fā)器進(jìn)行發(fā)送;否則,就清除中斷,將接收命令進(jìn)行忽略,之后進(jìn)入到主程序數(shù)據(jù)收集任務(wù)程序,更新寄存器數(shù)據(jù),依次循環(huán)并且等待下個中斷。避免各節(jié)點(diǎn)數(shù)據(jù)傳輸信道出現(xiàn)沖突,使信道保持通暢,還能夠提高基站接收數(shù)據(jù)的有效性和正確性[7]。
2.3? 主機(jī)和從機(jī)監(jiān)控軟件的設(shè)計
在設(shè)計PC端軟件的過程中,因?yàn)镻C運(yùn)行過程中的速度比較快,并且單片機(jī)速度無法滿足需求,那么基站在對數(shù)據(jù)檢驗(yàn)合格之后不進(jìn)行封裝,將原本數(shù)字幀利用串口對主監(jiān)控PC機(jī)進(jìn)行發(fā)送。主監(jiān)控PC機(jī)軟件的流程如圖7所示。
在軟件發(fā)送收集指令之后,基站在發(fā)送數(shù)據(jù)幀之前將串口通信端口寄存器打開,軟件能夠讀取數(shù)據(jù)幀,以此實(shí)現(xiàn)節(jié)點(diǎn)ID的識別,之后將各種數(shù)據(jù)取出,存儲到硬盤中,最后使各種數(shù)據(jù)根據(jù)坐標(biāo)展現(xiàn)在軟件界面中,以此構(gòu)成時間段數(shù)據(jù)變化曲線。假如接收各種數(shù)據(jù)利用GSM模塊對手機(jī)用戶實(shí)現(xiàn)警報信息的發(fā)送,客戶監(jiān)控軟件主要監(jiān)控結(jié)構(gòu)和主監(jiān)控軟件一樣,只是客戶端要對主控制端實(shí)現(xiàn)遠(yuǎn)程連接請求的發(fā)送,成功連接之后,主監(jiān)控端就會接收基站發(fā)送的數(shù)據(jù)幀,并且對客戶端發(fā)送相同數(shù)據(jù)幀。客戶端中數(shù)據(jù)處理流程和以上描述主監(jiān)控端相同,監(jiān)控模塊實(shí)現(xiàn)的代碼如下:
ScriptAlias
Options ExecCGI
AllowOverride None
Require all granted
AuthName "Nagios Access"
AuthType Basic
AuthUserFile htpasswd.users
Require valid?user
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/htpasswd.users
Require valid?user
3? 系統(tǒng)測試
本文系統(tǒng)在某生態(tài)科技園區(qū)實(shí)現(xiàn)數(shù)據(jù)收集和組網(wǎng)實(shí)驗(yàn),收集光照強(qiáng)度、空氣濕度、溫度和土壤濕度,選擇7個獨(dú)立農(nóng)業(yè)大棚布置節(jié)點(diǎn),使測量數(shù)據(jù)傳輸效率、終端收集節(jié)點(diǎn)距離根據(jù)需求放置,并且實(shí)現(xiàn)測試。
使用精準(zhǔn)電壓電阻測量節(jié)點(diǎn)功耗,保證測量接通電源后的功耗。根據(jù)系統(tǒng)終端節(jié)點(diǎn)使氣象環(huán)境數(shù)據(jù)收集為定時收集,設(shè)置系統(tǒng)每個小時執(zhí)行接收的命令與發(fā)送數(shù)據(jù)的動作時間為50 s,電量一共為3 000 mA[?]h,滿足系統(tǒng)低功耗需求。
根據(jù)三種傳感器節(jié)點(diǎn)收集環(huán)境特性和監(jiān)測土壤濕度,設(shè)置收集周期為20 min,光照強(qiáng)度收集周期為10 min,空氣濕度和溫度收集周期為5 min。在協(xié)議棧中使用終端收集節(jié)點(diǎn)休眠喚醒機(jī)制,實(shí)現(xiàn)環(huán)境數(shù)據(jù)的連續(xù)性。表1為網(wǎng)絡(luò)丟包率,通過表1可知,丟包率不斷增長的主要原因?yàn)榻K端收集節(jié)點(diǎn)和協(xié)調(diào)器距離,在距離100 m后,丟包率在不斷增加。但是,在農(nóng)業(yè)大棚實(shí)際使用過程中,終端收集節(jié)點(diǎn)對網(wǎng)關(guān)傳輸數(shù)據(jù)距離為100 m以下,整體網(wǎng)絡(luò)平均丟包率不超過2.6%,使大棚內(nèi)空氣濕度、溫度、光照強(qiáng)度和土壤濕度的需求得到滿足[8]。
4? 結(jié)? 語
利用分析系統(tǒng)測試和應(yīng)用,本文研究了基于物聯(lián)網(wǎng)技術(shù)農(nóng)業(yè)氣象應(yīng)用系統(tǒng)。本文系統(tǒng)前端收集設(shè)備的成本比較低,并且便于布點(diǎn),后端管理軟件包括模塊集成,能夠使專家知識應(yīng)用到軟件中,充分使用移動互聯(lián)網(wǎng)優(yōu)勢,從而提供農(nóng)業(yè)氣象服務(wù)。此系統(tǒng)使用比較簡單方便,用戶只需要在有網(wǎng)絡(luò)的地方將瀏覽器打開,就能夠?qū)崿F(xiàn)信息瀏覽、報警查看和設(shè)備管理。
參考文獻(xiàn)
[1] 徐白冰,王建立,曹景太.基于物聯(lián)網(wǎng)的溫濕度與風(fēng)速信息采集系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].液晶與顯示,2016,31(10):936?942.
[2] 崔麗珍,徐錦濤,丁福星,等.基于物聯(lián)網(wǎng)的農(nóng)業(yè)大棚氣象數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2018,44(12):73?76.
[3] 李曉丹.基于STM32的物聯(lián)網(wǎng)嵌入式網(wǎng)關(guān)的設(shè)計[J].計算機(jī)工程與應(yīng)用,2015,51(4):61?65.
[4] 丁波.基于WebSocket協(xié)議的智能溫室測控系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].鎮(zhèn)江:江蘇大學(xué),2016.
[5] 翟俊菁,李必龍,賈香風(fēng).基于物聯(lián)網(wǎng)技術(shù)的農(nóng)業(yè)氣象觀測系統(tǒng)的研究與設(shè)計[J].中國農(nóng)學(xué)通報,2016,32(32):182?187.
[6] 梁龍凱,何文超,呂緒浩.基于STM32及物聯(lián)網(wǎng)的老年人追蹤定位系統(tǒng)設(shè)計[J].電子世界,2017,51(21):105?106.
[7] 王峰.基于物聯(lián)網(wǎng)的農(nóng)業(yè)大棚溫度自動控制系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2017,40(13):152?154.
[8] 蔡澤利,譚振江.物聯(lián)網(wǎng)智能無線節(jié)點(diǎn)自動監(jiān)控數(shù)據(jù)采集系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2018,41(4):183?186.