萬 云,蔣 陽
(1.重慶城市職業(yè)學院 信息與智能工程系,重慶402160;2.重慶大學 通信工程學院,重慶 400030)
如何在傳統(tǒng)農(nóng)業(yè)生產(chǎn)的基礎(chǔ)上提升農(nóng)作物的品質(zhì)和產(chǎn)量,智能溫室已成為有效途徑之一[1]。目前市場上已有一些智能溫室監(jiān)控系統(tǒng)的解決方案,主要體現(xiàn)在有線控制和無線控制兩類。文獻[1,2]中采用以PLC為核心的有線控制方案,此類方案抗干擾性強,但存在布線困難、施工復(fù)雜、投入成本高等問題;文獻[3-6]中利用GPRS、ZIGBEE、WIFI等技術(shù)完成對溫室現(xiàn)場農(nóng)作物生長環(huán)境的無線監(jiān)測與控制,此類方案解決了有線傳輸?shù)谋锥耍廊淮嬖趥鬏斔俾瘦^慢、距離近、功耗高、易干擾、組網(wǎng)復(fù)雜等缺點[6]。且它們共同存在一個問題是只能對單個溫室實現(xiàn)監(jiān)控,若對于有2個或2個以上的溫室組成的溫室群則無法完成監(jiān)控。
通過以上無線溫室監(jiān)控系統(tǒng)的探索,借鑒前人的研究經(jīng)驗,本文設(shè)計了一種基于LoRa技術(shù)的智慧溫室群遠程監(jiān)控系統(tǒng),它以STM32F103C8T6單片機為核心器件,采用低功耗、可遠距離傳輸?shù)腁TK-LoRa-01 SX1278無線模塊和NB-IOT模塊共同完成無線通信,實現(xiàn)溫室群中各參數(shù)的可靠傳輸與實時監(jiān)控。
該系統(tǒng)需實現(xiàn)對溫室群(至少2個溫室,各溫室間距離在2 KM范圍內(nèi))的遠程監(jiān)測和控制,能遠程監(jiān)測各溫室內(nèi)光照度、溫濕度、CO2濃度和土壤水分等環(huán)境因子,并能通過PC端遠程顯示各環(huán)境因子實時值,當值超過正常范圍后,能自動控制或通過PC終端手動控制溫室內(nèi)風機、滴灌、補光燈、噴霧加濕器等設(shè)備,確保溫室內(nèi)各環(huán)境參數(shù)一直在有效范圍內(nèi),以此增加農(nóng)作物產(chǎn)量,促進現(xiàn)代農(nóng)業(yè)、智慧農(nóng)業(yè)的發(fā)展。
為了實現(xiàn)以上功能,設(shè)計了該系統(tǒng)結(jié)構(gòu)框架(本文采用2個溫室),如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)框架
該系統(tǒng)將溫室群中的各溫室定義為節(jié)點,每個溫室通過采集模塊中的傳感器分別采集室內(nèi)光照、溫濕度、CO2濃度和土壤水分的值,經(jīng)MCU處理后傳送給各節(jié)點的LoRa模塊,再經(jīng)LoRa自組網(wǎng)協(xié)議傳至由LoRa、MCU和NB共同構(gòu)成的網(wǎng)關(guān)組網(wǎng)處理,最后經(jīng)云端透傳至用戶PC端上位機。上位機可根據(jù)所得值自動或手動控制溫室中的遮陽網(wǎng)、風機、補光燈、天窗、滴灌、CO2發(fā)生器等執(zhí)行設(shè)備,以確保溫室內(nèi)各環(huán)境因子值在有效范圍內(nèi)。
基于以上功能分析,本系統(tǒng)共需3塊控制芯片完成整個控制,由于溫室遠程監(jiān)控為戶外監(jiān)控,其控制芯片要求具備運算速度高、功耗低、性能要求較高等特點,加之采集CO2濃度、土壤水分以及LoRa模塊需進行串口傳輸,由文獻[7]可知,單片機STM32F103C8T6符合要求,且價格較為適中,因此該系統(tǒng)將STM32F103C8T6作為核心控制芯片。同時為使該微控制器穩(wěn)定工作和后期調(diào)試,設(shè)計了晶振電路和燒寫程序插針口。
該系統(tǒng)所有設(shè)備均采用無線方式實現(xiàn)通信,它由ATK-LoRa-01模塊和NB100模塊構(gòu)成。ATK-LoRa-01是ALIENTEK公司推出的一款低功耗、體積小、微功率、高性能遠距離LoRa無線串口模塊,最遠距離可達3 KM,其采用高效的ISM頻段射頻SX1278擴頻芯片,工作頻率在410 Mhz-441 Mhz免費頻段[8,9]。而NB100模塊是NBIOT產(chǎn)品中的一種,它自身已集成了電源、SIM卡座、天線、ESD防護等電路,上電即可使用[10]。
ATK-LoRa-01實現(xiàn)的是節(jié)點間與網(wǎng)關(guān)通信,NB100實現(xiàn)的是網(wǎng)關(guān)與云端的通信。無論是LoRa模塊還是NB100模塊,他們要正常通信,就必須與MCU直連,才能實現(xiàn)對數(shù)據(jù)有效處理。根據(jù)傳輸原理,設(shè)計時只需直接引出ATK-LoRa-01模塊的串口收發(fā)引腳RX和TX、NB100模塊的收發(fā)引腳RXD和TXD分別接至MCU的PA9、PA10和PB10、PB11腳即可。
該系統(tǒng)中需要采集溫室內(nèi)環(huán)境因子有:光照度、溫濕度、CO2濃度和土壤水分,因此需要用到對應(yīng)的傳感器,這些傳感器一起構(gòu)成了采集模塊,他們將所采集到的信息傳送給MCU進行處理,其電路設(shè)計如圖2所示。
光照傳感器采用的是BH1750,如圖2(a)所示,具有測量范圍廣(在1-65535LX之間),光譜范圍接近人眼,對光源依賴性不大,受紅外線影響小,工作溫度范圍大等優(yōu)點[11]。該傳感器共有VCC、SCL、SDA、ADDR和GND這5個接口(即圖2(a)中5至1口),分別表示接3 V-5 V電源,IIC總線時鐘線、IIC總線數(shù)據(jù)線、IIC地址引腳和接地。在該系統(tǒng)中,此傳感器電源采用了接3.3 V直流電,SCL時鐘線和SDA數(shù)據(jù)線分別接至MCU中的PB8和PB9。
溫濕度傳感器采用的是DHT11,它有4引腳,分別接至3.3 V電壓、MCU的PA11、懸空和GND端。如圖2(b)所示,其濕度測量范圍在20%-90%RH之間,溫度測量范圍在0 ℃-50 ℃之間,溫濕度的分辨率在1個單位,采樣周期為1 s,能夠滿足系統(tǒng)的采集要求[12]。該傳感器采用校驗和的方式進行數(shù)據(jù)校驗,一次性可將40 bit濕度和溫度數(shù)據(jù)傳輸給單片機。傳輸格式為:8 bit濕度數(shù)據(jù)(整數(shù)部分)+8 bit濕度數(shù)據(jù)(小數(shù)部分)+8 bit溫度數(shù)據(jù)(整數(shù)部分)+8 bit溫度數(shù)據(jù)(小數(shù)部分)+8 bit校驗和;其中校驗和數(shù)據(jù)為前4個字節(jié)相加。

