湯雅婧,韓 濤,肖 波,薛 博
(湖北師范大學(xué)電氣工程與自動(dòng)化學(xué)院,黃石 435002)
當(dāng)下泳池水質(zhì)安全事故頻發(fā)對人身造成健康危害,水質(zhì)管理成為重中之重,現(xiàn)代泳池能檢測水質(zhì)但難以反饋,監(jiān)測效率低下,傳統(tǒng)的水質(zhì)監(jiān)測過程中,人力資源浪費(fèi)嚴(yán)重,時(shí)時(shí)進(jìn)行抽查監(jiān)測,不能詳盡地表現(xiàn)出水質(zhì)的變化過程,反而極易造成資源的浪費(fèi)[1]。本設(shè)計(jì)將提供一個(gè)更完備的泳池水質(zhì)控制系統(tǒng),集游泳池水質(zhì)檢測控制、LabVIEW 后臺管理于一體的物聯(lián)網(wǎng)智能泳池水質(zhì)監(jiān)測系統(tǒng),對水質(zhì)管理進(jìn)行整合升級。
系統(tǒng)由數(shù)據(jù)采集單元、主控單元、通信單元、LabVIEW 上位機(jī)監(jiān)測以及各執(zhí)行機(jī)構(gòu)組成,以STM32f103 為主控芯片,具有一定的負(fù)載能力。數(shù)據(jù)采集單元由溫度傳感器、水位傳感器、TSW-30 濁度傳感器、pH 傳感器組成,通過LabVIEW 完成上位機(jī)監(jiān)測實(shí)現(xiàn)波形輸出,通過手機(jī)連接藍(lán)牙查看采集數(shù)據(jù)信息及時(shí)反饋超標(biāo)數(shù)據(jù)。變壓穩(wěn)壓電路實(shí)現(xiàn)傳感器數(shù)據(jù)穩(wěn)定輸出,執(zhí)行機(jī)構(gòu)則由加熱棒、蜂鳴器、水泵、OLED 顯示屏、步進(jìn)電機(jī)構(gòu)成。STM32 芯片與LabVIEW上位機(jī)以及各檢測傳感器的結(jié)合使用,使得本系統(tǒng)可作為水質(zhì)在線參數(shù)檢測儀使用。系統(tǒng)設(shè)計(jì)框圖如圖1所示。

圖1 系統(tǒng)設(shè)計(jì)框圖
智能泳池水質(zhì)監(jiān)測系統(tǒng)硬件部分由電源模塊電路、數(shù)據(jù)采集單元、執(zhí)行機(jī)構(gòu)電路、OLED顯示電路、A/D 轉(zhuǎn)換電路以及藍(lán)牙通訊模塊組成。其中執(zhí)行機(jī)構(gòu)為本系統(tǒng)硬件核心。
2.1.1 ppHH及溫度傳感器模塊
pH 傳感器模塊是通過檢測被測物中氫離子濃度并轉(zhuǎn)換成相應(yīng)的可用輸出信號,通過pH 值反映水的酸堿度,使用BNC 接頭與pH 復(fù)合電極進(jìn)行連接,并且模塊拓展有溫度傳感器DS18B20 接口,選用不銹鋼防水型溫度傳感器,通過與STM32 單片機(jī)PA0 引腳進(jìn)行連接,pH 傳感器的I/O 口則連接單片機(jī)的PB12 引腳,通過測量熱電阻的該變量來感知,將電阻的變化量轉(zhuǎn)換成電壓信號,再通過信號放大器放大,可直接輸出 0~5 V 模擬電壓信號[2],做到將 pH 傳感器電極信號放大三倍輸出,通過單片機(jī)ADC采樣后進(jìn)行電壓采集,進(jìn)而將輸出電壓等比例地轉(zhuǎn)化為3.3 V 以下的電壓,通過線性關(guān)系反推出真實(shí)電壓值。pH 值數(shù)據(jù)還需通過溫度補(bǔ)償來獲取更為精確的參數(shù)數(shù)據(jù),初次使用模塊或更換pH 電極傳感器后,需用校正緩沖液對模塊進(jìn)行pH校準(zhǔn)。溫度、pH值采集電路如圖2所示。

