黃 勇,嚴 華
(四川大學 電子信息學院,成都 610041)
基于物聯網的一體化泵站設計與實現
黃 勇,嚴 華
(四川大學 電子信息學院,成都 610041)
針對傳統泵站的計費模式單一、操作復雜、管理困難等問題,采用物聯網思想設計并實現了一種一體化泵站系統;感知層采用STM32F407單片機,基于mbed-rtos操作系統對不同類型的傳感器進行數據采集并對軟啟動器、攝像頭進行控制,網絡層利用MQTT通信協議將數據發送到云計算中心服務器,應用層通過手機客戶端或網頁登陸泵站管理系統實現泵站用水數據的實時查看、泵站監控等功能;系統運行穩定可靠,能夠較傳統泵站更好地完成計費抽水等任務,為泵站的自動化提供了一種可靠的一體化解決方案。
物聯網;農業灌溉;MQTT;泵站
我國計劃在“十三五”期間形成覆蓋全國的農田水利數據庫體系,為農田水利管理信息化提供全面支撐。同時基本建成國家灌區監測系統,實現對灌區灌溉排水的宏觀管理。采用計算機自動化方案實現泵站的自動化控制和遠程監測,但其功能有待完善且資金投入大[1-3]。文獻[4-5]提出將單片機引入泵站控制系統,但其沒有計費取水功能。上述方案,一定程度上解決了泵站自動化中遇見的問題,但泵站功能不夠完善,仍存在操作復雜,沒有引入計費模式等問題。本設計采用物聯網設計思想解決了原有泵站的操作復雜、計費模式單一等問題。
物聯網有三個層次,分別是用來感知數據的感知層,處理數據傳輸的網絡層,以及對數據進行計算和管理的應用層。本設計系統整體結構如圖1所示。

圖1 系統結構框圖
一體化泵站系統結構以感知層為基礎,感知層以單片機為核心對水位,水壓,流量,用電量,圖像數據等信號進行檢測,利用不同類型的傳感器對信號進行轉換、處理,并利用RS-485等通信方式傳輸到單片機。單片機使用GPRS無線網絡或互聯網將數據上傳到云計算中心服務器。終端設備在應用層可實時查看各類數據,獲悉泵站運行狀態信息,也可實時啟停泵站,召測泵站的運行圖像。
感知層設計是一體化泵站系統最重要的一部分,系統采用了兩種類型的傳感器,所以有兩種不同的傳感器數據采集方式。水位和水壓傳感器采用的是4~20 mA電流信號,因此水位和水壓信號經過調理電路后通過單片機內置AD進行數據的收集。電表、攝像頭、軟啟動器、流量計采用RS-485接口與單片機進行通信。單片機利用modbus總線協議讀取軟啟動器參數、流量等數據,利用特定協議讀取電表數據和圖像數據,并將采集到的數據保存到SD卡中。感知層泵站控制器硬件結構設計如圖2所示。

圖2 系統硬件結構設計
2.1 泵站取水功能實現
啟動泵站進行取水的方式有三種:刷卡開泵,網頁端遠程控制開泵,手機APP端遠程控制開泵。刷卡取水時采用的是MFRC522讀卡芯片來獲取卡片信息,選用的取水卡是S50非接觸式IC卡。S50卡成本低廉,便于大規模應用,但其采用的存儲技術較容易被破解,所以不能在取水卡內直接寫入明文信息。傳統的加密算法的軟件實現需要消耗過多資源,因此不適合運算能力和存儲空間均有限嵌入式環境。本設計采用的方法是開卡時首先采用present輕量級加密算法對取水卡信息進行加密,然后為了方便將數據從服務器端傳送到客戶端再對數據進行Base64編碼。開卡流程如圖3所示。

圖3 取水卡開卡過程
Present加密算法屬于分組密碼算法,實際應用中需要對待加密數據進行處理,計算關系如式(1)所示,L為實際的數據長度,當L不是8的整數倍時,需要在待加密數據后補X位0,N為待加密數據的組數。
(1)
讀卡芯片通過SPI接口將卡內數據傳輸到單片機,單片機對得到的數據解Base64編碼,再用密鑰對數據進行解密,最后從鐵電存儲器FRAM中查詢刷卡用戶是否合法,對合法用戶執行相應的開泵取水操作。
2.2 電參數檢測
電參數檢測采取了選取了DTS541電表和ADE7878電參數芯片并用的方案,電表用于精確計費,同時用于校準ADE7878電參數芯片。電表可以提供電壓、電流、有功、無功功率參數,但是這些參數不足以為電機提供保護,因此系統增加了ADE7878電參數芯片。ADE7878可以為系統提供總有功和無功功率、視在電能、功率因數和電網頻率等參數。
ADE7878通過電壓互感器以及電流互感器接入三相交流電,通過SPI接口將電參數發送給單片機。單片機通過計算電參數數據,來檢測過壓故障、缺相故障、逆向序故障等,實現對電機的保護。
2.3 圖像數據檢測
當有人進入供水室時,將導致紅外傳感器的輸出由高電平變為低電平,這將觸發單片機的外部中斷,此時單片機調用攝像頭進行拍照,圖像數據存儲將存儲在SD卡中,同時將圖片的存儲路徑信息通過MQTT協議上傳到云數據中心,當應用層需要調取圖片信息時,可通過手機APP或者Web端發送召測指令以獲取圖片信息,這就實現了對泵站的安全監視。圖像數據檢測采用SXH485串口攝像頭,供電方式采用5~24 V直流電壓供電,工作溫度-40~85℃,最大分辨率1280×960,最大夜視距離15米,默認波特率為115200。單片機向攝像頭下發報文格式如表1所示。其中報文頭為兩個字節0x90EB,0xEB是第一個字節,0x90第二個字節。攝像頭的設備地址可設定,地址范圍從0至255,其中0為保留地址,地址255用于廣播報文,本系統中攝像頭設備地址為1。報文類型為0x06時,表示該包用于傳輸圖像數據。