圖2 采集模塊電路設(shè)計
例如:某次從傳感器中讀取見表1。

表1 溫濕度傳感器DHT11數(shù)據(jù)處理值計算方法
由以上數(shù)據(jù)就可得到濕度和溫度的值,計算方法:
濕度=byte4. byte3=44.0 (%RH)
溫度=byte2. byte1=20.0 (0C)
校驗=byte4+byte3+byte2+byte1=64(=濕度+溫度)(即校驗正確)
CO2濃度傳感器采用的是MH-Z19,其利用非色散紅外(NDIR)原理對空氣中存在的CO2進行探測,具有高靈敏度、高分辨率、低功耗、抗水氣干擾、優(yōu)異的穩(wěn)定性和可溫度補償?shù)葍?yōu)點[13]。該傳感器有兩種讀取數(shù)據(jù)形式,即PWM輸出和串口輸出[14]。其中PWM輸出的算法如下
式中:Cppm——通過計算得到的CO2濃度值,單位為ppm;TH——1個輸出周期中輸出為高電平的時間;TL為——1個輸出周期中輸出為低電平的時間。
串口輸出是將傳感器Vin端接5 V,GND端接地,MCU的RXD 端接傳感器的TXD,MCU的TXD端接傳感器的RXD。這樣就可通過傳感器的UART接口直接讀出氣體濃度值。本系統(tǒng)采用此種讀取形式,如圖2(c)所示,所示,直接將傳感器的2、3號引腳接至MCU的PA9和PA10。
土壤水分傳感器485型PR-3000-TR-N01,該傳感器的水分測量范圍在0-100%之間,具有響應(yīng)快,精度高,受土壤含鹽量影響較小和輸出穩(wěn)定等特點,適用于各種土質(zhì),并可長期埋入土壤中,耐長期電解,耐腐蝕,抽真空灌封,完全防水[15]。由于該傳感器為485型,需外接RS-485收發(fā)器才能正常獲取采集數(shù)據(jù),因此在傳感器和MCU之間加了SP3485收發(fā)器來實現(xiàn)數(shù)據(jù)的傳輸。根據(jù)管腳定義,如圖2(d)中將6、7腳引出至P6端子口,分別接傳感器的RS485-A和RS485-B即可,接收器輸出使能端RE腳接至MCU的PA0腳。
驅(qū)動模塊作用是為了讓溫室內(nèi)環(huán)境因子始終控制在有效范圍內(nèi)而驅(qū)動執(zhí)行設(shè)備。在該監(jiān)控系統(tǒng)中,為了讓室內(nèi)環(huán)境因子維持在一定范圍內(nèi),設(shè)計了8路驅(qū)動,分別是驅(qū)動天窗、遮陽網(wǎng)、熱風機、循環(huán)風機、噴霧加濕器、滴灌、補光燈、CO2發(fā)生器等8個設(shè)備。每路驅(qū)動原理一致,均采用控制繼電器的方式對其驅(qū)動。
通信協(xié)議是保證收發(fā)雙方能夠可靠通信的約定,該設(shè)計中采用定時收發(fā)自組協(xié)議的方式進行,在采集環(huán)境因子實時值時,上位機會定時通過網(wǎng)關(guān)下發(fā)指令給各采集節(jié)點,采集節(jié)點會按照定義好的數(shù)據(jù)幀協(xié)議上傳給網(wǎng)關(guān)[16,17]。
根據(jù)SX1278解析數(shù)據(jù)時間開銷及系統(tǒng)實時性響應(yīng)要求,其讀寫各子節(jié)點的數(shù)據(jù)幀由幀頭、節(jié)點地址、數(shù)據(jù)域、幀尾組成,該幀中數(shù)據(jù)域包含有空氣濕度、溫度、土壤水分、光照度和CO2濃度等值,其中光照度和CO2濃度占2個字節(jié),其它均為1個字節(jié),其格式見表2。

