黃 勇,嚴(yán) 華
(四川大學(xué) 電子信息學(xué)院,成都 610041)
基于物聯(lián)網(wǎng)的一體化泵站設(shè)計(jì)與實(shí)現(xiàn)
黃 勇,嚴(yán) 華
(四川大學(xué) 電子信息學(xué)院,成都 610041)
針對(duì)傳統(tǒng)泵站的計(jì)費(fèi)模式單一、操作復(fù)雜、管理困難等問(wèn)題,采用物聯(lián)網(wǎng)思想設(shè)計(jì)并實(shí)現(xiàn)了一種一體化泵站系統(tǒng);感知層采用STM32F407單片機(jī),基于mbed-rtos操作系統(tǒng)對(duì)不同類型的傳感器進(jìn)行數(shù)據(jù)采集并對(duì)軟啟動(dòng)器、攝像頭進(jìn)行控制,網(wǎng)絡(luò)層利用MQTT通信協(xié)議將數(shù)據(jù)發(fā)送到云計(jì)算中心服務(wù)器,應(yīng)用層通過(guò)手機(jī)客戶端或網(wǎng)頁(yè)登陸泵站管理系統(tǒng)實(shí)現(xiàn)泵站用水?dāng)?shù)據(jù)的實(shí)時(shí)查看、泵站監(jiān)控等功能;系統(tǒng)運(yùn)行穩(wěn)定可靠,能夠較傳統(tǒng)泵站更好地完成計(jì)費(fèi)抽水等任務(wù),為泵站的自動(dòng)化提供了一種可靠的一體化解決方案。
物聯(lián)網(wǎng);農(nóng)業(yè)灌溉;MQTT;泵站
我國(guó)計(jì)劃在“十三五”期間形成覆蓋全國(guó)的農(nóng)田水利數(shù)據(jù)庫(kù)體系,為農(nóng)田水利管理信息化提供全面支撐。同時(shí)基本建成國(guó)家灌區(qū)監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)對(duì)灌區(qū)灌溉排水的宏觀管理。采用計(jì)算機(jī)自動(dòng)化方案實(shí)現(xiàn)泵站的自動(dòng)化控制和遠(yuǎn)程監(jiān)測(cè),但其功能有待完善且資金投入大[1-3]。文獻(xiàn)[4-5]提出將單片機(jī)引入泵站控制系統(tǒng),但其沒(méi)有計(jì)費(fèi)取水功能。上述方案,一定程度上解決了泵站自動(dòng)化中遇見的問(wèn)題,但泵站功能不夠完善,仍存在操作復(fù)雜,沒(méi)有引入計(jì)費(fèi)模式等問(wèn)題。本設(shè)計(jì)采用物聯(lián)網(wǎng)設(shè)計(jì)思想解決了原有泵站的操作復(fù)雜、計(jì)費(fèi)模式單一等問(wèn)題。
物聯(lián)網(wǎng)有三個(gè)層次,分別是用來(lái)感知數(shù)據(jù)的感知層,處理數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)層,以及對(duì)數(shù)據(jù)進(jìn)行計(jì)算和管理的應(yīng)用層。本設(shè)計(jì)系統(tǒng)整體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
一體化泵站系統(tǒng)結(jié)構(gòu)以感知層為基礎(chǔ),感知層以單片機(jī)為核心對(duì)水位,水壓,流量,用電量,圖像數(shù)據(jù)等信號(hào)進(jìn)行檢測(cè),利用不同類型的傳感器對(duì)信號(hào)進(jìn)行轉(zhuǎn)換、處理,并利用RS-485等通信方式傳輸?shù)絾纹瑱C(jī)。單片機(jī)使用GPRS無(wú)線網(wǎng)絡(luò)或互聯(lián)網(wǎng)將數(shù)據(jù)上傳到云計(jì)算中心服務(wù)器。終端設(shè)備在應(yīng)用層可實(shí)時(shí)查看各類數(shù)據(jù),獲悉泵站運(yùn)行狀態(tài)信息,也可實(shí)時(shí)啟停泵站,召測(cè)泵站的運(yùn)行圖像。
感知層設(shè)計(jì)是一體化泵站系統(tǒng)最重要的一部分,系統(tǒng)采用了兩種類型的傳感器,所以有兩種不同的傳感器數(shù)據(jù)采集方式。水位和水壓傳感器采用的是4~20 mA電流信號(hào),因此水位和水壓信號(hào)經(jīng)過(guò)調(diào)理電路后通過(guò)單片機(jī)內(nèi)置AD進(jìn)行數(shù)據(jù)的收集。電表、攝像頭、軟啟動(dòng)器、流量計(jì)采用RS-485接口與單片機(jī)進(jìn)行通信。單片機(jī)利用modbus總線協(xié)議讀取軟啟動(dòng)器參數(shù)、流量等數(shù)據(jù),利用特定協(xié)議讀取電表數(shù)據(jù)和圖像數(shù)據(jù),并將采集到的數(shù)據(jù)保存到SD卡中。感知層泵站控制器硬件結(jié)構(gòu)設(shè)計(jì)如圖2所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)
2.1 泵站取水功能實(shí)現(xiàn)
啟動(dòng)泵站進(jìn)行取水的方式有三種:刷卡開泵,網(wǎng)頁(yè)端遠(yuǎn)程控制開泵,手機(jī)APP端遠(yuǎn)程控制開泵。刷卡取水時(shí)采用的是MFRC522讀卡芯片來(lái)獲取卡片信息,選用的取水卡是S50非接觸式IC卡。S50卡成本低廉,便于大規(guī)模應(yīng)用,但其采用的存儲(chǔ)技術(shù)較容易被破解,所以不能在取水卡內(nèi)直接寫入明文信息。傳統(tǒng)的加密算法的軟件實(shí)現(xiàn)需要消耗過(guò)多資源,因此不適合運(yùn)算能力和存儲(chǔ)空間均有限嵌入式環(huán)境。本設(shè)計(jì)采用的方法是開卡時(shí)首先采用present輕量級(jí)加密算法對(duì)取水卡信息進(jìn)行加密,然后為了方便將數(shù)據(jù)從服務(wù)器端傳送到客戶端再對(duì)數(shù)據(jù)進(jìn)行Base64編碼。開卡流程如圖3所示。
圖3 取水卡開卡過(guò)程
Present加密算法屬于分組密碼算法,實(shí)際應(yīng)用中需要對(duì)待加密數(shù)據(jù)進(jìn)行處理,計(jì)算關(guān)系如式(1)所示,L為實(shí)際的數(shù)據(jù)長(zhǎng)度,當(dāng)L不是8的整數(shù)倍時(shí),需要在待加密數(shù)據(jù)后補(bǔ)X位0,N為待加密數(shù)據(jù)的組數(shù)。
(1)
讀卡芯片通過(guò)SPI接口將卡內(nèi)數(shù)據(jù)傳輸?shù)絾纹瑱C(jī),單片機(jī)對(duì)得到的數(shù)據(jù)解Base64編碼,再用密鑰對(duì)數(shù)據(jù)進(jìn)行解密,最后從鐵電存儲(chǔ)器FRAM中查詢刷卡用戶是否合法,對(duì)合法用戶執(zhí)行相應(yīng)的開泵取水操作。
2.2 電參數(shù)檢測(cè)
電參數(shù)檢測(cè)采取了選取了DTS541電表和ADE7878電參數(shù)芯片并用的方案,電表用于精確計(jì)費(fèi),同時(shí)用于校準(zhǔn)ADE7878電參數(shù)芯片。電表可以提供電壓、電流、有功、無(wú)功功率參數(shù),但是這些參數(shù)不足以為電機(jī)提供保護(hù),因此系統(tǒng)增加了ADE7878電參數(shù)芯片。ADE7878可以為系統(tǒng)提供總有功和無(wú)功功率、視在電能、功率因數(shù)和電網(wǎng)頻率等參數(shù)。
ADE7878通過(guò)電壓互感器以及電流互感器接入三相交流電,通過(guò)SPI接口將電參數(shù)發(fā)送給單片機(jī)。單片機(jī)通過(guò)計(jì)算電參數(shù)數(shù)據(jù),來(lái)檢測(cè)過(guò)壓故障、缺相故障、逆向序故障等,實(shí)現(xiàn)對(duì)電機(jī)的保護(hù)。
2.3 圖像數(shù)據(jù)檢測(cè)
當(dāng)有人進(jìn)入供水室時(shí),將導(dǎo)致紅外傳感器的輸出由高電平變?yōu)榈碗娖?,這將觸發(fā)單片機(jī)的外部中斷,此時(shí)單片機(jī)調(diào)用攝像頭進(jìn)行拍照,圖像數(shù)據(jù)存儲(chǔ)將存儲(chǔ)在SD卡中,同時(shí)將圖片的存儲(chǔ)路徑信息通過(guò)MQTT協(xié)議上傳到云數(shù)據(jù)中心,當(dāng)應(yīng)用層需要調(diào)取圖片信息時(shí),可通過(guò)手機(jī)APP或者Web端發(fā)送召測(cè)指令以獲取圖片信息,這就實(shí)現(xiàn)了對(duì)泵站的安全監(jiān)視。圖像數(shù)據(jù)檢測(cè)采用SXH485串口攝像頭,供電方式采用5~24 V直流電壓供電,工作溫度-40~85℃,最大分辨率1280×960,最大夜視距離15米,默認(rèn)波特率為115200。單片機(jī)向攝像頭下發(fā)報(bào)文格式如表1所示。其中報(bào)文頭為兩個(gè)字節(jié)0x90EB,0xEB是第一個(gè)字節(jié),0x90第二個(gè)字節(jié)。攝像頭的設(shè)備地址可設(shè)定,地址范圍從0至255,其中0為保留地址,地址255用于廣播報(bào)文,本系統(tǒng)中攝像頭設(shè)備地址為1。報(bào)文類型為0x06時(shí),表示該包用于傳輸圖像數(shù)據(jù)。
表1 下行報(bào)文格式
攝像頭向單片機(jī)上傳報(bào)文格式如表2所示,其中狀態(tài)字節(jié)為0x00是表示攝像頭狀態(tài)正常,0x01表示攝像頭發(fā)生內(nèi)部錯(cuò)誤。
表2 上行報(bào)文格式
2.4 流量數(shù)據(jù)檢測(cè)
單片機(jī)通過(guò)modbus協(xié)議采集流量數(shù)據(jù),使用TUF-2000M超聲波流量計(jì)測(cè)量管內(nèi)流量。該流量計(jì)測(cè)量線性度0.5%,重復(fù)性精度0.2%,時(shí)差測(cè)量分辨率40皮秒,測(cè)量精度±1%。在液體中的超聲波傳輸時(shí)間將因液體流動(dòng)而產(chǎn)生微小的變化,此處的傳播時(shí)間變化正比于液體的流速。液體流速計(jì)算公式見式(2),θ為超聲波與液體流動(dòng)方向的夾角,M為超聲波在液體中的直線傳播次數(shù),D為管道內(nèi)徑,Tup為超聲波在順流方向上的傳播時(shí)間,Tdown為超聲波在逆流方向上的傳播時(shí)間。
(2)
本設(shè)計(jì)有三種計(jì)費(fèi)方式:電計(jì)量收費(fèi)、水計(jì)量收費(fèi)、時(shí)間量計(jì)費(fèi)。當(dāng)泵站處于取水狀態(tài)時(shí)將流量數(shù)據(jù)以及電參數(shù)上傳至數(shù)據(jù)中心,數(shù)據(jù)中心根據(jù)用戶需求選擇特定的計(jì)費(fèi)方式進(jìn)行計(jì)費(fèi),以此實(shí)現(xiàn)計(jì)費(fèi)取水功能。
2.5 傳感器接口電路設(shè)計(jì)
一體化泵站的控制核心是單片機(jī),其通過(guò)AD轉(zhuǎn)換器獲取水位和水壓數(shù)據(jù),通過(guò)RS-485接口完成對(duì)軟啟動(dòng)器參數(shù)、電參數(shù)、圖像數(shù)據(jù)和流量的數(shù)據(jù)采集。本設(shè)計(jì)采用中的單片機(jī)是STM32F407單片機(jī),圖4所示的RS-485電路與單片機(jī)直接相連,單片機(jī)對(duì)采集到的信號(hào)經(jīng)過(guò)數(shù)字濾波,通過(guò)特定的協(xié)議與傳感器之間進(jìn)行通信。
圖4 RS-485通信電路設(shè)計(jì)
RS-485電路使用SP3072作為總線收發(fā)器,使用50mA自恢復(fù)保險(xiǎn)絲和瞬變電壓抑制器來(lái)抑制靜電和電涌瞬變帶來(lái)的干擾。系統(tǒng)中有兩路RS-485通信電路,一路用于采集電表數(shù)據(jù)和軟啟動(dòng)器參數(shù);另一路用于采集流量計(jì)與攝像頭數(shù)據(jù)。
2.6 數(shù)據(jù)通信
泵站控制器系統(tǒng)基于mbed-rtos實(shí)時(shí)操作系統(tǒng)操作系統(tǒng),mbed-rtos實(shí)現(xiàn)了線程控制、線程同步、線程間通訊、線程調(diào)度等功能。軟件運(yùn)行流程如圖5所示,系統(tǒng)運(yùn)行時(shí)分為3個(gè)線程。線程1用于處理數(shù)據(jù)以及處理事件。當(dāng)檢測(cè)到MQTT接收緩存中有新的數(shù)據(jù)時(shí),線程1負(fù)責(zé)解析其中的命令,然后執(zhí)行相應(yīng)的操作,同時(shí)線程1還負(fù)責(zé)處理按鍵操作等外部事件。線程2為MQTT工作線程,負(fù)責(zé)完成泵站與數(shù)據(jù)中心的通信。線程3是數(shù)據(jù)采集線程,它的作用是定時(shí)采集各傳感器數(shù)據(jù),負(fù)責(zé)將數(shù)據(jù)存儲(chǔ)到SD卡,同時(shí)還負(fù)責(zé)進(jìn)行傳感器故障檢測(cè)。之所以單獨(dú)使用一個(gè)線程采集傳感器數(shù)據(jù)的原因是,傳感器數(shù)據(jù)讀取過(guò)程中需要加入較多的延時(shí),以等待設(shè)備進(jìn)入正常工作狀態(tài),這會(huì)阻塞其他實(shí)時(shí)操作,因此使用單獨(dú)的一個(gè)線程采集傳感器數(shù)據(jù)。
圖5 感知層泵站控制器軟件流程圖
系統(tǒng)的MQTT 的Qos配置為Qos1,即至少發(fā)送成功一次。這種配置方式有可能出現(xiàn)重復(fù)的數(shù)據(jù)包,本設(shè)計(jì)的解決辦法是在數(shù)據(jù)包協(xié)議中加入包號(hào)信息。包號(hào)根據(jù)當(dāng)前的系統(tǒng)時(shí)間生成,確保了數(shù)據(jù)包的唯一性。數(shù)據(jù)中心接收到數(shù)據(jù)后通過(guò)判斷其中的包號(hào),來(lái)排除重復(fù)的數(shù)據(jù)包。單片機(jī)定時(shí)采集傳感器狀態(tài),生成狀態(tài)報(bào)文,并通過(guò)MQTT協(xié)議傳送到數(shù)據(jù)中心,實(shí)現(xiàn)了對(duì)泵站運(yùn)行狀態(tài)的監(jiān)控。
一體化泵站通過(guò)GPRS無(wú)線網(wǎng)絡(luò)或互聯(lián)網(wǎng)基于MQTT協(xié)議與云數(shù)據(jù)中心進(jìn)行通信。應(yīng)用層軟件在Visual Studio開發(fā)環(huán)境下使用C#語(yǔ)言開發(fā)完成,主要實(shí)現(xiàn)了泵站運(yùn)行數(shù)據(jù)的實(shí)時(shí)查看、遠(yuǎn)程管理、歷史數(shù)據(jù)查詢、報(bào)警條件設(shè)置等功能。
由圖2所示,黃油的過(guò)氧化值在溫度為150℃時(shí)達(dá)到最大,為0.92 meq/kg,豬油的過(guò)氧化值隨著溫度的增加而逐漸升高,并在240℃達(dá)到最大,為44.11 meq/kg,說(shuō)明在此期間有大量氫過(guò)氧化物生成,且氫過(guò)氧化物的生成量大于分解和聚合量。當(dāng)溫度范圍為180~240℃,黃油的過(guò)氧化值呈下降趨勢(shì),說(shuō)明生成的氫過(guò)氧化物大多分解,且分解和聚合量大于生成量;與豬油相比,溫度和加熱次數(shù)對(duì)黃油的過(guò)氧化值影響均不顯著(P<0.05),這表明黃油在不同加工條件下的其氧化情況較為穩(wěn)定。
圖6 泵站網(wǎng)頁(yè)端管理界面
用戶可以通過(guò)在電腦網(wǎng)頁(yè)或者在手機(jī)App登陸,進(jìn)入泵站管理系統(tǒng),實(shí)時(shí)查看泵站運(yùn)行狀態(tài),網(wǎng)頁(yè)端管理界面如圖6所示。用戶可在管理系統(tǒng)中設(shè)定報(bào)警閾值,如電機(jī)過(guò)載報(bào)警閾值等。應(yīng)用層軟件對(duì)泵站的數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,計(jì)算是否達(dá)到報(bào)警條件。
由于應(yīng)用層軟件需要對(duì)大量的泵站進(jìn)行集中管理,而泵站向數(shù)據(jù)中心上傳的JSON數(shù)據(jù)需要經(jīng)過(guò)解析后才能存入MySQL關(guān)系型數(shù)據(jù)庫(kù),當(dāng)數(shù)據(jù)量較大時(shí)可能造成數(shù)據(jù)庫(kù)崩潰。因此引入數(shù)據(jù)庫(kù)MongoDB,其特點(diǎn)是性能高、易于部署,數(shù)據(jù)存儲(chǔ)流程簡(jiǎn)單,可以直接存儲(chǔ)泵站上傳至數(shù)據(jù)中心的JSON數(shù)據(jù)。以MongoDB作為數(shù)據(jù)緩存層,應(yīng)用層軟件單獨(dú)開辟一條線程輪詢MongoDB中的數(shù)據(jù),數(shù)據(jù)經(jīng)過(guò)處理后存入MySQL數(shù)據(jù)庫(kù)。通過(guò)調(diào)取MySQL數(shù)據(jù)庫(kù)信息實(shí)現(xiàn)歷史數(shù)據(jù)查詢功能。
在實(shí)際測(cè)試環(huán)境中,泵站收到取水指令后均能穩(wěn)定的發(fā)出計(jì)費(fèi)報(bào)文。報(bào)文格式如下:
JsonSendPacket::FinishPacket:{
"SBBH":"GBC000M23",
"BZID":"20160824141443909",
"JF":["1","0","0","W121050219941202
094301","0","0","0","1800"],
"DC":"44811"}
數(shù)據(jù)中心收到報(bào)文后按照特定的計(jì)費(fèi)公式開始計(jì)費(fèi)。并向泵站發(fā)送反饋報(bào)文,反饋報(bào)文格式如下:
JsonRecvPacket::UnPacketJson:{
"SBBH":"GBC000M23",
"SBMM":"WQWJTTGL",
"JFR":["0","0","0","W121050219941202
094301","0","0","0","1800"],
"DC":"44811"}
上述兩條報(bào)文中,SBBH代表設(shè)備編號(hào),BZID代表泵站編號(hào),SBSJ代表設(shè)備時(shí)間,JF表明該報(bào)文是計(jì)費(fèi)報(bào)文,其中指出取水用戶編號(hào)為W121050219941202094301,預(yù)設(shè)的取水時(shí)間為1800秒。SBMM代表設(shè)備密碼,每臺(tái)設(shè)備都有唯一的設(shè)備密碼,用于驗(yàn)證指令是否合法。DC代表包號(hào),用于排除重復(fù)的數(shù)據(jù)包。
經(jīng)過(guò)長(zhǎng)期的實(shí)際測(cè)試使用,以STM32單片機(jī)為核心的一體化泵站系統(tǒng)可以穩(wěn)定可靠地實(shí)現(xiàn)灌溉取水功能,泵站實(shí)時(shí)運(yùn)行數(shù)據(jù)可以準(zhǔn)確的傳回?cái)?shù)據(jù)中心,同時(shí)還實(shí)現(xiàn)了泵站計(jì)費(fèi)取水、實(shí)時(shí)查看運(yùn)行數(shù)據(jù)、遠(yuǎn)程管理、歷史數(shù)據(jù)查詢、報(bào)警條件設(shè)置等功能。
本文提出了基于物聯(lián)網(wǎng)的一體化泵站設(shè)計(jì)方案,在感知層采集泵站運(yùn)行數(shù)據(jù),在網(wǎng)絡(luò)層融合無(wú)線網(wǎng)絡(luò)和互聯(lián)網(wǎng),將泵站數(shù)據(jù)實(shí)時(shí)準(zhǔn)確的發(fā)送到數(shù)據(jù)中心,最后在應(yīng)用層實(shí)現(xiàn)對(duì)泵站數(shù)據(jù)的處理以及對(duì)泵站的遠(yuǎn)程管理。將物聯(lián)網(wǎng)技術(shù)運(yùn)用系統(tǒng)設(shè)計(jì)當(dāng)中,使系統(tǒng)設(shè)備具有可靠、操作簡(jiǎn)單、計(jì)費(fèi)準(zhǔn)確、管理方便、適用范圍廣等特點(diǎn),為泵站的自動(dòng)化提供了一種可行的、可靠的解決方案。
[1] 邢曉明. 泵站計(jì)算機(jī)自動(dòng)化及遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)研究[D].濟(jì)南:山東大學(xué),2012.
[2] 張曉燕. 引黃濟(jì)青泵站遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2009.
[3] 錢 鋒. 抽水泵站自動(dòng)控制系統(tǒng)的應(yīng)用研究與設(shè)計(jì)[D].合肥:合肥工業(yè)大學(xué),2006.
[4] 吳 杉. 基于PIC單片機(jī)的遠(yuǎn)程水泵控制器的設(shè)計(jì)與實(shí)現(xiàn)[D].重慶:重慶大學(xué),2012.
[5] 孟振飛. 基于STM32處理器的水泵控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué)2012.
[6] 陳 鈞. 基于S7-200的潛水泵站自動(dòng)控制技術(shù)[J]. 微計(jì)算機(jī)信息,2006,22(9-1):140-142.
[7] 周大慶, 吳玉林, 張仁田. 大型立式軸流泵站起動(dòng)過(guò)渡過(guò)程研究[J].水力發(fā)電學(xué)報(bào),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-),男,四川眉山人,碩士研究生,主要從事嵌入式方向的研究。
嚴(yán) 華(1971-),男,四川渠縣人,博士,教授,碩士研究生導(dǎo)師,主要從事嵌入式系統(tǒng)、水利信息化方向的研究。
1671-4598(2017)02-0186-03
10.16526/j.cnki.11-4762/tp.2017.02.051
TP18
A