基于物聯網的多參數水質監測系統設計

摘要: 爲解決傳統水質監測耗時費力、采樣精度低、數據統計困難等問題,設計了基于物聯網的多參數水質監測系統。該系統以STM32微處理器爲控制核心,通過控制內部ADC采集通道對水體溫度、渾濁度、pH值和TDS值進行數據采集,以esp8266模塊與物聯網平台服務器通信,通過串口與LabVIEW上位機進行數據傳輸。同時,用戶可以通過OLED屏、手機App和LabVIEW上位機等3種方式對水質參數進行監測與預警。試驗證明,該系統運行穩定可靠,人機交互界面簡單方便,且測量精度較高。



隨著社會的進步與發展,人們對飲用水、生活用水和養殖用水的水體質量都越來越關注。然而近幾年來水體汙染問題經常發生,這對工農業生産和人民的身體健康都産生了較大威脅[1],因此及時掌握水體的具體情況變得十分必要[2]。


在以往,對水體參數的采集通常使用人工方式測量與記錄,該方式耗時費力,且采集到的數據具有偶然性,也不利于對水體水質進行綜合分析。故在此設計了一套基于物聯網的水質監測系統,該系統能夠實時監測水體的溫度、渾濁度、溶解性固體總量TDS(total dissolved solids)以及酸堿度(pH),並上傳到Lab VIEW上位機生成變化曲線[3-5]。


同時還通過WiFi模塊將水質信息傳輸到機智雲物聯網平台服務器[6],用戶可以通過OLED顯示屏、手機App、Lab VIEW上位機等3種方式查看查看水質參數具體數值。該系統利用物聯網技術解決了時間與空間的限制,便于在任何時間地點查看水質情況,具有較高的研究價值。


1 系統總體結構設計


基于物聯網的水質監測系統下位機圍繞STM32單片機展開工作;溫度、濁度、TDS、p H這4個傳感器模塊用于采集水體參數信息;OLED顯示模塊用于現場顯示水體參數具體數值;USB轉串口模塊負責串口與上位機間數據傳輸;雲服務器負責接收和發送WiFi模塊傳輸過來的數據;手機App負責遠距離監測水質參數;Lab VIEW上位機負責電腦端水質數據監測並提供報警服務。系統總體結構如圖1所示。


基于物聯網的多參數水質監測系統設計

圖1 系統總體結構示意圖


首先,STM32F103C8T6單片機內部ADC將pH、濁度和TDS傳感器采集的模擬信號轉換爲數字信號,由于溫度傳感器的輸出爲數字信號,因此無需A/D轉換。MCU將轉化後的數字信號發送至內部數據緩沖區,利用串行數據總線將數據傳輸到OLED顯示屏實時顯示,並通過USB轉串口模塊將數據傳輸到Lab VIEW上位機。同時,MCU通過USART3把數據發送給WiFi模塊,WiFi模塊再通過TCP/IP協議把數據發送至機智雲物聯網平台服務器保存,這時手機App通過注冊登錄後綁定設備,就可以從服務器接收數據信息,從而查看水質參數。


2 系統硬件設計

2.1 STM32單片機


主控模塊選用STM32F103C8T6微處理器,該單片機功耗小、成本低,功能豐富[7]。其內核爲基于ARM架構32位的Cortex鄄M3 CPU,最高主頻可達72MHz,其具有64 k B Flash,20 k B的SRAM,2個12位ADC,16個ADC采集通道,9個片上通信接口,37個快速I/O端口,因而被廣泛應用于各種低成本的嵌入式産品中。


2.2 濁度傳感器模塊


濁度傳感器采用TSW鄄30濁度模塊。該模塊供電電壓爲5V,最大工作電流爲40 m A,工作溫度爲-20~90℃。因該模塊采集到的爲模擬信號,需要STM32單片機內置ADC轉化爲數字信號才能被MCU讀取使用,在此選取STM32F103C8T6的ADC1的通道1采集濁度參數,其對應單片機引腳爲PA1。濁度傳感器與主控模塊STM32單片機接線如圖2所示。



基于物聯網的多參數水質監測系統設計


圖2 濁度傳感器接線示意圖


2.3 pH值傳感器及溫度傳感器模塊


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


基于物聯網的多參數水質監測系統設計

圖3 PH傳感器接線示意圖


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


基于物聯網的多參數水質監測系統設計

圖4 溫度傳感器接線示意圖


2.4 TDS傳感器模塊


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


基于物聯網的多參數水質監測系統設計