表2 LoRa節(jié)點采集數(shù)據(jù)幀格式
該數(shù)據(jù)幀中,幀頭幀尾分別固定為9AH和FFH,表示一個完整的數(shù)據(jù)起始;節(jié)點設(shè)備號表示各溫室中采集節(jié)點的編號,本系統(tǒng)中有2個溫室,即用01H和02H分別表示2個溫室節(jié)點號。
系統(tǒng)網(wǎng)關(guān)功能是定時收發(fā)(預(yù)設(shè)100 ms)各溫室節(jié)點的數(shù)據(jù),對其組網(wǎng)后將數(shù)據(jù)定時(預(yù)設(shè)250 ms)上傳至云端服務(wù)器。主程序中,初始化成功后,當查詢到UART或LoRa數(shù)據(jù)時,網(wǎng)關(guān)中的NBIOT模塊會判斷自身是否收到服務(wù)器或者集中器的數(shù)據(jù),如果收到則會對數(shù)據(jù)進行解析并記錄狀態(tài)值,如果未收到數(shù)據(jù),則會向集中器發(fā)送指令,查詢LoRa集中器是否收到數(shù)據(jù),若在集中器中收到數(shù)據(jù),會將對應(yīng)的數(shù)據(jù)賦值給NBIOT中對應(yīng)的變量,若仍未收到數(shù)據(jù),則會繼續(xù)往下一級LoRa節(jié)點發(fā)送指令,同理查詢定時時間是否到,若到定時值也有數(shù)據(jù),則將繼電器狀態(tài)放入發(fā)送數(shù)組發(fā)送給NBIOT模塊,若到定時值但無數(shù)據(jù),則會檢查NBIOT上的定時是否到時間值,若到時間,則會繼續(xù)將繼電器狀態(tài)往上級發(fā)送,直至NBIOT收到數(shù)據(jù)為止。網(wǎng)關(guān)軟件設(shè)計流程如圖3所示。

