徐思維,楊 帆,龍 坤
(武漢工程大學(xué) 電氣信息學(xué)院 湖北省視頻圖像與高清投影工程技術(shù)研究中心,武漢430205)
隨著社會(huì)的進(jìn)步與發(fā)展,人們對(duì)飲用水、生活用水和養(yǎng)殖用水的水體質(zhì)量都越來(lái)越關(guān)注。然而近幾年來(lái)水體污染問(wèn)題經(jīng)常發(fā)生,這對(duì)工農(nóng)業(yè)生產(chǎn)和人民的身體健康都產(chǎn)生了較大威脅[1],因此及時(shí)掌握水體的具體情況變得十分必要[2]。
在以往,對(duì)水體參數(shù)的采集通常使用人工方式測(cè)量與記錄,該方式耗時(shí)費(fèi)力,且采集到的數(shù)據(jù)具有偶然性,也不利于對(duì)水體水質(zhì)進(jìn)行綜合分析。故在此設(shè)計(jì)了一套基于物聯(lián)網(wǎng)的水質(zhì)監(jiān)測(cè)系統(tǒng),該系統(tǒng)能夠?qū)崟r(shí)監(jiān)測(cè)水體的溫度、渾濁度、溶解性固體總量TDS(total dissolved solids)以及酸堿度(pH),并上傳到LabVIEW 上位機(jī)生成變化曲線[3-5],同時(shí)還通過(guò)WiFi 模塊將水質(zhì)信息傳輸?shù)綑C(jī)智云物聯(lián)網(wǎng)平臺(tái)服務(wù)器[6],用戶可以通過(guò)OLED 顯示屏、手機(jī)App、LabVIEW 上位機(jī)等3 種方式查看查看水質(zhì)參數(shù)具體數(shù)值。該系統(tǒng)利用物聯(lián)網(wǎng)技術(shù)解決了時(shí)間與空間的限制,便于在任何時(shí)間地點(diǎn)查看水質(zhì)情況,具有較高的研究?jī)r(jià)值。
基于物聯(lián)網(wǎng)的水質(zhì)監(jiān)測(cè)系統(tǒng)下位機(jī)圍繞STM32單片機(jī)展開(kāi)工作;溫度、濁度、TDS、pH 這4 個(gè)傳感器模塊用于采集水體參數(shù)信息;OLED 顯示模塊用于現(xiàn)場(chǎng)顯示水體參數(shù)具體數(shù)值;USB 轉(zhuǎn)串口模塊負(fù)責(zé)串口與上位機(jī)間數(shù)據(jù)傳輸;云服務(wù)器負(fù)責(zé)接收和發(fā)送WiFi 模塊傳輸過(guò)來(lái)的數(shù)據(jù);手機(jī)App 負(fù)責(zé)遠(yuǎn)距離監(jiān)測(cè)水質(zhì)參數(shù);LabVIEW 上位機(jī)負(fù)責(zé)電腦端水質(zhì)數(shù)據(jù)監(jiān)測(cè)并提供報(bào)警服務(wù)。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)示意圖Fig.1 Diagrammatic sketch of the overall structure of the system
首先,STM32F103C8T6 單片機(jī)內(nèi)部ADC 將pH、濁度和TDS 傳感器采集的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),由于溫度傳感器的輸出為數(shù)字信號(hào),因此無(wú)需A/D 轉(zhuǎn)換。MCU 將轉(zhuǎn)化后的數(shù)字信號(hào)發(fā)送至內(nèi)部數(shù)據(jù)緩沖區(qū),利用串行數(shù)據(jù)總線將數(shù)據(jù)傳輸?shù)絆LED顯示屏實(shí)時(shí)顯示,并通過(guò)USB 轉(zhuǎn)串口模塊將數(shù)據(jù)傳輸?shù)絃abVIEW 上位機(jī)。同時(shí),MCU 通過(guò)USART3 把數(shù)據(jù)發(fā)送給WiFi 模塊,WiFi 模塊再通過(guò)TCP/IP 協(xié)議把數(shù)據(jù)發(fā)送至機(jī)智云物聯(lián)網(wǎng)平臺(tái)服務(wù)器保存,這時(shí)手機(jī)App 通過(guò)注冊(cè)登錄后綁定設(shè)備,就可以從服務(wù)器接收數(shù)據(jù)信息,從而查看水質(zhì)參數(shù)。
主控模塊選用STM32F103C8T6 微處理器,該單片機(jī)功耗小、成本低,功能豐富[7]。其內(nèi)核為基于ARM 架構(gòu)32 位的Cortex-M3 CPU,最高主頻可達(dá)72 MHz,其具有64 kB Flash,20 kB 的SRAM,2 個(gè)12 位ADC,16 個(gè)ADC 采集通道,9 個(gè)片上通信接口,37 個(gè)快速I/O 端口,因而被廣泛應(yīng)用于各種低成本的嵌入式產(chǎn)品中。
濁度傳感器采用TSW-30 濁度模塊。該模塊供電電壓為5 V,最大工作電流為40 mA,工作溫度為-20~90 ℃。因該模塊采集到的為模擬信號(hào),需要STM32 單片機(jī)內(nèi)置ADC 轉(zhuǎn)化為數(shù)字信號(hào)才能被MCU 讀取使用,在此選取STM32F103C8T6 的ADC1 的通道1 采集濁度參數(shù),其對(duì)應(yīng)單片機(jī)引腳為PA1。濁度傳感器與主控模塊STM32 單片機(jī)接線如圖2所示。
圖2 濁度傳感器接線示意圖Fig.2 Turbidity sensor wiring diagrammatic sketch
水體pH 值測(cè)量的pH 電極型號(hào)為E-201-C。該模塊供電電壓為5 V,測(cè)量pH 值范圍為0~14,工作溫度范圍為0~60 ℃,測(cè)量精度為±0.1(20 ℃),響應(yīng)時(shí)間小于1 min。由于pH 值受溫度的影響較大,通常需要進(jìn)行溫度補(bǔ)償,因此該模塊自帶溫度傳感器連接引腳T0。pH 值傳感器與主控模塊STM32 單片機(jī)接線如圖3所示,其中引腳PA0 為STM32 單片機(jī)ADC1 的采集通道0。
圖3 pH 傳感器接線示意圖Fig.3 pH sensor wiring diagrammatic sketch
在正常情況下,水體溫度不會(huì)發(fā)生很大變化。若水溫發(fā)生急劇變化通常是由于水體受到污染,因此水體溫度也作為評(píng)估水質(zhì)好壞的一個(gè)重要指標(biāo)。溫度傳感器采用DS18B20 模塊,該模塊接3.3 V 供電,可檢測(cè)溫度最高達(dá)125 ℃,最低可達(dá)-55 ℃,測(cè)量精度可達(dá)±0.5 ℃。溫度傳感器與pH 傳感器接線如圖4所示。
圖4 溫度傳感器接線示意圖Fig.4 Temperature sensor wiring diagrammatic sketch
水體TDS 值測(cè)量采用SEN0244 型模擬TDS 傳感器模塊。該模塊供電電壓為5 V,工作電流范圍為3~6 mA,模擬信號(hào)輸出電壓范圍為0~2.3 V,TDS 測(cè)量范圍為(0~1000)×10-6,測(cè)量精度為±5%。TDS 傳感器與主控模塊STM32 單片機(jī)接線如圖5所示,PA2引腳對(duì)應(yīng)為STM32 單片機(jī)ADC1 的采集通道2。
圖5 TDS 傳感器接線示意圖Fig.5 TDS sensor wiring diagrammatic sketch
由于系統(tǒng)需要顯示數(shù)字、英文以及漢字,因此選用2.4384 cm 的OLED 顯示屏。該顯示屏采用IIC通信,僅需連接4 個(gè)引腳即可使用,非常方便。其與STN32 單片機(jī)接線如圖6所示。
圖6 OLED 顯示模塊接線示意圖Fig.6 OLED display module wiring diagrammatic sketch
WiFi 模塊采用安信可公司的ESP8266-12F 模塊。該模塊兼容3.3 V 與5 V 電壓輸入,在此VCC接3.3 V 供電,GND 接地,GPIO0 接1 kΩ 上拉電阻默認(rèn)設(shè)置為工作模式,TXD 串口發(fā)送引腳接單片機(jī)USART3 的接收引腳PB10,RXD 串口發(fā)送引腳接單片機(jī)USART3 的發(fā)送引腳PB11,RST 復(fù)位引腳默認(rèn)接1 kΩ 上拉電阻,低電平時(shí)有效。WiFi 模塊電路如圖7所示。
圖7 WiFi 模塊電路Fig.7 WiFi module circuit
由于上位機(jī)與STM32 單片機(jī)的通信方式不同,因此需要USB 轉(zhuǎn)串口模塊實(shí)現(xiàn)兩者間的通信功能。該模塊TXD 與RXD 引腳與STM32 單片機(jī)USART1 的RXD 和TXD 引腳連接,從而實(shí)現(xiàn)把MCU內(nèi)部數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)傳輸至上位機(jī)。USB 轉(zhuǎn)串口模塊電路如圖8所示。V
圖8 USB 轉(zhuǎn)串口模塊電路Fig.8 Circuit of USB to serial port module
系統(tǒng)主控模塊軟件部分的開(kāi)發(fā)工具為Keil μVision5,編程語(yǔ)言為C 語(yǔ)言。主控模塊軟件主要有系統(tǒng)初始化程序、定時(shí)器中斷程序、傳感器信號(hào)采集程序、OLED 顯示程序、WiFi 傳輸程序。當(dāng)系統(tǒng)通電后首先會(huì)對(duì)系統(tǒng)各個(gè)模塊執(zhí)行初始化操作,即進(jìn)行硬件驅(qū)動(dòng)初始化,待初始化完畢后再調(diào)用傳感器模塊采集水體數(shù)據(jù),采集的數(shù)據(jù)經(jīng)MCU 處理后顯示在OLED 顯示屏和LabVIEW 上位機(jī)上。同時(shí),若當(dāng)前WiFi 連接正常,WiFi 模塊會(huì)將經(jīng)MCU 處理并封裝的數(shù)據(jù)點(diǎn)協(xié)議報(bào)文發(fā)送到機(jī)智云平臺(tái)服務(wù)器,此時(shí)可通過(guò)登錄機(jī)智云手機(jī)App 實(shí)時(shí)查看各項(xiàng)水質(zhì)信息。系統(tǒng)軟件整體流程如圖9所示。
圖9 系統(tǒng)軟件整體流程Fig.9 System software overall process
系統(tǒng)上位機(jī)軟件基于LabVIEW 開(kāi)發(fā)完成。該上位機(jī)顯示界面采用圖形化的方式展現(xiàn)出所測(cè)得的水體數(shù)據(jù),操作界面也非常友好、簡(jiǎn)單,采用串口通信的方式實(shí)現(xiàn)與STM32 單片機(jī)間的數(shù)據(jù)傳輸。系統(tǒng)上位機(jī)可分為參數(shù)數(shù)值顯示與參數(shù)預(yù)警設(shè)置2個(gè)部分,前者用于顯示當(dāng)前pH、TDS、渾濁度、溫度的具體數(shù)值和曲線圖,便于用戶整體掌握水質(zhì)的具體情況;后者用于設(shè)置水質(zhì)參數(shù)上限值和水質(zhì)數(shù)據(jù)的保存位置,并提供水體污染報(bào)警服務(wù),提醒用戶采取措施抑制水體污染。上位機(jī)部分程序框圖如圖10所示。
由于自主搭建服務(wù)器的成本及難度比較大,因此選用機(jī)智云平臺(tái)作為系統(tǒng)的服務(wù)器,機(jī)智云為一款致力于物聯(lián)網(wǎng)、智能硬件云服務(wù)的開(kāi)發(fā)平臺(tái)。此次水質(zhì)監(jiān)測(cè)系統(tǒng)App 的開(kāi)發(fā)工具為Android Studio。為了使用戶更方便地開(kāi)發(fā)手機(jī)App 并與云服務(wù)器對(duì)接,機(jī)智云公司提供了一套App 的開(kāi)源框架,其框架內(nèi)部已完成App 與云服務(wù)器的通信功能,用戶只需根據(jù)自身功能需求在此框架上進(jìn)行二次開(kāi)發(fā)。
用戶在打開(kāi)手機(jī)App 后,會(huì)提示用戶進(jìn)行注冊(cè),在完成注冊(cè)操作后讓ESP8266 WiFi 模塊進(jìn)入Air-Link 模式,然后手機(jī)App 會(huì)搜索并與當(dāng)前設(shè)備綁定,此時(shí)系統(tǒng)就會(huì)接入無(wú)線局域網(wǎng)絡(luò)與服務(wù)器通信。App 顯示界面如圖11所示。
圖10 部分程序框圖Fig.10 Partial block diagram
圖11 App 顯示界面Fig.11 App display interface
為保證水質(zhì)監(jiān)測(cè)系統(tǒng)采集數(shù)據(jù)的準(zhǔn)確性,需要對(duì)系統(tǒng)進(jìn)行實(shí)際測(cè)試,下位機(jī)運(yùn)行如圖12所示。
測(cè)試試驗(yàn)選取PH-100 高精度pH 測(cè)試筆作為pH 值的標(biāo)準(zhǔn)檢測(cè)儀器;選取SGZ-1000BS 便攜式濁度儀作為渾濁度的標(biāo)準(zhǔn)檢測(cè)儀器;選取格力TDS 檢測(cè)筆作為TDS 與溫度的標(biāo)準(zhǔn)檢測(cè)儀器;選擇實(shí)驗(yàn)室為試驗(yàn)地點(diǎn),接取3 杯自來(lái)水,然后向這3 杯自來(lái)水中由少到多加入pH 值為4.0 的緩沖液、含磷化肥、干燥的泥土及90 ℃開(kāi)水作為待測(cè)溶液,將待測(cè)溶液充分?jǐn)嚢韬箪o置10 s,再分別使用標(biāo)準(zhǔn)檢測(cè)儀器、本文系統(tǒng)進(jìn)行檢測(cè),得到的試驗(yàn)數(shù)據(jù)見(jiàn)表1。
圖12 下位機(jī)運(yùn)行Fig.12 Operation of lower computer
表1 水質(zhì)參數(shù)測(cè)試數(shù)據(jù)Tab.1 Water quality parameter test data
表中,由標(biāo)準(zhǔn)檢測(cè)儀器檢測(cè)的數(shù)據(jù)為標(biāo)準(zhǔn)值,由本系統(tǒng)測(cè)量得到的數(shù)據(jù)為測(cè)量值;每種參數(shù)的3個(gè)數(shù)據(jù)自上而下對(duì)應(yīng)于污染程度逐漸增加的待測(cè)溶液。
經(jīng)過(guò)試驗(yàn)驗(yàn)證,采用所設(shè)計(jì)系統(tǒng)測(cè)量出來(lái)的水質(zhì)參數(shù)與標(biāo)準(zhǔn)值間的誤差均在3%以內(nèi),且上位機(jī)運(yùn)行顯示結(jié)果與下位機(jī)相同,由此表明該系統(tǒng)可以穩(wěn)定地檢測(cè)水質(zhì)各項(xiàng)參數(shù)。上位機(jī)運(yùn)行界面如圖13所示。
圖13 上位機(jī)運(yùn)行界面Fig.13 Host computer operation interface
通過(guò)試驗(yàn)驗(yàn)證,所設(shè)計(jì)的基于物聯(lián)網(wǎng)多參數(shù)水質(zhì)監(jiān)控系統(tǒng)能夠穩(wěn)定運(yùn)行,可以實(shí)現(xiàn)多種方式對(duì)水質(zhì)參數(shù)的實(shí)時(shí)監(jiān)測(cè),且系統(tǒng)造價(jià)低,測(cè)量精度較高。另外,LabVIEW 上位機(jī)人機(jī)交互界面操作簡(jiǎn)單,功能較為豐富,手機(jī)App 顯示界面較為直觀,該系統(tǒng)能夠滿足用戶的絕大部分需求。該系統(tǒng)還可以應(yīng)用于水產(chǎn)養(yǎng)殖等需要監(jiān)測(cè)水質(zhì)的領(lǐng)域,具有較強(qiáng)的應(yīng)用前景[8]。