表1 下行報文格式
攝像頭向單片機上傳報文格式如表2所示,其中狀態字節為0x00是表示攝像頭狀態正常,0x01表示攝像頭發生內部錯誤。

表2 上行報文格式
2.4 流量數據檢測
單片機通過modbus協議采集流量數據,使用TUF-2000M超聲波流量計測量管內流量。該流量計測量線性度0.5%,重復性精度0.2%,時差測量分辨率40皮秒,測量精度±1%。在液體中的超聲波傳輸時間將因液體流動而產生微小的變化,此處的傳播時間變化正比于液體的流速。液體流速計算公式見式(2),θ為超聲波與液體流動方向的夾角,M為超聲波在液體中的直線傳播次數,D為管道內徑,Tup為超聲波在順流方向上的傳播時間,Tdown為超聲波在逆流方向上的傳播時間。
(2)
本設計有三種計費方式:電計量收費、水計量收費、時間量計費。當泵站處于取水狀態時將流量數據以及電參數上傳至數據中心,數據中心根據用戶需求選擇特定的計費方式進行計費,以此實現計費取水功能。
2.5 傳感器接口電路設計
一體化泵站的控制核心是單片機,其通過AD轉換器獲取水位和水壓數據,通過RS-485接口完成對軟啟動器參數、電參數、圖像數據和流量的數據采集。本設計采用中的單片機是STM32F407單片機,圖4所示的RS-485電路與單片機直接相連,單片機對采集到的信號經過數字濾波,通過特定的協議與傳感器之間進行通信。

圖4 RS-485通信電路設計
RS-485電路使用SP3072作為總線收發器,使用50mA自恢復保險絲和瞬變電壓抑制器來抑制靜電和電涌瞬變帶來的干擾。系統中有兩路RS-485通信電路,一路用于采集電表數據和軟啟動器參數;另一路用于采集流量計與攝像頭數據。
2.6 數據通信
泵站控制器系統基于mbed-rtos實時操作系統操作系統,mbed-rtos實現了線程控制、線程同步、線程間通訊、線程調度等功能。軟件運行流程如圖5所示,系統運行時分為3個線程。線程1用于處理數據以及處理事件。當檢測到MQTT接收緩存中有新的數據時,線程1負責解析其中的命令,然后執行相應的操作,同時線程1還負責處理按鍵操作等外部事件。線程2為MQTT工作線程,負責完成泵站與數據中心的通信。線程3是數據采集線程,它的作用是定時采集各傳感器數據,負責將數據存儲到SD卡,同時還負責進行傳感器故障檢測。之所以單獨使用一個線程采集傳感器數據的原因是,傳感器數據讀取過程中需要加入較多的延時,以等待設備進入正常工作狀態,這會阻塞其他實時操作,因此使用單獨的一個線程采集傳感器數據。

圖5 感知層泵站控制器軟件流程圖
系統的MQTT 的Qos配置為Qos1,即至少發送成功一次。這種配置方式有可能出現重復的數據包,本設計的解決辦法是在數據包協議中加入包號信息。包號根據當前的系統時間生成,確保了數據包的唯一性。數據中心接收到數據后通過判斷其中的包號,來排除重復的數據包。單片機定時采集傳感器狀態,生成狀態報文,并通過MQTT協議傳送到數據中心,實現了對泵站運行狀態的監控。
一體化泵站通過GPRS無線網絡或互聯網基于MQTT協議與云數據中心進行通信。應用層軟件在Visual Studio開發環境下使用C#語言開發完成,主要實現了泵站運行數據的實時查看、遠程管理、歷史數據查詢、報警條件設置等功能。
由圖2所示,黃油的過氧化值在溫度為150℃時達到最大,為0.92 meq/kg,豬油的過氧化值隨著溫度的增加而逐漸升高,并在240℃達到最大,為44.11 meq/kg,說明在此期間有大量氫過氧化物生成,且氫過氧化物的生成量大于分解和聚合量。當溫度范圍為180~240℃,黃油的過氧化值呈下降趨勢,說明生成的氫過氧化物大多分解,且分解和聚合量大于生成量;與豬油相比,溫度和加熱次數對黃油的過氧化值影響均不顯著(P<0.05),這表明黃油在不同加工條件下的其氧化情況較為穩定。