圖3 網(wǎng)關(guān)軟件設(shè)計流程
節(jié)點主要是完成各溫室中環(huán)境因子數(shù)據(jù)的采集,將采集的數(shù)據(jù)通過自組LoRa協(xié)議進行上傳,且及時接收網(wǎng)關(guān)中LoRa集中器的指令。
主程序中,當查詢到UART或者LoRa數(shù)據(jù)符合協(xié)議時,節(jié)點會判斷是否收到集中器數(shù)據(jù),若收到則會解析執(zhí)行模塊中繼電器的狀態(tài),并根據(jù)狀態(tài)信息驅(qū)動開關(guān)和回傳最新的傳感器采集數(shù)據(jù),再繼續(xù)判斷定時采集時間(預(yù)設(shè)200 ms)是否到時;若未收到,則會直接判斷定時采集傳感器是否到200 ms,若到定時值,則采集相應(yīng)傳感器的值,若未到定時值,則節(jié)點處于休眠狀態(tài),等待下次協(xié)議指令的到來。其節(jié)點軟件工作流程如圖4所示。

圖4 節(jié)點軟件設(shè)計流程
上位機軟件設(shè)計主要包含有下行指令的處理、上行數(shù)據(jù)的處理。上位機軟件設(shè)計均采用事件方式處理,網(wǎng)關(guān)初始化Socket對應(yīng)的事件,與云平臺服務(wù)器建立連接[18,19]。
在下行指令的處理過程中,按照通信協(xié)議,通過PC端監(jiān)控界面發(fā)送操控指令給云平臺服務(wù)器,云平臺服務(wù)器對指令進行解析并將控制包下發(fā)給網(wǎng)關(guān),網(wǎng)關(guān)的MCU再根據(jù)通信協(xié)議解析,解析后的新指令包繼續(xù)下發(fā)至LoRa集中器,集中器再根據(jù)協(xié)議配置給各節(jié)點,同時將配置成功的信息反饋回PC端監(jiān)控界面。
而在上行數(shù)據(jù)處理過程中,云平臺服務(wù)器通過網(wǎng)關(guān)一直處于偵聽數(shù)據(jù)狀態(tài),一是不斷偵聽從節(jié)點終端、集中器發(fā)送過來的數(shù)據(jù),并將數(shù)據(jù)存入云端平臺的服務(wù)器中;二是要不斷偵聽從PC端向云端服務(wù)器發(fā)出的數(shù)據(jù)讀取請求,服務(wù)器響應(yīng)請求并訪問服務(wù)器讀取相應(yīng)的值,將數(shù)據(jù)發(fā)送至前端進行實時顯示。其軟件設(shè)計流程如圖5所示。
為驗證系統(tǒng)遠程通信、在溫室群中各溫室間最大通信距離、數(shù)據(jù)傳輸?shù)目煽啃?、PC端監(jiān)控界面可操作性等,將設(shè)計好的系統(tǒng)如圖6所示布局。
同時設(shè)定實驗條件如下:
(1)溫室群中有兩個溫室,即2路節(jié)點,為更好測試兩個溫室間最大通信距離,假定一路節(jié)點為固定狀態(tài),一路節(jié)點為可移動狀態(tài);

圖5 上位機軟件設(shè)計流程

