徐思維,楊 帆,龍 坤
(武漢工程大學 電氣信息學院 湖北省視頻圖像與高清投影工程技術研究中心,武漢430205)
隨著社會的進步與發展,人們對飲用水、生活用水和養殖用水的水體質量都越來越關注。然而近幾年來水體污染問題經常發生,這對工農業生產和人民的身體健康都產生了較大威脅[1],因此及時掌握水體的具體情況變得十分必要[2]。
在以往,對水體參數的采集通常使用人工方式測量與記錄,該方式耗時費力,且采集到的數據具有偶然性,也不利于對水體水質進行綜合分析。故在此設計了一套基于物聯網的水質監測系統,該系統能夠實時監測水體的溫度、渾濁度、溶解性固體總量TDS(total dissolved solids)以及酸堿度(pH),并上傳到LabVIEW 上位機生成變化曲線[3-5],同時還通過WiFi 模塊將水質信息傳輸到機智云物聯網平臺服務器[6],用戶可以通過OLED 顯示屏、手機App、LabVIEW 上位機等3 種方式查看查看水質參數具體數值。該系統利用物聯網技術解決了時間與空間的限制,便于在任何時間地點查看水質情況,具有較高的研究價值。
基于物聯網的水質監測系統下位機圍繞STM32單片機展開工作;溫度、濁度、TDS、pH 這4 個傳感器模塊用于采集水體參數信息;OLED 顯示模塊用于現場顯示水體參數具體數值;USB 轉串口模塊負責串口與上位機間數據傳輸;云服務器負責接收和發送WiFi 模塊傳輸過來的數據;手機App 負責遠距離監測水質參數;LabVIEW 上位機負責電腦端水質數據監測并提供報警服務。系統總體結構如圖1所示。

圖1 系統總體結構示意圖Fig.1 Diagrammatic sketch of the overall structure of the system
首先,STM32F103C8T6 單片機內部ADC 將pH、濁度和TDS 傳感器采集的模擬信號轉換為數字信號,由于溫度傳感器的輸出為數字信號,因此無需A/D 轉換。MCU 將轉化后的數字信號發送至內部數據緩沖區,利用串行數據總線將數據傳輸到OLED顯示屏實時顯示,并通過USB 轉串口模塊將數據傳輸到LabVIEW 上位機。同時,MCU 通過USART3 把數據發送給WiFi 模塊,WiFi 模塊再通過TCP/IP 協議把數據發送至機智云物聯網平臺服務器保存,這時手機App 通過注冊登錄后綁定設備,就可以從服務器接收數據信息,從而查看水質參數。
主控模塊選用STM32F103C8T6 微處理器,該單片機功耗小、成本低,功能豐富[7]。其內核為基于ARM 架構32 位的Cortex-M3 CPU,最高主頻可達72 MHz,其具有64 kB Flash,20 kB 的SRAM,2 個12 位ADC,16 個ADC 采集通道,9 個片上通信接口,37 個快速I/O 端口,因而被廣泛應用于各種低成本的嵌入式產品中。
濁度傳感器采用TSW-30 濁度模塊。該模塊供電電壓為5 V,最大工作電流為40 mA,工作溫度為-20~90 ℃。因該模塊采集到的為模擬信號,需要STM32 單片機內置ADC 轉化為數字信號才能被MCU 讀取使用,在此選取STM32F103C8T6 的ADC1 的通道1 采集濁度參數,其對應單片機引腳為PA1。濁度傳感器與主控模塊STM32 單片機接線如圖2所示。

圖2 濁度傳感器接線示意圖Fig.2 Turbidity sensor wiring diagrammatic sketch
水體pH 值測量的pH 電極型號為E-201-C。該模塊供電電壓為5 V,測量pH 值范圍為0~14,工作溫度范圍為0~60 ℃,測量精度為±0.1(20 ℃),響應時間小于1 min。由于pH 值受溫度的影響較大,通常需要進行溫度補償,因此該模塊自帶溫度傳感器連接引腳T0。pH 值傳感器與主控模塊STM32 單片機接線如圖3所示,其中引腳PA0 為STM32 單片機ADC1 的采集通道0。

圖3 pH 傳感器接線示意圖Fig.3 pH sensor wiring diagrammatic sketch
在正常情況下,水體溫度不會發生很大變化。若水溫發生急劇變化通常是由于水體受到污染,因此水體溫度也作為評估水質好壞的一個重要指標。溫度傳感器采用DS18B20 模塊,該模塊接3.3 V 供電,可檢測溫度最高達125 ℃,最低可達-55 ℃,測量精度可達±0.5 ℃。溫度傳感器與pH 傳感器接線如圖4所示。

圖4 溫度傳感器接線示意圖Fig.4 Temperature sensor wiring diagrammatic sketch
水體TDS 值測量采用SEN0244 型模擬TDS 傳感器模塊。該模塊供電電壓為5 V,工作電流范圍為3~6 mA,模擬信號輸出電壓范圍為0~2.3 V,TDS 測量范圍為(0~1000)×10-6,測量精度為±5%。TDS 傳感器與主控模塊STM32 單片機接線如圖5所示,PA2引腳對應為STM32 單片機ADC1 的采集通道2。

