





摘 要:傳統校園綠化噴淋系統只能由工作人員手動啟停噴淋作業,憑經驗判斷噴淋的時間點和時長,無法實現按需噴淋、精準噴淋,進而導致水資源和人力資源的浪費。針對以上問題,借助LoRa技術和物聯網云平臺技術,對校園綠化噴淋系統進行智能化改造。改造后的系統通過土壤濕度傳感器實時采集土壤濕度數據,并利用LoRa技術將數據無線傳輸至網關節點,網關節點再上傳至物聯網云平臺。在云平臺上,系統會將土壤濕度值與閾值進行對比分析,并下發控制命令給網關節點。網關節點再通過LoRa技術將控制指令無線發送至終端節點,從而實現終端節點的自動啟停控制。系統部署后,運行穩定,控制精準度高,實現了全程無人值守,達到了預期的改造效果。
關鍵詞:LoRa;STM32;Android;物聯網云平臺;綠化噴淋系統;智能化改造
中圖分類號:TP274 文獻標識碼:A 文章編號:2095-1302(2024)12-0-05
0 引 言
筆者所在單位環境優美,綠化面積大,分布區域多,建有一套人工噴淋系統,其系統結構如圖1所示。噴淋頭串接在一根總水管上。當水泵開啟,水管產生水壓,噴淋頭隨即彈出地面并開始旋轉噴淋;當水泵關閉,水管失去水壓,噴淋頭縮入地面以下,停止噴淋。整個噴淋過程由工作人員手動控制開關,憑經驗判斷噴淋的時間點和時長,無法實現按需噴淋、精準噴淋,存在水資源和電力資源的浪費,且需要的人力成本較高。針對以上問題,筆者組建科研團隊開展校園綠化噴淋系統智能化改造的研究工作。文獻[1]針對公路鐵路綠化帶養護需求,采用濕度檢測器檢測空氣和土壤的濕度,通過數據處理系統判斷并計算植被需水量,再由控制系統自動調節噴灌時間和用水量,實現了道路綠化帶的自動測控噴灌;文獻[2]應用物聯網技術,根據棉花的灌溉決策與實際管理需求,進行了棉花智能化微灌系統設計和應用;文獻[3]結合氣溫、風速、降雨量和氣壓等土壤墑情影響因子,提出園林綠化智能噴淋控制系統的設計方案。
本文在借鑒前人研究的基礎上,結合筆者校園現有噴淋系統,并遵循節儉節約的原則,提出了基于物聯網技術的校園綠化噴淋系統智能化改造方案。相較于前人提出的方案,該方案具有技術先進、改造成本低、噴淋距離遠、功耗低、快速部署和易于拓展等優勢。
1 改造方案設計
隨著國家扶持和發展物聯網的政策不斷出臺,在各級各地政府積極響應和大力推進的背景下,物聯網技術在各行各業得到廣泛的應用,并催生出一批新興的物聯網技術。
LoRa(Long Range Radio)作為一種基于擴頻技術的遠距離無線傳輸技術,其最大特點是在同等的功耗條件下,相較于其他無線傳輸方式,能實現更遠的傳輸距離,從而實現了低功耗和遠距離的完美統一[4-6]。當代的物聯網技術,已經從早期的M2M(機器到機器間通信)階段,邁入了以物聯網云平臺為核心的新時代。可以將來自任意數量設備的數據發送到云平臺,在云平臺中通過自定義的儀表板查看或共享。也可以通過云平臺下發控制命令控制執行器的啟停。甚至可以在云平臺制定執行器的執行策略,進而實現整個系統的無人值守和全自動運行[7-8]。
改造思路是在圖1每根支管處增加一個電磁閥門控制節點,電磁閥門受網關節點的LoRa無線命令控制,進而控制該支管上所有噴淋頭的開啟和停止;在每個支管區域內選擇1個典型位置,設置1個土壤濕度采集節點,用于采集每個支管區域內的土壤濕度數據,并通過LoRa以無線的方式傳輸給遠方的網關節點;在水泵處設置1個水泵控制節點,使用兩級繼電器與水泵啟停平頭自復位按鈕相連,進而由網關節點的LoRa無線命令控制水泵的啟停;在校園中心位置(室內)設置網關節點,網關節點由匯聚節點和安卓工控平板組成,實現上報土壤濕度傳感器數據到云平臺并下發云平臺控制命令給電磁閥門控制節點和水泵控制節點的功能。
改造系統框架如圖2所示,其由土壤濕度采集節點、電磁閥門控制節點、水泵控制節點、匯聚節點、安卓工控平板、物聯網云平臺構成。土壤濕度采集節點實時采集當前區域內土壤濕度數據并上報給匯聚節點,匯聚節點通過安卓工控平板的網關功能將數據傳輸給物聯網云平臺,并在云平臺應用界面實時呈現出來。通過單擊云平臺應用界面按鈕下發控制命令,控制命令通過安卓工控平板和匯聚節點被下發給水泵控制節點和各個區域的電磁閥門控制節點,進而控制水泵和各個區域電磁閥門的啟停。還可以利用云平臺的策略功能,制定自動啟停策略,進而實現濕度低于最小閾值自動開啟水泵和對應區域電磁閥門、濕度高于最大閾值自動關閉水泵和對應區域電磁閥門的功能。
2 系統硬件設計
2.1 終端節點設計
終端節點包括土壤濕度采集節點、電磁閥門控制節點、水泵控制節點。本文LoRa節點采用STM32L151C8T6D+ LSD4RF-2F717N30的組合形式[9]。STM32L151C8T6D是一款基于ARM Cortex-M內核的STM32系列的32位微控制器(MCU)。LSD4RF-2F717N30是基于SX1278的LoRa芯片,采用擴頻通信技術,抗干擾能力強,并且具備低功耗和超遠距離通信的特點,相對于傳統調制技術有明顯優勢。LoRa芯片與MCU通過串行外設接口(SPI)通信。
土壤濕度傳感器采用山東建大仁科公司生產的產品,其工作直流電壓為10~30 V,輸出電流為4~20 mA,檢測濕度為0~100 %RH。土壤濕度傳感器經過電流轉電壓模塊后與LoRa節點的模數轉換通道ADC0相連。土壤濕度傳感器由12 V蓄電池供電,采集的土壤濕度數據經由LoRa節點以無線方式傳輸給遠方的LoRa匯聚節點,LoRa節點通過變壓模塊由12 V蓄電池供電。
電磁閥門控制節點通過一級繼電器的方式連接LoRa節點上的GPIO引腳和電磁閥門。一級繼電器直接由LoRa節點上的3.3 V GPIO電壓驅動,電磁閥門由12 V蓄電池供電。需要開啟電磁閥門時,LoRa節點上的3.3 V GPIO引腳輸出高電平,使得3.3 V一級繼電器工作,一級繼電器驅動12 V電磁閥門導通,水流通過支管,支管上的噴淋頭在水壓的影響下彈出地面開始旋轉噴淋。需要關閉噴淋頭時,只需要讓LoRa節點上的3.3 V GPIO引腳輸出低電平即可。
水泵控制節點通過二級繼電器的方式連接LoRa節點的GPIO引腳和水泵的平頭自復位按鈕。水泵處已有380 V和220 V交流電,LoRa節點通過變壓模塊由220 V交流電供電,一級繼電器直接由LoRa節點上的3.3 V GPIO電壓驅動,二級繼電器通過24 V變壓模塊由220 V交流電供電。需要開啟水泵時,LoRa節點上的3.3 V GPIO引腳輸出高電平,使得3.3 V一級繼電器工作,并帶動24 V二級繼電器工作,二級繼電器使得控制水泵開啟的平頭自復位按鈕導通,水泵開始工作。反之亦然,這樣便可以通過二級繼電器實現3.3 V低電壓控制380 V高電壓水泵啟停的功能。終端節點組成原理示意圖如圖3所示。
2.2 網關節點設計
網關節點包括匯聚節點和安卓工控平板。匯聚節點硬件選型與終端節點相似,采用STM32L151C8T6D+LSD4RF-2F717N30的組合形式,區別是匯聚節點需要通過RS 485總線與安卓工控平板的COM1口相連,同時不需要連接傳感器和執行器。考慮安卓工控平板COM1是RS 232接口,所以需要一塊實現RS 232到RS 485轉換的無緣轉換模塊,另外考慮RS 485總線通信距離不能過長,匯聚節點和安卓工控平板需近距離部署。
選擇安卓工控平板時,考慮到無線通信和移動需求,選擇北京新大陸科技有限公司出品的安卓觸摸工控平板。該工控平板運行Android系統,采用ARM架構的RK3288四核處理器,配置1 280 mm×800 mm的工控觸摸屏,提供以太網口,支持WiFi無線功能,可以采用無線或者有線的方式接入網絡。
2.3 物聯網云平臺選型
物聯網云平臺是集設備連接、設備開發、設備運營管理、數據分析及展示等功能于一體的物聯網管理平臺。在物聯網云平臺中定義了統一的設備接入標準,以及統一的數據管理及交換標準,確保不同廠商不同類型的終端設備在平臺上得以集中管理并且提供統一的數據交換功能,并通過平臺連接各種業務相關的異構系統、應用以及數據源,滿足平臺各系統之間無縫共享和交換數據的需要[10]。
本文選用了北京新大陸科技有限公司的云平臺(http://www.nlecloud.com/),主要考慮其具備以下幾點優勢:
(1)實時監控
通過高并發的處理速度接收終端設備發送的傳感數據,并直接存儲到數據庫和服務器內存中,監控頁面以異步方式高效讀取內存中的傳感數據,實現實時監控。
(2)項目快速開發
無須獨立開發APP和Web,通過平臺提供的在線項目設計器,使用拖拉的方式創建傳感器、圖表等組件,完成后立即發布到萬維網,通過瀏覽器即可瀏覽。
(3)安全性與穩定性
系統提供了完善的權限保障機制,設備接入平臺及數據傳輸身份認證方面采用MD5簽名驗證,SDK、API調用采用HTTP包頭加MD5 Token驗證,從而確保數據的保密性與安全性。
3 系統軟件設計
3.1 終端節點軟件設計
LoRaMac-node是Semtech公司推出的開源LoRaWAN終端節點協議棧和參考例程,最新版可以在https://github.com/LoRa-net/LoRaMac-node下載。LoRaMac-node內部集成了SX1278的驅動函數和應用接口,需要將SX1278的驅動程序和無線收發功能移植和適配到本文所提的終端節點上。本文所提終端節點的MCU為STM32L151C8T6D,與LoRaMac-node中默認的MCU不同,所以還需要移植STM32L151C8T6D對應的外設驅動程序和HAL庫文件。移植后可以調用SX1278無線收發相關應用接口,實現LoRa無線數據的收發。以上移植過程和SX1278無線收發相關應用接口調用過程在北京新大陸時代教育科技有限公司組編的《傳感網應用開發(中級)》教程中有詳細介紹,此處不再贅述。
土壤濕度采集終端節點上電初始化后,循環判斷是否收到匯聚節點發來的采集傳感器數據指令,如果收到指令,則將采集到的土壤濕度數據以LoRa無線方式傳輸給匯聚節點。采用輪詢上報數據的方法,可以有效解決共享信道造成的沖突問題。工作流程如圖4所示。
下文為采集土壤濕度的代碼(周期為5 s):
void LoRa_GetSensorDataProcess(void)
{
const uint16_t time = 5000;
if(User0Timer_MS gt; time)
{
User0Timer_MS = 0;
uint16_t AdcNum,voltage;
AdcNum = AdcReadChannel( amp;Adc, ADC_CHANNEL_0 );
voltage = AdcNum*3300/(4096-1.0);
Humi =(uint8_t)((voltage-600)*100/(3000-600));
char StrBuf[64]={0};
memset(StrBuf, '\0', 64);
sprintf(StrBuf, \" %d %%rh" \",Humi);
OLED_ShowString(48,2,(uint8_t *)StrBuf);
}
}
電磁閥門控制終端節點上電后初始化各個硬件模塊,循環判斷是否收到匯聚節點發來的啟停電磁閥門指令,如果收到,還需要判斷收到的數據包中目的地址是否和自身地址一致,如果不一致說明不是發給自己的指令;如果一致則進一步判斷是開啟電磁閥門指令還是停止電磁閥門指令,進而通過控制GPIO引腳輸出高低電平,最終通過繼電器控制電磁閥門啟停。
水泵控制終端節點與電磁閥門控制終端節點工作原理類似。特別強調,手動啟停平頭自復位按鈕時,包括按下、停留、釋放按鈕這3個細節,所以編程時也要體現這一過程。即開啟或者關閉水泵時,GPIO引腳輸出高電平,延遲約1 s,GPIO引腳再次輸出低電平。這也是與電磁閥門控制終端節點的最大不同。
水泵控制代碼如下所示:
if(ADDR_DATA != MY_ADDR)" return;
if (MY_ADDR==100)
{
HAL_GPIO_WritePin( GPIOA, GPIO_PIN_8 , GPIO_PIN_SET);
HAL_Delay(1000);
HAL_GPIO_WritePin( GPIOA, GPIO_PIN_8 , GPIO_PIN_RESET);
}
3.2 匯聚節點軟件設計
匯聚節點的功能主要有2部分。一方面匯聚節點以周期性輪詢的方式向各個土壤濕度采集終端節點發送無線采集指令,并把收到的土壤濕度采集終端節點上報的無線數據幀通過RS 485總線透傳給安卓工控平板。另一方面匯聚節點需要實時判斷是否接收到安卓工控平板通過RS 485總線下發的電磁閥門和水泵控制命令,并將控制命令以無線方式發送給電磁閥門和水泵控制終端節點。匯聚節點下發控制命令時傳遞3個參數,分別是網絡ID、終端節點地址、開關指令,開啟指令用0xAA表示,關閉指令用0xBB表示。
下發控制電磁閥門啟停的代碼如下所示:
if(USART1_RX_COUNT!=0)
{
if(USART1_RX_BUF[0]==49) {
if(USART1_RX_BUF[1]==49) {
LoRa_SendControl( MY_NET_ID, 1,0xAA );}}
if(USART1_RX_BUF[0]==49) {
if(USART1_RX_BUF[1]==48) {
LoRa_SendControl( MY_NET_ID, 1,0xBB );}}
}
3.3 物聯網云平臺開發
訪問新大陸云平臺http://www.nlecloud.com,注冊帳號并登錄,然后根據提示依次新建項目,新建設備,新建傳感器和執行器。本文項目名是“綠化噴淋系統智慧化改造”,設備名是“安卓工控平板”,傳感器名依次為“區域1土壤濕度傳感器”“區域2土壤濕度傳感器”“區域3土壤濕度傳感器”,執行器名依次為“水泵”“區域1電磁閥”“區域2電磁閥”“區域3電磁閥”。云平臺界面如圖5所示。
3.4 安卓工控平板網關軟件開發
安卓工控平板網關軟件采用Android Studio開發,網關軟件具備上報數據和下發指令2大功能。
3.4.1 上報數據
上報數據,解析匯聚節點通過RS 485總線透傳的數據幀,將土壤濕度數據上報給遠方的物聯網云平臺并實時顯示。
解析匯聚節點通過RS 485總線透傳的數據幀,需使用北京新大陸科技有限公司提供的第三方串口JAR包提供的串口。
安卓工控平板接收和解析數據幀中土壤濕度值的代碼如下所示:
serialPortEx=new SerialPortEx(\"COM1\",115200);
serialPortEx.setOnDataReceiveListener(new OnDataReceiveListener() {
@Override
public void onDataReceive(final byte[] bytes, int i) {
addr=bytes[4];
if(addr==1)" shidu_value1=bytes[7];
if(addr==2)" shidu_value2=bytes[7];
if(addr==3)" shidu_value3=bytes[7];
}
});
serialPortEx.Open();
閱讀新大陸科技有限公司公開的新大陸物聯網云平臺TCP設備接入協議,將數據上報給遠方的物聯網云平臺并實時顯示。使用該協議可以將安卓工控平板當成網關接入到新大陸云平臺,并將工控平板解析出來的土壤濕度值傳送到物聯網云平臺相應傳感器并實時顯示。該TCP設備接入協議數據均為JSON格式,主要包括3大功能:第一,發送指定格式的JSON數據到“121.37.241.174:8600”,建立與云平臺的連接,即請求連接功能;第二,發送指定格式的JSON數據到云平臺,將工控平板解析好的土壤濕度值傳送到云平臺上相應區域的土壤濕度傳感器并實時顯示,即上報數據功能;第三,實時判斷是否收到云平臺通過互聯網下發的控制水泵和電磁閥門命令,如收到命令則解析命令,即響應命令功能。
請求連接的代碼如下所示:
socket = new Socket(\"121.37.241.174\", 8600);
data=\"{'t':1,'device':'設備標識符','Key':'設備秘鑰','ver':'v1.1'}\";
outputStream=socket.getOutputStream();
outputStream.write(data.getBytes());
outputStream.flush();
上報數據的代碼如下所示:
mydata = \"{'t':3,'datatype':1,'datas':{'humi1':\"+shidu_value1+\",'humi2':\"+shidu_value2+\",'humi3':\"+shidu_value3+\"},'msgid':2}\";
outputStream.write(mydata.getBytes());
outputStream.flush();
3.4.2 下發指令
下發指令即接收物聯網云平臺通過互聯網下發的控制水泵和電磁閥門的命令,并通過RS 485總線下發給匯聚節點。這里用到3.4.1節所提的串口輸出功能和TCP設備接入協議的響應命令功能。特別強調,在啟動自動策略時,當策略滿足條件,云平臺會周期下發同一個控制命令,而事實是只需下發一次指令即可。為此引入變量last_spray1_cmd存放上一次指令,只有當這一次指令與上一次指令不同時才下發指令,解決重復下發同一指令造成的資源浪費問題。
下發指令代碼如下所示:
if(jsonObject.getString(\"apitag\").equals(\"spray1\")){
if(!jsonObject.get(\"data\").toString().equals(last_spray1_cmd)) {
last_spray1_cmd = jsonObject.get(\"data\").toString(); if (jsonObject.get(\"data\").toString().equals(\"1\")) {
serialPortEx.Send(\"11\".getBytes());}}}
安卓工控平板網關軟件運行界面如圖6所示。
4 結 語
本文從校園綠化噴淋系統智能化改造的實際需求出發,結合LoRa低功耗遠距離無線通信技術和云平臺技術,給出了詳細的軟硬件改造方案。在原有噴淋系統不做大變動的基礎上,通過智能化改造,綠化噴淋系統能夠在無人值守的情況下,自動判斷土壤濕度并啟停噴淋作業,實現了按需噴淋、精準噴淋,大大減少了人力資源的浪費和水資源的浪費。系統自安裝部署一年以來,運行穩定,啟停精準,除了每3個
月給蓄電池充電以外,沒有其他維護工作,達到了預期的改造效果。本文提出的改造方案是一種有價值的范式,可以移植到其他智能數據監測和控制的物聯網應用場合,為這些應用提供借鑒和參考,有一定的實踐推廣價值。
參考文獻
[1]劉媛.道路綠化帶自動測控噴灌技術[J].四川建筑,2021,41(4):228-229.
[2]吳秋明,繳錫云,潘渝,等.基于物聯網的干旱區智能化微灌系統[J].農業工程學報,2012,28(1):118-122.
[3]張松,孟均,盧曉國,等. 園林綠化墑情監測與智能養護的研究與實踐[J].市政技術,2023,41(5):66-71.
[4]顧超杰,譚睿.賦能新一代物聯網的LoRaWAN技術[J].物聯網學報,2021,5(2):18-25.
[5]熊永昌,李樹平,徐龍躍,等.基于LoRaWAN的農田氣象監測系統設計[J].牡丹江師范學院學報(自然科學版),2022(1):57-60.
[6]黃一棟. LoRaWAN物聯網監測系統的快速實現[J].中國新技術新產品,2021(15):41-43.
[7]胡開明,劉薇,付志堅.基于物聯網智能溫室大棚控制系統的設計[J].自動化技術與應用,2021,40(10):64-67.
[8]何文靜,肖紫蕓,肖玲玲.基于IoT平臺的智能溫室大棚測控系統實現[J].科技創新與應用,2020(34):39-41.
[9]吳小峰.中小型智能溫室大棚中數據監測系統的設計與實踐[J].湖南郵電職業技術學院學報,2022,21(2):15-18.
[10]楊明,楊建國.基于物聯網技術的遠程控制自動澆灌噴淋系統設計[J].物聯網技術,2023,13(12):54-56.
基金項目:2020年南通市科技局計劃項目:基于LoRa和云平臺物聯網新技術的智能溫室大棚系統研究與設計(JCZ20179);江蘇航運職業技術學院橫向課題:冷鏈設備智能改造與運維服務(HYHX/2023075)
作者簡介:吳小峰(1982—),男,江蘇南通人,碩士,江蘇航運職業技術學院智能制造與信息學院講師,研究方向為物聯網應用技術、計算機網絡應用技術。