圖2 溫度、pH值采集電路
2.1.2 濁度檢測電路
使用TSW-30濁度傳感器,其內(nèi)部含有光敏二極管和紅外輻射二極管,通過溶液中的透光率和散射率來綜合判斷濁度情況。通過內(nèi)部的紅外線對管檢測光線的透過量,將光強(qiáng)度轉(zhuǎn)化為電流的大小。水體渾濁程度越大,透過的光線越少,被光接收端轉(zhuǎn)換成的電流就小,反之電流越大。
濁度電流信號通過串聯(lián)210 Ω 電阻轉(zhuǎn)換成0~5 V 電壓信號,采用ADC 轉(zhuǎn)換實(shí)現(xiàn)數(shù)據(jù)的輸出,通過模塊上10 K 藍(lán)色電位器的旋鈕對數(shù)字量輸出觸發(fā)閾值進(jìn)行調(diào)節(jié),超過閾值時(shí)D1 指示燈被點(diǎn)亮。且pH 傳感器內(nèi)部處理方式與濁度傳感器相似,渾濁度采集電路如圖3所示。

圖3 渾濁度采集電路
通過最小二乘法擬合得到濁度與電壓計(jì)算曲線滿足式(1),R2=0.9。
2.1.3 水位檢測模塊
水位檢測是通過一系列暴露的平行導(dǎo)線線跡測量水滴或水量大小來判斷水位。當(dāng)有水接觸到平行導(dǎo)線時(shí),模塊會(huì)輸出一個(gè)高電平信號,再通過模數(shù)轉(zhuǎn)換成數(shù)字直觀反映出測量數(shù)據(jù),利用函數(shù)進(jìn)行模擬電壓值到水位的轉(zhuǎn)換。當(dāng)無水接觸到平行導(dǎo)線時(shí),會(huì)輸出一個(gè)低電平信號,驅(qū)動(dòng)芯片運(yùn)行對信息進(jìn)行采集,通過繼電器自動(dòng)閉合性控制負(fù)載電路,同時(shí)反饋數(shù)據(jù)。超過閾值時(shí)蜂鳴器觸發(fā),達(dá)到水位報(bào)警的功效。數(shù)值可直接讀取并顯示在OLED顯示屏上。
使用JDY-31 藍(lán)牙進(jìn)行單片機(jī)與手機(jī)之間的無線通訊,有效傳輸距離為30 m,可進(jìn)行短距離信息傳輸,通過UART 串口通訊,將單片機(jī)檢測到的水溫、水位、pH 值、渾濁度信息傳至手機(jī)中。通過USB 轉(zhuǎn)TTL 電腦串口助手可收到藍(lán)牙測量數(shù)據(jù),接收界面顯示連接成功即可讀取測量值。
執(zhí)行機(jī)構(gòu)包括OLED顯示屏、繼電器以及相應(yīng)負(fù)載,通過繼電器通斷實(shí)現(xiàn)負(fù)載啟停、步進(jìn)電機(jī)、蜂鳴器、加熱棒以及水泵等負(fù)載共同組成電路核心,溫度通過加熱棒調(diào)節(jié),濁度和pH值通過步進(jìn)電機(jī)和水泵調(diào)節(jié),步進(jìn)電機(jī)控制試劑閥門,水位通過水泵進(jìn)行調(diào)節(jié),當(dāng)檢測到的pH 值、溫度、渾濁度、水位超出閾值范圍時(shí)相應(yīng)繼電器動(dòng)作,蜂鳴器報(bào)警,提醒工作人員監(jiān)督并采取相應(yīng)措施。
本系統(tǒng)中軟件系統(tǒng)設(shè)計(jì)由STM32系統(tǒng)程序、LabVIEW 上位機(jī)軟件以及藍(lán)牙通訊構(gòu)成。軟件系統(tǒng)設(shè)計(jì)流程如圖4所示。

