摘要:ZigBee由于具有低功耗、低成本、短時延、高安全和自組網等優點,被廣泛應用在各種工作領域。本文設置CC2530為通信芯片,STMF103為主控芯片作為系統的硬件電路和軟件部分,將電導率模塊、pH模塊和DS18B20溫度模塊的信息傳輸到上位機,利用ZigBee自組網可以在上位機上讀取水域不同位置的水體信息。實驗結果表明,本文制作的水質監控具有低功耗、實時性高等優點。
關鍵詞:ZigBee;水質監控;自組網
Abstract: ZigBee is widely used in various fields due to its advantages such as low power consumption, low cost, short time delay, high security and AD hoc network. In this paper, CC2530 is used as the communication chip and STMF103 as the main control chip as the hardware circuit and software part of the system. The information of conductivity module, pH module and DS18B20 temperature module is transmitted to the upper computer, and ZigBee AD hoc network can be used to read the information of water bodies at different positions in a sea area on the upper computer. The experimental results show that the water quality monitoring produced in this paper has the advantages of low power consumption and high real-time performance.
Key words: ZigBee; Water quality monitoring; Ad-hoc network
1 引言
對于較大水域其不同區域的溫度、pH和電導率等會存在差異,為了得到水體的綜合信息,因此需要機器來對水體各個區域的水質信息進行采集和上傳。對于室外水產的養殖,環境復雜多變,設備需要長時間在水中工作,這要求設備要具有較高的續航能力。同時為了確保水體信息的實時性,往往需要多個機器協同工作[1、2]。為了解決設備的續航里程和成本高等問題,本文以ZigBee作為無線通信技術,以STM32為主控芯片,將電導率模塊、pH模塊和DS18B20溫度模塊采集的水質信息傳輸到終端,利用ZigBee自組網可以在上位機上讀取到一片海域不同位置的水體信息[3、4]。
2 硬件設計
為了檢測和上傳水域的pH、溫度和電導率,采用雷磁pH復合電極E-201-C作為pH計,再通過4502AC將信號放大,把pH值轉化為模擬電壓傳給單片機。溫度檢測采用DS18B20不銹鋼封裝模塊。電導率檢測使用的是量程為0到44000μs/cm的EC變送器。ZigBee采用DL-LN32P模塊,該模塊內部封裝了通訊協議,單片機只需通過串口發送就可以使其把數據發生出去。
STM32F103ZET6作為MCU,對各個模塊的信息進行讀取,并且通過ZigBee把數據發生出去。
圖1 硬件組成部分
2.1 求解pH的線性方程
液體的pH值取決于液體中氫離子的濃度,通過測量電極系統被測液構成的測量電池的電動勢,可得到被測液體氫離子活度。從傳感器電極系統中獲得的電壓信號與氫離子的活度有對應關系。依據能斯特方程,電極反應中物質從一相轉移到另一相時需要消耗能量[5],其表達式表示為:
E=E0-S×pH (1)
其中S=RT/nF=54.20+0.1984×t為理論斜率項;氣體常數R=8.14焦耳/摩×克分子;法拉第常數F=96500庫/摩;N為離子化合價,對于氫離子n=1;T=273.15;t為檢測的被測液體的攝氏溫度,E0為等電勢點的點位,E即為傳感器電極在被測液體作用下的輸出電位。
由于玻璃電極的制作工藝等原因,式(1)中的E0和S的實際值會發生改變,需要通過已知標準液對上述參數進行測定。常用的標準液為苯二甲酸氫鉀(pH=4.01)、硼砂(pH=9.18)和混合磷酸鹽(pH=6.86),根據被測液體的酸堿度,適當地選擇兩種標準溶液。當被測液體呈酸性時,選擇pH=4.01和pH6.86的標準溶液校正;當被測液體呈堿性時,選擇pH=6.86和pH=9.18的標準溶液進行校正;當被測液體pH使用范圍較大時或者不確定時,可以選擇pH=4.01和pH=9.18的標準溶液進行校正[6、7]。雷磁pH復合電極E-201-C的具體校正方法如下:
將電極放入混合磷酸鹽(pH=6.86)溶液中,用電壓表測試模擬輸出電壓,調節運放板上的電位器使得輸出電壓為1.7V。再將電極用蒸餾水清洗干凈并且玻璃電極上無水滴后放入苯二甲酸氫鉀(pH=4.01)標準溶液中,記錄輸出電壓。重復上面步驟,得出硼砂(pH=9.18)標準溶液的輸出電壓。由式(1)可知模擬電壓U與pH為線性關系,可以設線性方程為:
pH=a×U+b (2)
把得到的數據帶入到,可得到pH與雷磁pH復合電極E-201-C模塊的輸出電壓關系。
3 軟件設計
軟件部分分為DS18B20溫度數據的讀取、pH模塊和電導率模塊的AD采樣和轉換、ZigBee數據發送、上位機讀取ZigBee數據等幾大模塊,圖2為軟件設計總體流程。在完成所有的初始化工作后,需要先讀取DS18B20的數據,由于DS18B20的讀取時間需要大于50ms,所以讀取數據的頻率不宜過高。為了數據的準確性,設置了每200ms讀取一次數據,共讀取5次并取平均值作為最終數據發送到上位機顯示。
圖2 軟件設計流程圖
3.1 pH模塊和電導率模塊
pH模塊和電導率模塊輸出的都是模擬電壓,需要通過STM32的ADC將其轉化為數字信息,讀取到的數據為0~4096范圍。pH模塊需要軟件把ADC的數值歸一化到0~3.3V后作為電壓帶入到式(2)中。由于電導率模塊輸出模擬電壓與電導率成正比,所以只需要將轉換后的數值歸一到0~44ms/cm即可[8]。但是由于式(2)中的參數a和b均受溫度影響,所以最終得到的pH值需要進行溫度補償,由式(2)可知,最終溫度補償后的pH需要乘以T0/T(T0為尋找方程時液體溫度,T為當前液體溫度)。
3.2 ZigBee模塊
DL-LN23P ZigBee模塊內部集成了通信協議,所以通過串口向其發送數據包即可。軟件上通過主控芯片的USART1外設對ZigBee進行通信,為了數據傳輸的準確,設置USAR1的中斷優先級為0。需要上位機發送FE
05 90 90 XX XX FF(XX XX為目的設備地址)來得到某個ZigBee設備的信息[9、10]。
3.3 基于C#編寫的上位機
上位機作用時對串口數據進行采集并且顯示。圖3為上位機初始界面。開始時選擇好串口和波特率,在發送按鈕左邊的方框內輸入FE 05 90 90 03 00 00 FF,自動采樣周期選擇1000ms。電導率、pH和溫度的右方分布有兩個小方框,上面和下面的分別為最大和最小值,大于最大值或小于最小值上位機都會報警。按下自動采樣后,上位機會自動繪制圖表。
圖3 上位機初始界面
4 系統測試
系統基于ZigBee對水質信息(電導率、pH和水溫)進行傳輸,為了檢測pH和水溫的準確,需要與電子pH計進行對比。本文搭建了ZigBee水質系統測試平臺,對制作完成的基于ZigBee通信的遠程水質監控系統進行了軟硬件調試。
將地址為0001的ZigBee模塊通過USB轉串口模塊接入電腦,打開上位機,設置好具體參數然后點擊自動采樣。如圖4所示為酸性條件下上位機實時曲線,表1為酸性條件下上位機顯示數據。通過STM32單片機的定時器計數延時約為50ms,將報警參數設置在接受到的數據之上或之下,觀察旁邊是否有小感嘆號顯示以及警報聲發出。由于數據是先壓縮為0~255區間范圍內,再由上位機解碼,所以數據會與下位機發出數據有偏差,誤差精度為0.01。
圖4 酸性條件下上位機實時曲線
表1 酸性條件下上位機顯示數據
5 小結
本文搭建了ZigBee水質檢測測試平臺,對水質檢測和通過ZigBee模塊與上位機通信進行了軟硬件的試驗,并用電子pH計進行對比以及在上位機中顯示,驗證了本文所設計的硬件和軟件部分均能正常穩定工作。同時通過測試不同溫度和pH等的液體來和電子pH計進行對比和在上位機中顯示,并且顯示延時在300ms以內,證明了該基于ZigBee通信的水質檢測系統的可行性、短延時和可靠性。
基金項目:廣東海洋大學“創新強校工程”項目(Q14580);大學生創新創業訓練計劃項目(CXXL2019262; CXXL2019268)
參考文獻:
[1] Hossein Alilou, Alireza Moghaddam Nia, Mohsen MohseniSaravi, Ali Salajegheh,Dawei Han,Bahram Bakhtiari Enayat. A novel approach for selecting sampling points locations to river water quality monitoring in data-scarce regions[J]. Journal of Hydrology, 2019, 573.
[2] 賈爍. 基于北斗衛星系統的海洋水文實時監測系統研究[D]. 海南:海南大學, 2018.
[3] 李紅杰.基于浮標的近海海洋環境監測與接入技術[D].成都:電子科技大學, 2016.
[4] 陳志坤. 東江水資源水量水質監控系統數據集成[J]. 廣東水利水電, 2018, ( 12 ) : 26 - 30.
[5] 王士明, 俞阿龍, 楊維衛, 等. 基于ZigBee的大水域水質環境監測系統設計[J]. 傳感器與微系統, 2014, ( 11 ) : 102 - 105.
[6] 李杰, 劉佳. 基于ZigBee的飲水機監控系統設計[J]. 產業與科技論壇, 2018, ( 7 ) : 59 - 60.
[7] 申偉, 杜文娟. 基于ZigBee無線傳感技術的水庫水質多參數監控系統[J]. 通信與信息處理, 2018, ( 4 ) : 40 - 43.
[8] 嚴麗平, 宋凱. 基于ZigBee與GPRS的嵌入式水質檢測系統設計[J]. 計算機工程與設計, 2011, ( 5 ) : 1638 - 1640.
[9] 張虎, 肖惠云. 無線通訊技術在工業領域中的應用[J]. 自動化博覽, 2018 , 35 ( 11 ) : 124 - 130.
[10] 范利平, 王志堅. 融合GPRS技術的ZigBee無線網路水質檢測系統的設計[J]. 長沙大學學報, 2012, ( 26 ) : 55 - 56.
作者簡介:
林 聰(1988-),男,廣東湛江人,講師,現任教于廣東海洋大學,研究方向為智能控制與智能自動化。
于 躍(1991-),女,吉林通化人,講師,現任教于廣東海洋大學,主要研究方向為電力電子技術、智能
控制技術。
盧葉楓(1997-),男,廣東懷集人,現就讀于廣東海洋大學,研究方向為嵌入式技術。
肖賢哲(1999-),女,廣東廣州人,現就讀于廣東海洋大學,研究方向為嵌入式技術。
摘自《自動化博覽》2020年1月刊