圖6 系統(tǒng)節(jié)點布局
(2)每個溫室節(jié)點中配有相同的光照度、溫濕度、CO2濃度和土壤水分4種傳感器;
(3)兩個節(jié)點和網(wǎng)關(guān)中LoRa模塊發(fā)射功率均為100 mW,覆蓋頻率均為410 MHz-441 MHz;
(4)在程序中,兩個節(jié)點中傳感器采集數(shù)據(jù)時間均預(yù)設(shè)為200 ms,網(wǎng)關(guān)定時收發(fā)節(jié)點數(shù)據(jù)時間預(yù)設(shè)為100 ms,定時上傳至云端服務(wù)器時間預(yù)設(shè)為250 ms。
通信的成功與否是實現(xiàn)溫室群遠程監(jiān)控的第一步,將兩大節(jié)點和網(wǎng)關(guān)均上電,在上位機輸入云端IP地址和端口號,點擊上位機“連接服務(wù)器”,即可顯示通信連接成功提示,且能收到云端發(fā)送的兩個節(jié)點數(shù)據(jù),表示上位機與云端已成功建立連接;同時在云端也能接收到兩個節(jié)點采集到的數(shù)據(jù)信息和上位機傳送回的數(shù)據(jù),如圖7所示。此時表明兩個節(jié)點、網(wǎng)關(guān)、上位機已經(jīng)成功建立了通信,實現(xiàn)了遠程連接。
為了準確測試兩個溫室間距離在2 KM范圍內(nèi)能正常通信,在實驗過程中將一路節(jié)點固定放重慶城市職業(yè)學院物聯(lián)網(wǎng)應(yīng)用技術(shù)推廣中心的實驗溫室中,另一路節(jié)點分別從相對空曠區(qū)域每隔500 m直線距離模擬測試一次,所測數(shù)據(jù)見表3。
從測試結(jié)果看,在2.5 KM范圍內(nèi)的兩個溫室互相通信成功率極高,能滿足系統(tǒng)設(shè)計需求,也表明在2.5 KM直徑范圍內(nèi)的溫室群均能正常通信,只需將溫室間數(shù)據(jù)通過網(wǎng)關(guān)發(fā)送到云端后,就能實現(xiàn)對溫室群的遠程監(jiān)控。

圖7 系統(tǒng)遠程通信測試結(jié)果

表3 溫室間通信距離的測試結(jié)果
經(jīng)過在谷雨云透傳平臺的數(shù)據(jù)調(diào)試,在通信距離為1000 m、1500 m、2500 m時系統(tǒng)的數(shù)據(jù)傳輸狀態(tài)見表4。

表4 數(shù)據(jù)傳輸實時性和可靠性測試結(jié)果
從表4分析可知,該系統(tǒng)在溫室間通信距離2500 m時的誤碼率為
即傳輸10 000個字符時可能出現(xiàn)3字符錯誤信息,能夠滿足監(jiān)測需求;
同時從表中可知,從1500 m時有數(shù)據(jù)延時現(xiàn)象發(fā)生,隨著距離的增加,數(shù)據(jù)延時現(xiàn)象較多,但在系統(tǒng)性能允許范圍之內(nèi)。
為了方便農(nóng)戶遠程實時監(jiān)控溫室群,為該系統(tǒng)設(shè)計了如下監(jiān)控界面,如圖8所示。在該監(jiān)控界面,只需輸入云端服務(wù)器IP地址和端口號,即可實時觀測兩個溫室中各環(huán)境因子的值,并能實時觀測各執(zhí)行設(shè)備的開關(guān)狀態(tài),同時還可方便地手動設(shè)置溫室中所監(jiān)測對象的范圍及調(diào)控溫室內(nèi)各執(zhí)行設(shè)備。

圖8 遠程PC端監(jiān)控界面
本文從實際應(yīng)用出發(fā),根據(jù)現(xiàn)代化溫室群監(jiān)控的需要,設(shè)計了一種基于LoRa技術(shù)的智能溫室群遠程監(jiān)控系統(tǒng)。從實驗結(jié)果可知,該系統(tǒng)在具備無線遠程通信、實時可靠等功能的基礎(chǔ)上,還具備低功耗、易操作、可遠距離同時監(jiān)控溫室群(2 KM范圍內(nèi)的多個溫室)的特點。
由于以上實驗均是在較空曠地帶臨時所測,因此在未來的設(shè)計中,還需在更加復(fù)雜環(huán)境中對系統(tǒng)進行測試與改進,復(fù)雜環(huán)境中溫室群的智能監(jiān)控將是下一步研究的重點。