圖4 軟件系統(tǒng)設(shè)計(jì)流程
采用STM32f103c8t6作為主控芯片,它是一款基于 ARM Cortex-M 內(nèi)核 STM32 系列的 32 位微控制器,使用J-link 仿真器直接用計(jì)算機(jī)供電進(jìn)行程序的下載和輔助調(diào)試,通過藍(lán)牙進(jìn)行無線通訊技術(shù)連接,實(shí)現(xiàn)物聯(lián)網(wǎng)操控。
完成系統(tǒng)初始化通過傳感器采集數(shù)據(jù),初始化包括STM32 芯片、定時(shí)器清零、中斷、ADC 中斷、時(shí)鐘、串口等初始化,調(diào)用程序檢測水溫、水位、pH 值和渾濁度,顯示在OLED屏幕上,數(shù)據(jù)同步傳輸?shù)絇C 端進(jìn)行閾值大小設(shè)定[3]。并可通過藍(lán)牙連接到手機(jī)用戶界面,實(shí)現(xiàn)數(shù)據(jù)查詢統(tǒng)計(jì)以及分析。串口通訊連接到PC端LabVIEW 上位機(jī),對參數(shù)進(jìn)行實(shí)時(shí)監(jiān)控且可手動(dòng)調(diào)控上限閾值。采用繼電器實(shí)現(xiàn)系統(tǒng)的自動(dòng)通斷,傳感器產(chǎn)生輸入電信號直到采集數(shù)據(jù)滿足控制指標(biāo),反饋信息超標(biāo)時(shí)繼電器會(huì)自動(dòng)閉合。對監(jiān)測的目標(biāo)設(shè)置動(dòng)態(tài)變化范圍,一旦超過預(yù)定范圍,系統(tǒng)會(huì)自動(dòng)啟動(dòng)相關(guān)設(shè)備的運(yùn)轉(zhuǎn),用以調(diào)節(jié)泳池的多項(xiàng)參數(shù)。整體結(jié)構(gòu)框圖如圖5所示。