圖6 泵站網頁端管理界面
用戶可以通過在電腦網頁或者在手機App登陸,進入泵站管理系統,實時查看泵站運行狀態,網頁端管理界面如圖6所示。用戶可在管理系統中設定報警閾值,如電機過載報警閾值等。應用層軟件對泵站的數據進行實時處理,計算是否達到報警條件。
由于應用層軟件需要對大量的泵站進行集中管理,而泵站向數據中心上傳的JSON數據需要經過解析后才能存入MySQL關系型數據庫,當數據量較大時可能造成數據庫崩潰。因此引入數據庫MongoDB,其特點是性能高、易于部署,數據存儲流程簡單,可以直接存儲泵站上傳至數據中心的JSON數據。以MongoDB作為數據緩存層,應用層軟件單獨開辟一條線程輪詢MongoDB中的數據,數據經過處理后存入MySQL數據庫。通過調取MySQL數據庫信息實現歷史數據查詢功能。
在實際測試環境中,泵站收到取水指令后均能穩定的發出計費報文。報文格式如下:
JsonSendPacket::FinishPacket:{
"SBBH":"GBC000M23",
"BZID":"20160824141443909",
"JF":["1","0","0","W121050219941202
094301","0","0","0","1800"],
"DC":"44811"}
數據中心收到報文后按照特定的計費公式開始計費。并向泵站發送反饋報文,反饋報文格式如下:
JsonRecvPacket::UnPacketJson:{
"SBBH":"GBC000M23",
"SBMM":"WQWJTTGL",
"JFR":["0","0","0","W121050219941202
094301","0","0","0","1800"],
"DC":"44811"}
上述兩條報文中,SBBH代表設備編號,BZID代表泵站編號,SBSJ代表設備時間,JF表明該報文是計費報文,其中指出取水用戶編號為W121050219941202094301,預設的取水時間為1800秒。SBMM代表設備密碼,每臺設備都有唯一的設備密碼,用于驗證指令是否合法。DC代表包號,用于排除重復的數據包。
經過長期的實際測試使用,以STM32單片機為核心的一體化泵站系統可以穩定可靠地實現灌溉取水功能,泵站實時運行數據可以準確的傳回數據中心,同時還實現了泵站計費取水、實時查看運行數據、遠程管理、歷史數據查詢、報警條件設置等功能。
本文提出了基于物聯網的一體化泵站設計方案,在感知層采集泵站運行數據,在網絡層融合無線網絡和互聯網,將泵站數據實時準確的發送到數據中心,最后在應用層實現對泵站數據的處理以及對泵站的遠程管理。將物聯網技術運用系統設計當中,使系統設備具有可靠、操作簡單、計費準確、管理方便、適用范圍廣等特點,為泵站的自動化提供了一種可行的、可靠的解決方案。
[1] 邢曉明. 泵站計算機自動化及遠程監控系統的設計研究[D].濟南:山東大學,2012.
[2] 張曉燕. 引黃濟青泵站遠程監控系統的設計與實現[D].濟南:山東大學,2009.
[3] 錢 鋒. 抽水泵站自動控制系統的應用研究與設計[D].合肥:合肥工業大學,2006.
[4] 吳 杉. 基于PIC單片機的遠程水泵控制器的設計與實現[D].重慶:重慶大學,2012.
[5] 孟振飛. 基于STM32處理器的水泵控制系統設計與實現[D].西安:西安電子科技大學2012.
[6] 陳 鈞. 基于S7-200的潛水泵站自動控制技術[J]. 微計算機信息,2006,22(9-1):140-142.
[7] 周大慶, 吳玉林, 張仁田. 大型立式軸流泵站起動過渡過程研究[J].水力發電學報,2007,26(1):120-122.
Integration of Pumping Station Design and Implementation Based on Internet of Things
Huang Yong,Yan Hua
(School of Electronics and Information Engineering, Sichuan University, Chengdu 610041, China)
The traditional pumping station has many problems, such as single billing model, complicated to operate, difficult to manage and so on. To solve these problems, an integrated pumping station system was designed and implemented. STM32F407 microcontroller is used in the system which is based on mbed - rtos operating system to collect different types of sensors’ data, and control the soft starter and camera at perceptual layer. MQTT communication protocol is used to send the data to the cloud computing center at network layer. Through mobile phone client or web log in pumping station management system, which realizes the function of viewing pumping station’s water data in real-time and monitoring the pumping stations at application layer. Compared with traditional pumping station, the system is stable and reliable, and can better accomplish the billing pumping task. So the system is a reliable integrated solutions for the automation of pumping station.
internet of things; agricultural irrigation; MQTT; pumping station
2016-04-07;
2016-06-21。
黃 勇(1991-),男,四川眉山人,碩士研究生,主要從事嵌入式方向的研究。
嚴 華(1971-),男,四川渠縣人,博士,教授,碩士研究生導師,主要從事嵌入式系統、水利信息化方向的研究。
1671-4598(2017)02-0186-03
10.16526/j.cnki.11-4762/tp.2017.02.051
TP18
A