圖5 TDS 傳感器接線示意圖Fig.5 TDS sensor wiring diagrammatic sketch
由于系統需要顯示數字、英文以及漢字,因此選用2.4384 cm 的OLED 顯示屏。該顯示屏采用IIC通信,僅需連接4 個引腳即可使用,非常方便。其與STN32 單片機接線如圖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Ω 上拉電阻默認設置為工作模式,TXD 串口發送引腳接單片機USART3 的接收引腳PB10,RXD 串口發送引腳接單片機USART3 的發送引腳PB11,RST 復位引腳默認接1 kΩ 上拉電阻,低電平時有效。WiFi 模塊電路如圖7所示。

圖7 WiFi 模塊電路Fig.7 WiFi module circuit
由于上位機與STM32 單片機的通信方式不同,因此需要USB 轉串口模塊實現兩者間的通信功能。該模塊TXD 與RXD 引腳與STM32 單片機USART1 的RXD 和TXD 引腳連接,從而實現把MCU內部數據緩沖區中的數據傳輸至上位機。USB 轉串口模塊電路如圖8所示。V

圖8 USB 轉串口模塊電路Fig.8 Circuit of USB to serial port module
系統主控模塊軟件部分的開發工具為Keil μVision5,編程語言為C 語言。主控模塊軟件主要有系統初始化程序、定時器中斷程序、傳感器信號采集程序、OLED 顯示程序、WiFi 傳輸程序。當系統通電后首先會對系統各個模塊執行初始化操作,即進行硬件驅動初始化,待初始化完畢后再調用傳感器模塊采集水體數據,采集的數據經MCU 處理后顯示在OLED 顯示屏和LabVIEW 上位機上。同時,若當前WiFi 連接正常,WiFi 模塊會將經MCU 處理并封裝的數據點協議報文發送到機智云平臺服務器,此時可通過登錄機智云手機App 實時查看各項水質信息。系統軟件整體流程如圖9所示。

圖9 系統軟件整體流程Fig.9 System software overall process
系統上位機軟件基于LabVIEW 開發完成。該上位機顯示界面采用圖形化的方式展現出所測得的水體數據,操作界面也非常友好、簡單,采用串口通信的方式實現與STM32 單片機間的數據傳輸。系統上位機可分為參數數值顯示與參數預警設置2個部分,前者用于顯示當前pH、TDS、渾濁度、溫度的具體數值和曲線圖,便于用戶整體掌握水質的具體情況;后者用于設置水質參數上限值和水質數據的保存位置,并提供水體污染報警服務,提醒用戶采取措施抑制水體污染。上位機部分程序框圖如圖10所示。
由于自主搭建服務器的成本及難度比較大,因此選用機智云平臺作為系統的服務器,機智云為一款致力于物聯網、智能硬件云服務的開發平臺。此次水質監測系統App 的開發工具為Android Studio。為了使用戶更方便地開發手機App 并與云服務器對接,機智云公司提供了一套App 的開源框架,其框架內部已完成App 與云服務器的通信功能,用戶只需根據自身功能需求在此框架上進行二次開發。
用戶在打開手機App 后,會提示用戶進行注冊,在完成注冊操作后讓ESP8266 WiFi 模塊進入Air-Link 模式,然后手機App 會搜索并與當前設備綁定,此時系統就會接入無線局域網絡與服務器通信。App 顯示界面如圖11所示。

圖10 部分程序框圖Fig.10 Partial block diagram

圖11 App 顯示界面Fig.11 App display interface
為保證水質監測系統采集數據的準確性,需要對系統進行實際測試,下位機運行如圖12所示。
測試試驗選取PH-100 高精度pH 測試筆作為pH 值的標準檢測儀器;選取SGZ-1000BS 便攜式濁度儀作為渾濁度的標準檢測儀器;選取格力TDS 檢測筆作為TDS 與溫度的標準檢測儀器;選擇實驗室為試驗地點,接取3 杯自來水,然后向這3 杯自來水中由少到多加入pH 值為4.0 的緩沖液、含磷化肥、干燥的泥土及90 ℃開水作為待測溶液,將待測溶液充分攪拌后靜置10 s,再分別使用標準檢測儀器、本文系統進行檢測,得到的試驗數據見表1。

圖12 下位機運行Fig.12 Operation of lower computer

表1 水質參數測試數據Tab.1 Water quality parameter test data
表中,由標準檢測儀器檢測的數據為標準值,由本系統測量得到的數據為測量值;每種參數的3個數據自上而下對應于污染程度逐漸增加的待測溶液。
經過試驗驗證,采用所設計系統測量出來的水質參數與標準值間的誤差均在3%以內,且上位機運行顯示結果與下位機相同,由此表明該系統可以穩定地檢測水質各項參數。上位機運行界面如圖13所示。

圖13 上位機運行界面Fig.13 Host computer operation interface
通過試驗驗證,所設計的基于物聯網多參數水質監控系統能夠穩定運行,可以實現多種方式對水質參數的實時監測,且系統造價低,測量精度較高。另外,LabVIEW 上位機人機交互界面操作簡單,功能較為豐富,手機App 顯示界面較為直觀,該系統能夠滿足用戶的絕大部分需求。該系統還可以應用于水產養殖等需要監測水質的領域,具有較強的應用前景[8]。