圖5 整體結(jié)構(gòu)框圖
傳感器數(shù)據(jù)通過連接STM32 串口發(fā)送給電腦上位機(jī),界面顯示包括四部分?jǐn)?shù)值、閾值、警報(bào)和波形[4]。通過visa屬性的設(shè)定進(jìn)行串口號和波特率的設(shè)置,建立可視化窗格更有利于編程調(diào)節(jié),通訊完成后傳入節(jié)點(diǎn),節(jié)點(diǎn)信息設(shè)定完成通過判斷進(jìn)行字符串到數(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ù)值變換,進(jìn)行模擬分析和數(shù)值預(yù)測,顯示水質(zhì)的酸堿性、水溫、水位以及渾濁度,超出閾值范圍警報(bào)燈亮起,蜂鳴器報(bào)警相應(yīng)執(zhí)行機(jī)構(gòu)動(dòng)作。通過建立可視化View界面實(shí)現(xiàn)PC端上數(shù)據(jù)顯示和遠(yuǎn)程監(jiān)測功能,手機(jī)端與PC端實(shí)現(xiàn)數(shù)據(jù)同步。
使用DS18B20 不銹鋼溫度傳感器,T1 引腳為溫度傳感器信號輸出口,通過軟件進(jìn)行溫度補(bǔ)償。模塊與單片機(jī)GPIO PA0 引腳相連,僅通過一個(gè)單線接口發(fā)送或接受信息,脈沖觸發(fā)產(chǎn)生信號,復(fù)位脈沖跟著存在脈沖出現(xiàn),表明準(zhǔn)備好接發(fā)數(shù)據(jù)。檢測到高電平時(shí),延時(shí)后會(huì)通過60~240 us低電平信號的存在脈沖,單片機(jī)檢測到電信號由此進(jìn)行數(shù)據(jù)讀寫,以此來測量溫度采集數(shù)據(jù);若存在脈沖沒有產(chǎn)生則做超時(shí)處理,在接收到低電平復(fù)位脈沖后進(jìn)行復(fù)位處理。
通過單片機(jī)時(shí)鐘電路、復(fù)位電路以及模數(shù)轉(zhuǎn)換的結(jié)合。數(shù)據(jù)采集時(shí)利用單片機(jī)內(nèi)部的A/D轉(zhuǎn)換器,通過將輸入的模擬信號按規(guī)定的時(shí)間間隔采樣,與一系列標(biāo)準(zhǔn)的數(shù)字信號相比較,直至兩種信號相等為止。
系統(tǒng)首先進(jìn)行ADC GPIO 初始化,開啟PA時(shí)鐘和ADC 時(shí)鐘。選用PA1、PA2、PA3、PA4口為模擬輸入,使用ADC 四個(gè)轉(zhuǎn)換通道,復(fù)位ADC1 后進(jìn)行分頻因子設(shè)置,配置ADC 時(shí)鐘為8分頻,即9 MHz,也就是轉(zhuǎn)換時(shí)間為9 us;將使能ADC 復(fù)位校準(zhǔn),ADC1 轉(zhuǎn)換的電壓值則通過MDA 方式傳到SRAM,開啟軟件轉(zhuǎn)換,轉(zhuǎn)換完成后即可通過轉(zhuǎn)換公式計(jì)算出真實(shí)pH 值,通過多次轉(zhuǎn)換求取平均值減小誤差。而濁度傳感器也是通過ADC 轉(zhuǎn)換進(jìn)行數(shù)據(jù)采集,處理方式與pH傳感器基本相同。
藍(lán)牙串口模塊相當(dāng)于手機(jī)端和單片機(jī)無線通信的媒介,藍(lán)牙模塊的RXD、TXD 引腳分別對應(yīng)連接單片機(jī)TXD、RXD 引腳實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。通過SPP 串口透傳協(xié)議建立無線通訊,配對成功后,使用AT 指令串口調(diào)試助手進(jìn)行藍(lán)牙數(shù)據(jù)傳輸,確保實(shí)現(xiàn)藍(lán)牙透傳和串口通訊功能,使用AT 指令修改藍(lán)牙設(shè)置時(shí),需要保證藍(lán)牙沒有處于通信狀態(tài),發(fā)送“AT+UART=9600,0,0”,“AT+PIN[1234]”等命令進(jìn)行基本配置設(shè)定[6],保證手機(jī)和單片機(jī)之間的穩(wěn)定傳輸。
通過系統(tǒng)建立通訊后,對上位機(jī)進(jìn)行多次數(shù)據(jù)的驗(yàn)證,對采集到的水進(jìn)行水質(zhì)分析,因?yàn)檎`差產(chǎn)生較小波動(dòng)和振蕩,最終顯現(xiàn)出采集到的數(shù)據(jù)波形,PC 端數(shù)據(jù)顯示如圖8 所示。從頁面上就可以看到溫度、濁度、水位、pH 值的讀數(shù),從條狀圖或儀表盤也可以很清楚數(shù)據(jù)所在位置,同時(shí)反應(yīng)到OLED屏幕上,當(dāng)數(shù)值超過閾值,警報(bào)燈亮起,通過pH 燈判別酸堿度,從而提醒工作人員警惕。經(jīng)過多次測量和驗(yàn)證保證誤差在5%以內(nèi),系統(tǒng)測試表明,本系統(tǒng)能夠有效地對水質(zhì)進(jìn)行多參數(shù)監(jiān)測。

圖8 PC端數(shù)據(jù)顯示
本設(shè)計(jì)結(jié)合LabVIEW 虛擬儀器技術(shù)實(shí)現(xiàn)水質(zhì)參數(shù)監(jiān)測,能有效地對包括pH 值、渾濁度值、溫度、水位四項(xiàng)參數(shù)進(jìn)行遠(yuǎn)程實(shí)時(shí)監(jiān)測,并在LabVIEW 界面實(shí)時(shí)顯示數(shù)值和波形。該系統(tǒng)實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)顯示、自動(dòng)調(diào)節(jié)和閾值報(bào)警功能。融合物聯(lián)網(wǎng)技術(shù)通過手機(jī)APP 實(shí)現(xiàn)遠(yuǎn)程控制,采用無線傳輸能夠?qū)λ|(zhì)參數(shù)進(jìn)行監(jiān)測并及時(shí)進(jìn)行反饋,有較高的應(yīng)用價(jià)值。