鄭高原,佘世剛
(常州大學(xué)機(jī)械工程學(xué)院,江蘇常州 213164)
由于超聲波流量計(jì)具有測(cè)量穩(wěn)定、無壓損、大量程等優(yōu)點(diǎn),所以在天然氣測(cè)量方面已經(jīng)得到普及,為了得到更好的氣體流量測(cè)量結(jié)果,吳元良等使用TDC-GP2數(shù)字計(jì)時(shí)芯片提高了流量計(jì)對(duì)上下游氣體流速的測(cè)量精度[1],危鄂元、李紅娟等使用升級(jí)產(chǎn)品TDC-GP21,使用低功耗單片機(jī)MSP430作為主控MCU,提升了測(cè)量流量精度的同時(shí),降低了整體系統(tǒng)的功耗[2-3]。高正中等采用了TDC-GP22芯片中集成的屏蔽功能,減少了由于流體擾動(dòng)或由氣泡造成的測(cè)量誤差,在保證了測(cè)量精度的前提下提高了超聲波信號(hào)的質(zhì)量[4]。
現(xiàn)在的氣體流量測(cè)量的檢測(cè)精度依然較低,在氣體流量測(cè)量方面依然不盡人意。同時(shí),現(xiàn)有的超聲波氣體流量計(jì)大多都不具備檢測(cè)周圍安裝環(huán)境是否變化的功能,在周邊發(fā)生極端危險(xiǎn)的情況下不能提出警告?,F(xiàn)在市面上大部分流量計(jì)采用有線方式傳輸數(shù)據(jù),這種方式在有多個(gè)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)收集時(shí)布線十分繁瑣,在工作環(huán)境下特別是氣體流量計(jì)需要環(huán)境監(jiān)控的情況下很難得到利用。而隨著通信技術(shù)的發(fā)展,大量工作在復(fù)雜環(huán)境下的儀器也開始采用物聯(lián)網(wǎng)無線通訊的方式傳遞數(shù)據(jù)[5-6],因此就需要針對(duì)以上的問題設(shè)計(jì)一種基于物聯(lián)網(wǎng)的擁有較高測(cè)量精度且可以感知多種環(huán)境參數(shù)的儀器來進(jìn)行氣體流量測(cè)量、環(huán)境的有效監(jiān)控和數(shù)據(jù)的無線傳輸。
本文設(shè)計(jì)了一種基于物聯(lián)網(wǎng)MQTT協(xié)議和ESP8266以及MAX35104芯片為主體的高精度超聲波氣體流量監(jiān)測(cè)系統(tǒng),可進(jìn)行高精度氣體流量測(cè)量,使用ESP8266無線芯片作為通信芯片,利用DHT22溫濕度模塊以及MQ-4天然氣甲烷傳感器測(cè)量溫濕度以及可燃?xì)怏w(主要是天然氣),作為環(huán)境安全預(yù)警模塊,該系統(tǒng)可以監(jiān)測(cè)監(jiān)控環(huán)境下的溫度、濕度、甲烷濃度以及工作狀態(tài)下管道中的氣體流量,有效減少現(xiàn)場(chǎng)布線,具有成本低、可擴(kuò)展性好、可靠性高等特點(diǎn)。
系統(tǒng)的總體架構(gòu)分為工作環(huán)境數(shù)據(jù)采集、超聲波流量計(jì)流量測(cè)量、傳感器數(shù)據(jù)傳輸3部分。DHT22溫濕度傳感器、天然氣濃度傳感器負(fù)責(zé)采集實(shí)時(shí)的數(shù)據(jù)。使用新型MAX35104計(jì)時(shí)芯片進(jìn)行流量時(shí)差法測(cè)量。由ESP8266通信芯片通過WiFi將數(shù)據(jù)傳輸?shù)皆破脚_(tái)??赏ㄟ^電腦或手機(jī)查看平臺(tái)觀看監(jiān)測(cè)的數(shù)據(jù)。如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)
傳感器數(shù)據(jù)傳輸由傳感器環(huán)境設(shè)備信息采集節(jié)點(diǎn),MCU(STM32單片機(jī))、WiFi模塊(ESP8266)組成,傳感器配置由溫濕度傳感器(DHT22),甲烷濃度傳感器(MQ-4)、超聲波流量測(cè)量模塊組成,傳感器數(shù)據(jù)在MCU匯總之后通過USART3串口傳輸至ESP8266通信模塊,模塊使用WiFi方式連接網(wǎng)絡(luò),將數(shù)據(jù)傳輸?shù)皆破脚_(tái),工作環(huán)境發(fā)生異常時(shí)可以通過網(wǎng)絡(luò)產(chǎn)生警告,可通過云平臺(tái)使用電腦或手機(jī)查看流量測(cè)量信息。
超聲波氣體流量測(cè)量采用時(shí)差法測(cè)量氣體流量,時(shí)差法測(cè)量原理就是利用超聲波在順流和逆流情況下的運(yùn)動(dòng)時(shí)間差來測(cè)量氣體流量[7-10],如圖2所示。
圖2 超聲波氣體流量計(jì)時(shí)差法原理圖
圖2中,A和B為超聲波換能器,L為超聲波換能器A和B發(fā)出的超聲波的運(yùn)動(dòng)距離,c為超聲波在管道氣體中的運(yùn)動(dòng)速度,θ為兩換能器的直線距離與管道軸線的夾角角度,D為管道直徑,v為管道中氣體流量的流速。聲道長(zhǎng)公式為
通過計(jì)算超聲波在順流和逆流情況下的運(yùn)動(dòng)速度差,可以得到超聲波探頭所發(fā)出的超聲波在管道中的順流、逆流傳播時(shí)間tAB,tBA:
式中τ為硬件電路的延遲時(shí)間。
由傳播時(shí)間公式可知超聲波順逆流情況下的傳播時(shí)間差為
式中v2cos2θ和c2相比可以忽略不計(jì),故Δt簡(jiǎn)化為
即可計(jì)算出流速v為
管道中的流體在流動(dòng)時(shí)有層流和紊流2種狀態(tài),由于流體在測(cè)量管道的橫截面上有不同的流速情況分布,單獨(dú)計(jì)算出v只是管道截面上沿聲道線的流速平均速度,不能完全真實(shí)地顯示實(shí)際環(huán)境下的管道內(nèi)流速分布狀況,所以引入vm作為管道截面的平均流速,現(xiàn)實(shí)狀況下的流體流量應(yīng)為管道的橫截面積A乘以其面平均流速vm,需要引入流場(chǎng)修正系數(shù)K對(duì)線平均流速進(jìn)行補(bǔ)償:
從而可得瞬時(shí)體積流量Q[11]表示為
流場(chǎng)修正系數(shù)K的經(jīng)驗(yàn)公式如下[12]:
可見需要求出雷諾數(shù)才可以知道流場(chǎng)修正系數(shù),而雷諾數(shù)的計(jì)算公式為
式中:ρ為流體的密度;η為黏性系數(shù)。
MQTT是遠(yuǎn)程醫(yī)療通信協(xié)議,MQTT提供發(fā)布/訂閱的消息機(jī)制,基于TCP/IP協(xié)議實(shí)現(xiàn)設(shè)備連接,由于其簡(jiǎn)單,規(guī)范,消耗流量小而被廣泛使用。
MQTT的發(fā)布者,也就是設(shè)備感應(yīng)端主要是以STM32為主核心的控制設(shè)備,設(shè)備通過收集超聲波流量計(jì)測(cè)量的數(shù)據(jù)、溫濕度數(shù)據(jù)和天然氣濃度數(shù)據(jù)實(shí)現(xiàn),MQTT的網(wǎng)絡(luò)層就是MQTT服務(wù)器,服務(wù)器進(jìn)行基于MQTT協(xié)議的消息訂閱與發(fā)布,收集感應(yīng)端傳送的數(shù)據(jù),將信息傳送到應(yīng)用層的手機(jī)端(Android)和PC端,且等待應(yīng)用端的命令。MQTT的應(yīng)用層即安卓端與PC端,可以通過接收網(wǎng)絡(luò)數(shù)據(jù)實(shí)時(shí)監(jiān)控工作環(huán)境的情況與氣體測(cè)量的數(shù)據(jù),可通過發(fā)送命令來確認(rèn)設(shè)備狀態(tài)。MQTT的應(yīng)用模型如圖3所示。
圖3 MQTT協(xié)議應(yīng)用于物聯(lián)網(wǎng)的模型
系統(tǒng)硬件設(shè)計(jì)包含2個(gè)部分,傳感器信息收集部分與數(shù)據(jù)無線收發(fā)部分。
傳感器信息收集部分主要由主控制單元MCU(STM32F103ZET6)、各數(shù)據(jù)收集單元組成,具體設(shè)計(jì)如圖4所示。
圖4 傳感器信息收集部分
2.1.1 環(huán)境監(jiān)測(cè)部分
測(cè)量溫濕度選擇DHT22傳感器,DHT22使用SDA為串行數(shù)據(jù)雙向口,用于讀寫傳感器數(shù)據(jù)。濕度量程范圍為相對(duì)濕度0~99%,精度為±2%,而溫度量程范圍為-40~80 ℃,精度為±0.5 ℃。
測(cè)量天然氣濃度選擇MQ-4。MQ-4氣體傳感器的使用溫度是-10~50 ℃,可適用于檢測(cè)濃度在300~10 000 ppm(1 ppm=10-6)范圍內(nèi)的天然氣濃度。通過連接STM32F103的A/D模數(shù)轉(zhuǎn)換接口,測(cè)量接口電壓來計(jì)算所測(cè)氣體濃度。
2.1.2 超聲波氣體檢測(cè)部分
超聲波氣體測(cè)量采用MAX35104芯片,它是新一代燃?xì)饬髁坑?jì)片上系統(tǒng),擁有大量通過SPI傳送的氣體流量測(cè)量命令,極大地簡(jiǎn)化編程??蓪⒊暡ǖ臏y(cè)量精度提升至700 ps,且可在2.3~3.6 V單電源供電情況下進(jìn)行62 μA超低功耗時(shí)間測(cè)量??晒ぷ髟?40~80 ℃。可通過命令執(zhí)行自動(dòng)校準(zhǔn)操作,如果發(fā)生錯(cuò)誤,則中斷狀態(tài)寄存器中的TO位置1,INT引腳被置位。擁有多個(gè)執(zhí)行操作碼命令,可進(jìn)行上游測(cè)量,下游測(cè)量,上下游測(cè)量時(shí)間差,初始化,復(fù)位,帶通校準(zhǔn),事件1、2、3等命令。內(nèi)置的轉(zhuǎn)換結(jié)果寄存器直接儲(chǔ)存超聲波測(cè)量的時(shí)間差數(shù)據(jù),可以直接通過SPI接口進(jìn)行讀取,最大程度地減少M(fèi)CU對(duì)MAX35104的訪問。MAX35104芯片電路圖如圖5所示。
數(shù)據(jù)收發(fā)部分采用ESP8266WIFI通信模塊進(jìn)行數(shù)據(jù)的收發(fā)與傳輸,電路圖如圖6所示。
ESP8266-12F集成ESP8266EX核心芯片,有標(biāo)準(zhǔn)數(shù)字外設(shè)接口、天線開關(guān)、射頻balun、功率放大器、低噪放大器、過濾器、電源管理模塊以及一片EN25Q32FLASH芯片等。支持WiFi協(xié)議棧,工作頻率穩(wěn)定在160 MHz,ESP8266擁有11個(gè)可擴(kuò)展I/O接口,其中,GPIO12、GPIO13、GPIO15可作為PWM通道;GPIO12(MISO)、GPIO13(MISI)、GPIO14(CLK)、GPIO15(CS)可作為SPI接口,GPIO5(SCL)、GPIO4(SDA)可作為IIC接口。
在超聲波收發(fā)測(cè)量系統(tǒng)的軟件設(shè)計(jì)中,主要包括3部分:物聯(lián)網(wǎng)數(shù)據(jù)收發(fā)程序;超聲波氣體流量測(cè)量程序;終端軟件設(shè)計(jì)。
物聯(lián)網(wǎng)數(shù)據(jù)收發(fā)程序基于STM32固件庫(kù)進(jìn)行庫(kù)函數(shù)開發(fā)。對(duì)比寄存器開發(fā),通過STM32的官方庫(kù)函數(shù)進(jìn)行開發(fā)可以大量減少程序的開發(fā)時(shí)間,從而降低開發(fā)成本[13]。
通電之后,初始化網(wǎng)絡(luò)協(xié)議,連接協(xié)議中設(shè)置的WiFi網(wǎng)絡(luò),如果初始成功則開始監(jiān)視超聲波傳感器與其他傳感器的工作狀態(tài),通過第三方?jīng)Q定是否開始進(jìn)行測(cè)量,采集的數(shù)據(jù)要先通過數(shù)據(jù)處理之后才能通過定義的數(shù)據(jù)點(diǎn)將數(shù)據(jù)使用USART3接口傳輸?shù)紼SP8266芯片,再通過芯片接入WiFi從而與云服務(wù)器通信,如果等待30 s之后仍然不能連接,則等待選擇其他接入方式,如果使用獲取到的ssid和pwd成功連上路由,則發(fā)送配置成功包,設(shè)備與網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)交互采用MQTT協(xié)議,每55 s檢驗(yàn)是否離線。物聯(lián)網(wǎng)數(shù)據(jù)收發(fā)程序流程如圖7所示。
圖5 MAX35104外圍電路圖
圖6 ESP8266核心電路圖
圖7 物聯(lián)網(wǎng)數(shù)據(jù)收發(fā)程序流程圖
超聲波氣體測(cè)量主要通過MAX35104芯片實(shí)現(xiàn),在MAX35104通過SPI發(fā)送多種指令來使用芯片中的計(jì)時(shí)模式,比如為了測(cè)量氣體流量,本文使用的EVTMG2(操作碼08h)操作命令。
通過SPI與MAX35104進(jìn)行通信,CE(-)為低電平之后,對(duì)EVTMG2操作命令設(shè)置測(cè)量的頻率、測(cè)量的次數(shù)等剩余的寄存器。然后設(shè)備發(fā)送EVTMG2,一旦操作碼的所有8位由MAX35104接收,CE(-)器件引腳被置為無效,則設(shè)備按照該命令的描述開始執(zhí)行指定的飛行時(shí)間測(cè)量流程,最后通知微處理器讀取所測(cè)量的數(shù)據(jù)。操作碼位首先以8位MSB的形式傳送。數(shù)據(jù)位以16位MSB為單位傳輸。圖8為MAX35104的主控制器時(shí)間測(cè)量流程圖。
圖8 MAX35104的EVTMG2指令時(shí)間測(cè)量流程圖
終端程序分為PC端與手機(jī)端,PC端采用GAgent平臺(tái)的網(wǎng)絡(luò)串口傳輸,直接從云端通過http網(wǎng)絡(luò)頁面的方式獲取設(shè)備通過WiFi上報(bào)的數(shù)據(jù)。
手機(jī)端使用JAVA語言和Android Studio軟件開發(fā),在美化監(jiān)控界面與定義所接收發(fā)送的數(shù)據(jù)點(diǎn)之后,手機(jī)通過網(wǎng)絡(luò)與GAgent建立的云服務(wù)器相連,設(shè)備與網(wǎng)絡(luò)建立連接之后,通過手機(jī)APP接收瀏覽數(shù)據(jù),移動(dòng)性相比電腦極大增強(qiáng)。具體的手機(jī)監(jiān)控界面如圖9所示。
圖9 手機(jī)端監(jiān)控頁面UI
為了驗(yàn)證ESP8266連接網(wǎng)絡(luò)服務(wù)器上傳數(shù)據(jù)的可行性,設(shè)計(jì)物聯(lián)網(wǎng)通信程序,使STM32將傳感器感應(yīng)的溫度、濕度、甲烷濃度以及流量通過云服務(wù)器收發(fā)讀取。測(cè)試用于驗(yàn)證溫度、濕度、甲烷濃度、流量測(cè)量運(yùn)行正確與否。實(shí)驗(yàn)結(jié)果驗(yàn)證了設(shè)計(jì)網(wǎng)絡(luò)工作的可行性。
在行業(yè)標(biāo)準(zhǔn)JJG1030-2007流量計(jì)檢定規(guī)程下進(jìn)行試驗(yàn),使用行業(yè)中常用的Z式安裝法安裝超聲波探頭,采用管徑DN100的管道,安裝角度為45°,將流量計(jì)測(cè)量結(jié)果與LUGB100 mm直徑的渦街氣體流量計(jì)在相同的環(huán)境條件下進(jìn)行對(duì)照,按照J(rèn)JG1030—2007流量計(jì)檢定規(guī)程,對(duì)于本次選擇的對(duì)照流量計(jì),按照其精度與量程選取6個(gè)檢定點(diǎn),分別是qmin(10 m3/h),qt(84 m3/h),0.25qmax(125 m3/h),0.4qmax(200 m3/h),0.7qmax(350 m3/h),qmax(500 m3/h)。分3種環(huán)境下進(jìn)行測(cè)量18次,通過結(jié)果計(jì)算誤差值。在流量計(jì)工作以及休眠的同時(shí),溫濕度探測(cè)與甲烷濃度探測(cè)繼續(xù)進(jìn)行,每1 h記錄數(shù)據(jù)。測(cè)試結(jié)果如圖10所示。
(a)某天溫度測(cè)量情況
(b)某天相對(duì)濕度測(cè)量情況
(c)測(cè)量甲烷濃度
(d)測(cè)量流量相對(duì)誤差圖10 測(cè)試結(jié)果
經(jīng)過實(shí)驗(yàn)室檢測(cè)后,認(rèn)為基于物聯(lián)網(wǎng)的氣體流量監(jiān)控系統(tǒng)達(dá)到設(shè)計(jì)要求。在進(jìn)行現(xiàn)場(chǎng)檢測(cè)時(shí),可以實(shí)現(xiàn)溫度、空氣濕度和甲烷濃度的采集,氣體流量的測(cè)量。該流量監(jiān)控系統(tǒng)可以幫助工作人員更好地監(jiān)控現(xiàn)場(chǎng),減少現(xiàn)場(chǎng)布線,具有實(shí)用性和有效的監(jiān)控實(shí)時(shí)性。