圖5 TDS傳感器接線示意圖


2.5 OLED顯示模塊


由于系統需要顯示數字、英文以及漢字,因此選用2.4384cm的OLED顯示屏。該顯示屏采用IIC通信,僅需連接4個引腳即可使用,非常方便。其與STN32單片機接線如圖6所示。


基于物聯網的多參數水質監測系統設計

圖6 OLED顯示模塊連接示意圖


2.6 Wi Fi及串口通信模塊


Wi Fi模塊采用安信可公司的ESP8266鄄12F模塊。該模塊兼容3.3 V與5 V電壓輸入,在此VCC接3.3 V供電,GND接地,GPIO0接1 kΩ上拉电阻默认设置为工作模式,TXD串口發送引腳接單片機USART3的接收引腳PB10,RXD串口發送引腳接單片機USART3的發送引腳PB11,RST複位引腳默認接1 kΩ上拉电阻,低电平时有效。Wi Fi模塊電路如圖7所示。


基于物聯網的多參數水質監測系統設計

圖7 WiFi模塊電路


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


基于物聯網的多參數水質監測系統設計

圖8 USB轉串口模塊電路


3 系統軟件設計

3.1 主控模塊軟件設計


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


基于物聯網的多參數水質監測系統設計

圖9 系統軟件整體流程


3.2 上位機軟件設計


系統上位機軟件基于Lab VIEW開發完成。該上位機顯示界面采用圖形化的方式展現出所測得的水體數據,操作界面也非常友好、簡單,采用串口通信的方式實現與STM32單片機間的數據傳輸。系統上位機可分爲參數數值顯示與參數預警設置2個部分,前者用于顯示當前p H、TDS、渾濁度、溫度的具體數值和曲線圖,便于用戶整體掌握水質的具體情況;後者用于設置水質參數上限值和水質數據的保存位置,並提供水體汙染報警服務,提醒用戶采取措施抑制水體汙染。上位機部分程序框圖如圖10所示。



3.3雲平台及App的設計與實現


由于自主搭建服務器的成本及難度比較大,因此選用機智雲Aiot開發平台作爲系統的服務器,機智雲爲一款致力于物聯網、軟硬件雲服務的開發平台。此次水質監測系統App的開發工具爲Android Stu鄄dio。爲了使用戶更方便地開發手機App並與雲服務器對接,機智雲公司提供了一套App的開源框架,其框架內部已完成App與雲服務器的通信功能,用戶只需根據自身功能需求在此框架上進行二次開發。


基于物聯網的多參數水質監測系統設計

圖10部分程序框圖


用戶在打開手機App後,會提示用戶進行注冊,在完成注冊操作後讓ESP8266 Wi Fi模塊進入Air鄄Link模式,然後手機App會搜索並與當前設備綁定,此時系統就會接入無線局域網絡與服務器通信。App顯示界面如圖11所示。


基于物聯網的多參數水質監測系統設計

圖11 APP顯示界面


4 系統測試結果與分析


爲保證水質監測系統采集數據的准確性,需要對系統進行實際測試,下位機運行如圖12所示。

測試試驗選取PH鄄100高精度p H測試筆作爲p H值的標准檢測儀器;選取SGZ鄄1000BS便攜式濁度儀作爲渾濁度的標准檢測儀器;選取格力TDS檢測筆作爲TDS與溫度的標准檢測儀器;選擇實驗室爲試驗地點,接取3杯自來水,然後向這3杯自來水中由少到多加入p H值爲4.0的緩沖液、含磷化肥、幹燥的泥土及90℃開水作爲待測溶液,將待測溶液充分攪拌後靜置10 s,再分別使用標准檢測儀器、本文系統進行檢測,得到的試驗數據見表1。


基于物聯網的多參數水質監測系統設計


圖12 下位機運行


表1 水質參數測試數據


基于物聯網的多參數水質監測系統設計

注:NTU(nephelometric turbidityunit)爲散射濁度單位。


表中,由標准檢測儀器檢測的數據爲標准值,由本系統測量得到的數據爲測量值;每種參數的3個數據自上而下對應于汙染程度逐漸增加的待測溶液。


經過試驗驗證,采用所設計系統測量出來的水質參數與標准值間的誤差均在3%以內,且上位機運行顯示結果與下位機相同,由此表明該系統可以穩定地檢測水質各項參數。上位機運行界面如圖13所示。


基于物聯網的多參數水質監測系統設計

圖13 上位機運行界面


5 結語


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