湯雅婧,韓 濤,肖 波,薛 博
(湖北師范大學(xué)電氣工程與自動化學(xué)院,黃石 435002)
當(dāng)下泳池水質(zhì)安全事故頻發(fā)對人身造成健康危害,水質(zhì)管理成為重中之重,現(xiàn)代泳池能檢測水質(zhì)但難以反饋,監(jiān)測效率低下,傳統(tǒng)的水質(zhì)監(jiān)測過程中,人力資源浪費嚴(yán)重,時時進行抽查監(jiān)測,不能詳盡地表現(xiàn)出水質(zhì)的變化過程,反而極易造成資源的浪費[1]。本設(shè)計將提供一個更完備的泳池水質(zhì)控制系統(tǒng),集游泳池水質(zhì)檢測控制、LabVIEW 后臺管理于一體的物聯(lián)網(wǎng)智能泳池水質(zhì)監(jiān)測系統(tǒng),對水質(zhì)管理進行整合升級。
系統(tǒng)由數(shù)據(jù)采集單元、主控單元、通信單元、LabVIEW 上位機監(jiān)測以及各執(zhí)行機構(gòu)組成,以STM32f103 為主控芯片,具有一定的負載能力。數(shù)據(jù)采集單元由溫度傳感器、水位傳感器、TSW-30 濁度傳感器、pH 傳感器組成,通過LabVIEW 完成上位機監(jiān)測實現(xiàn)波形輸出,通過手機連接藍牙查看采集數(shù)據(jù)信息及時反饋超標(biāo)數(shù)據(jù)。變壓穩(wěn)壓電路實現(xiàn)傳感器數(shù)據(jù)穩(wěn)定輸出,執(zhí)行機構(gòu)則由加熱棒、蜂鳴器、水泵、OLED 顯示屏、步進電機構(gòu)成。STM32 芯片與LabVIEW上位機以及各檢測傳感器的結(jié)合使用,使得本系統(tǒng)可作為水質(zhì)在線參數(shù)檢測儀使用。系統(tǒng)設(shè)計框圖如圖1所示。
圖1 系統(tǒng)設(shè)計框圖
智能泳池水質(zhì)監(jiān)測系統(tǒng)硬件部分由電源模塊電路、數(shù)據(jù)采集單元、執(zhí)行機構(gòu)電路、OLED顯示電路、A/D 轉(zhuǎn)換電路以及藍牙通訊模塊組成。其中執(zhí)行機構(gòu)為本系統(tǒng)硬件核心。
2.1.1 ppHH及溫度傳感器模塊
pH 傳感器模塊是通過檢測被測物中氫離子濃度并轉(zhuǎn)換成相應(yīng)的可用輸出信號,通過pH 值反映水的酸堿度,使用BNC 接頭與pH 復(fù)合電極進行連接,并且模塊拓展有溫度傳感器DS18B20 接口,選用不銹鋼防水型溫度傳感器,通過與STM32 單片機PA0 引腳進行連接,pH 傳感器的I/O 口則連接單片機的PB12 引腳,通過測量熱電阻的該變量來感知,將電阻的變化量轉(zhuǎn)換成電壓信號,再通過信號放大器放大,可直接輸出 0~5 V 模擬電壓信號[2],做到將 pH 傳感器電極信號放大三倍輸出,通過單片機ADC采樣后進行電壓采集,進而將輸出電壓等比例地轉(zhuǎn)化為3.3 V 以下的電壓,通過線性關(guān)系反推出真實電壓值。pH 值數(shù)據(jù)還需通過溫度補償來獲取更為精確的參數(shù)數(shù)據(jù),初次使用模塊或更換pH 電極傳感器后,需用校正緩沖液對模塊進行pH校準(zhǔn)。溫度、pH值采集電路如圖2所示。
圖2 溫度、pH值采集電路
2.1.2 濁度檢測電路
使用TSW-30濁度傳感器,其內(nèi)部含有光敏二極管和紅外輻射二極管,通過溶液中的透光率和散射率來綜合判斷濁度情況。通過內(nèi)部的紅外線對管檢測光線的透過量,將光強度轉(zhuǎn)化為電流的大小。水體渾濁程度越大,透過的光線越少,被光接收端轉(zhuǎn)換成的電流就小,反之電流越大。
濁度電流信號通過串聯(lián)210 Ω 電阻轉(zhuǎn)換成0~5 V 電壓信號,采用ADC 轉(zhuǎn)換實現(xiàn)數(shù)據(jù)的輸出,通過模塊上10 K 藍色電位器的旋鈕對數(shù)字量輸出觸發(fā)閾值進行調(diào)節(jié),超過閾值時D1 指示燈被點亮。且pH 傳感器內(nèi)部處理方式與濁度傳感器相似,渾濁度采集電路如圖3所示。
圖3 渾濁度采集電路
通過最小二乘法擬合得到濁度與電壓計算曲線滿足式(1),R2=0.9。
2.1.3 水位檢測模塊
水位檢測是通過一系列暴露的平行導(dǎo)線線跡測量水滴或水量大小來判斷水位。當(dāng)有水接觸到平行導(dǎo)線時,模塊會輸出一個高電平信號,再通過模數(shù)轉(zhuǎn)換成數(shù)字直觀反映出測量數(shù)據(jù),利用函數(shù)進行模擬電壓值到水位的轉(zhuǎn)換。當(dāng)無水接觸到平行導(dǎo)線時,會輸出一個低電平信號,驅(qū)動芯片運行對信息進行采集,通過繼電器自動閉合性控制負載電路,同時反饋數(shù)據(jù)。超過閾值時蜂鳴器觸發(fā),達到水位報警的功效。數(shù)值可直接讀取并顯示在OLED顯示屏上。
使用JDY-31 藍牙進行單片機與手機之間的無線通訊,有效傳輸距離為30 m,可進行短距離信息傳輸,通過UART 串口通訊,將單片機檢測到的水溫、水位、pH 值、渾濁度信息傳至手機中。通過USB 轉(zhuǎn)TTL 電腦串口助手可收到藍牙測量數(shù)據(jù),接收界面顯示連接成功即可讀取測量值。
執(zhí)行機構(gòu)包括OLED顯示屏、繼電器以及相應(yīng)負載,通過繼電器通斷實現(xiàn)負載啟停、步進電機、蜂鳴器、加熱棒以及水泵等負載共同組成電路核心,溫度通過加熱棒調(diào)節(jié),濁度和pH值通過步進電機和水泵調(diào)節(jié),步進電機控制試劑閥門,水位通過水泵進行調(diào)節(jié),當(dāng)檢測到的pH 值、溫度、渾濁度、水位超出閾值范圍時相應(yīng)繼電器動作,蜂鳴器報警,提醒工作人員監(jiān)督并采取相應(yīng)措施。
本系統(tǒng)中軟件系統(tǒng)設(shè)計由STM32系統(tǒng)程序、LabVIEW 上位機軟件以及藍牙通訊構(gòu)成。軟件系統(tǒng)設(shè)計流程如圖4所示。
圖4 軟件系統(tǒng)設(shè)計流程
采用STM32f103c8t6作為主控芯片,它是一款基于 ARM Cortex-M 內(nèi)核 STM32 系列的 32 位微控制器,使用J-link 仿真器直接用計算機供電進行程序的下載和輔助調(diào)試,通過藍牙進行無線通訊技術(shù)連接,實現(xiàn)物聯(lián)網(wǎng)操控。
完成系統(tǒng)初始化通過傳感器采集數(shù)據(jù),初始化包括STM32 芯片、定時器清零、中斷、ADC 中斷、時鐘、串口等初始化,調(diào)用程序檢測水溫、水位、pH 值和渾濁度,顯示在OLED屏幕上,數(shù)據(jù)同步傳輸?shù)絇C 端進行閾值大小設(shè)定[3]。并可通過藍牙連接到手機用戶界面,實現(xiàn)數(shù)據(jù)查詢統(tǒng)計以及分析。串口通訊連接到PC端LabVIEW 上位機,對參數(shù)進行實時監(jiān)控且可手動調(diào)控上限閾值。采用繼電器實現(xiàn)系統(tǒng)的自動通斷,傳感器產(chǎn)生輸入電信號直到采集數(shù)據(jù)滿足控制指標(biāo),反饋信息超標(biāo)時繼電器會自動閉合。對監(jiān)測的目標(biāo)設(shè)置動態(tài)變化范圍,一旦超過預(yù)定范圍,系統(tǒng)會自動啟動相關(guān)設(shè)備的運轉(zhuǎn),用以調(diào)節(jié)泳池的多項參數(shù)。整體結(jié)構(gòu)框圖如圖5所示。
圖5 整體結(jié)構(gòu)框圖
傳感器數(shù)據(jù)通過連接STM32 串口發(fā)送給電腦上位機,界面顯示包括四部分?jǐn)?shù)值、閾值、警報和波形[4]。通過visa屬性的設(shè)定進行串口號和波特率的設(shè)置,建立可視化窗格更有利于編程調(diào)節(jié),通訊完成后傳入節(jié)點,節(jié)點信息設(shè)定完成通過判斷進行字符串到數(shù)組的整定。接收到16 位的字符串通過字符串子集函數(shù)截取前4位數(shù)作為pH 值,保留一位小數(shù)精度,后四位為濁度值,接著依次為溫度和水位值,按照此方法最終通過截取數(shù)組得到相應(yīng)的數(shù)據(jù)。
編程面板共分為四部分:串口通訊、字符串轉(zhuǎn)換、數(shù)據(jù)比較以及顯示輸出[5]。其中串口通訊如圖6所示,字符串轉(zhuǎn)換如圖7所示。
圖6 串口通訊
圖7 字符串轉(zhuǎn)換
串口連接后數(shù)值同步,可調(diào)節(jié)參數(shù)限度顯示水質(zhì)各參數(shù)波形。根據(jù)波形趨勢判斷數(shù)值變換,進行模擬分析和數(shù)值預(yù)測,顯示水質(zhì)的酸堿性、水溫、水位以及渾濁度,超出閾值范圍警報燈亮起,蜂鳴器報警相應(yīng)執(zhí)行機構(gòu)動作。通過建立可視化View界面實現(xiàn)PC端上數(shù)據(jù)顯示和遠程監(jiān)測功能,手機端與PC端實現(xiàn)數(shù)據(jù)同步。
使用DS18B20 不銹鋼溫度傳感器,T1 引腳為溫度傳感器信號輸出口,通過軟件進行溫度補償。模塊與單片機GPIO PA0 引腳相連,僅通過一個單線接口發(fā)送或接受信息,脈沖觸發(fā)產(chǎn)生信號,復(fù)位脈沖跟著存在脈沖出現(xiàn),表明準(zhǔn)備好接發(fā)數(shù)據(jù)。檢測到高電平時,延時后會通過60~240 us低電平信號的存在脈沖,單片機檢測到電信號由此進行數(shù)據(jù)讀寫,以此來測量溫度采集數(shù)據(jù);若存在脈沖沒有產(chǎn)生則做超時處理,在接收到低電平復(fù)位脈沖后進行復(fù)位處理。
通過單片機時鐘電路、復(fù)位電路以及模數(shù)轉(zhuǎn)換的結(jié)合。數(shù)據(jù)采集時利用單片機內(nèi)部的A/D轉(zhuǎn)換器,通過將輸入的模擬信號按規(guī)定的時間間隔采樣,與一系列標(biāo)準(zhǔn)的數(shù)字信號相比較,直至兩種信號相等為止。
系統(tǒng)首先進行ADC GPIO 初始化,開啟PA時鐘和ADC 時鐘。選用PA1、PA2、PA3、PA4口為模擬輸入,使用ADC 四個轉(zhuǎn)換通道,復(fù)位ADC1 后進行分頻因子設(shè)置,配置ADC 時鐘為8分頻,即9 MHz,也就是轉(zhuǎn)換時間為9 us;將使能ADC 復(fù)位校準(zhǔn),ADC1 轉(zhuǎn)換的電壓值則通過MDA 方式傳到SRAM,開啟軟件轉(zhuǎn)換,轉(zhuǎn)換完成后即可通過轉(zhuǎn)換公式計算出真實pH 值,通過多次轉(zhuǎn)換求取平均值減小誤差。而濁度傳感器也是通過ADC 轉(zhuǎn)換進行數(shù)據(jù)采集,處理方式與pH傳感器基本相同。
藍牙串口模塊相當(dāng)于手機端和單片機無線通信的媒介,藍牙模塊的RXD、TXD 引腳分別對應(yīng)連接單片機TXD、RXD 引腳實現(xiàn)數(shù)據(jù)的收發(fā)。通過SPP 串口透傳協(xié)議建立無線通訊,配對成功后,使用AT 指令串口調(diào)試助手進行藍牙數(shù)據(jù)傳輸,確保實現(xiàn)藍牙透傳和串口通訊功能,使用AT 指令修改藍牙設(shè)置時,需要保證藍牙沒有處于通信狀態(tài),發(fā)送“AT+UART=9600,0,0”,“AT+PIN[1234]”等命令進行基本配置設(shè)定[6],保證手機和單片機之間的穩(wěn)定傳輸。
通過系統(tǒng)建立通訊后,對上位機進行多次數(shù)據(jù)的驗證,對采集到的水進行水質(zhì)分析,因為誤差產(chǎn)生較小波動和振蕩,最終顯現(xiàn)出采集到的數(shù)據(jù)波形,PC 端數(shù)據(jù)顯示如圖8 所示。從頁面上就可以看到溫度、濁度、水位、pH 值的讀數(shù),從條狀圖或儀表盤也可以很清楚數(shù)據(jù)所在位置,同時反應(yīng)到OLED屏幕上,當(dāng)數(shù)值超過閾值,警報燈亮起,通過pH 燈判別酸堿度,從而提醒工作人員警惕。經(jīng)過多次測量和驗證保證誤差在5%以內(nèi),系統(tǒng)測試表明,本系統(tǒng)能夠有效地對水質(zhì)進行多參數(shù)監(jiān)測。
圖8 PC端數(shù)據(jù)顯示
本設(shè)計結(jié)合LabVIEW 虛擬儀器技術(shù)實現(xiàn)水質(zhì)參數(shù)監(jiān)測,能有效地對包括pH 值、渾濁度值、溫度、水位四項參數(shù)進行遠程實時監(jiān)測,并在LabVIEW 界面實時顯示數(shù)值和波形。該系統(tǒng)實現(xiàn)了實時數(shù)據(jù)顯示、自動調(diào)節(jié)和閾值報警功能。融合物聯(lián)網(wǎng)技術(shù)通過手機APP 實現(xiàn)遠程控制,采用無線傳輸能夠?qū)λ|(zhì)參數(shù)進行監(jiān)測并及時進行反饋,有較高的應(yīng)用價值。