王思南,徐國保,黃清文,陸國富,李廣泰,潘啟潤
(廣東海洋大學(xué)電子與信息工程學(xué)院,湛江524088)
隨著我國科學(xué)的進(jìn)步與發(fā)展,人們的生活水平不斷提高,對水質(zhì)的要求也越來越高。但由于人類活動的頻繁,導(dǎo)致水土嚴(yán)重流失、水源也被污染,河水的成分也變得越來越復(fù)雜,水質(zhì)中的有害成分也相應(yīng)增多,飲用水的處理難度也越來越大。所以水污染問題日漸成為影響我國經(jīng)濟(jì)社會發(fā)展的重要因素。
對于環(huán)境治理來說,水質(zhì)監(jiān)控具有十分重要的意義。我們可以通過水質(zhì)監(jiān)控節(jié)點得到詳細(xì)的水質(zhì)數(shù)據(jù),確定該地區(qū)河水中污染物的分布情況,從而可以確定出污染的來源、污染的路徑、消長規(guī)律等,進(jìn)而確定出水中污染物的變化規(guī)律,并分析出污染的原因,再評價出該污染對周圍環(huán)境和人員的影響,從而對該污染源進(jìn)行相應(yīng)的預(yù)防和治理[1]。
隨著無線傳感器網(wǎng)絡(luò)技術(shù)的日益完善,其應(yīng)用領(lǐng)域也在不斷擴(kuò)大。無線傳感器網(wǎng)絡(luò)(WSNs)是由大量的監(jiān)控節(jié)點構(gòu)成一個適合人們使用的自治網(wǎng)絡(luò)系統(tǒng),是可以依據(jù)當(dāng)時的環(huán)境來自主完成各種各樣的監(jiān)測任務(wù)的“智能”系統(tǒng)[2-3]。本文研究主要實現(xiàn)了基于ZigBee無線通信協(xié)議和STM32的多點水質(zhì)在線監(jiān)測系統(tǒng),構(gòu)建了ZigBee子網(wǎng)通訊模塊、STM32數(shù)據(jù)處理模塊以及上位機(jī)人機(jī)交互界面三層架構(gòu)的在線監(jiān)測框架。該系統(tǒng)的作用是實現(xiàn)對監(jiān)控水域的遠(yuǎn)程監(jiān)控,和有線監(jiān)控系統(tǒng)相比其節(jié)約大量的監(jiān)控成本,具有十分高的通用性和實用性。
該系統(tǒng)主要分為四個部分包括水質(zhì)監(jiān)測節(jié)點、Zig?Bee組網(wǎng)、無線數(shù)據(jù)傳輸模塊、遠(yuǎn)程監(jiān)控中心。每個水質(zhì)監(jiān)測節(jié)點都是以STM32單片機(jī)作為最小系統(tǒng)并在其安裝多個傳感器模塊進(jìn)行采集水溫、太陽能電池電壓、水質(zhì)pH值、水的濁度等水質(zhì)環(huán)境數(shù)據(jù),并且這些節(jié)點皆以太陽能電池板和鋰電池雙重供電,以保證系統(tǒng)的正常工作。然后通過ZigBee將每個節(jié)點組成一個網(wǎng)絡(luò),將每個節(jié)點的數(shù)據(jù)匯總到其中一個具有GPRS模塊的主節(jié)點上,然后再通過該節(jié)點連接服務(wù)器來進(jìn)行數(shù)據(jù)的發(fā)送,電腦上位機(jī)進(jìn)行下載數(shù)據(jù)最后呈現(xiàn)在監(jiān)測者面前,并且數(shù)據(jù)能夠隨時或自動保存在電腦上。在上位機(jī)上,我們隨時可以通過發(fā)送特定的指令來獲取任意一個節(jié)點的水質(zhì)數(shù)據(jù),通過上位機(jī)也可以設(shè)置每個節(jié)點定時發(fā)送數(shù)據(jù)。除此之外,本系統(tǒng)主節(jié)點可以定時檢查是否有節(jié)點出現(xiàn)故障并能及時反饋數(shù)據(jù)到上位機(jī),系統(tǒng)總體框架圖如圖1所示。
圖1 總體設(shè)計框圖
該水質(zhì)監(jiān)控系統(tǒng)的硬件設(shè)計主要由微處理器模塊、數(shù)據(jù)采集模塊、ZigBee無線通信模塊、GPRS模塊、太陽能供電模塊組成。其中各種傳感器的選擇都是依據(jù)低功耗、綠色、體積小的原則去選擇的。
溫度傳感器采用的是不銹鋼封裝、防水型的DS18B20傳感器。該傳感器測量的溫度范圍是-55°C~+125°C。當(dāng)溫度在-10°C~+85°C 時,精度是±0.5°C。通常情況下,監(jiān)測環(huán)境的溫度我們都是以“一線總線”的數(shù)字方式進(jìn)行傳輸?shù)?。這樣做的目的是提高系統(tǒng)抗干擾能力。為了防止短路,防水防潮,DS18B20溫度傳感器的芯片每個引腳都用熱縮管隔開,內(nèi)部還封了膠。綜上所述,該款傳感器十分適合水質(zhì)環(huán)境的溫度測量。DS18B20溫度傳感器的單總線復(fù)位時序圖如圖2所示。
圖2 DS18B20單總線復(fù)位時序圖
pH值的檢測主要采用的是pH傳感器模塊。該款傳感器模塊的工作電壓在5±0.2V,檢測的pH值濃度范圍是0-14。pH值檢測的原理主要是將測量電極與參比電極制造成一個整體,測量電極是玻璃電極,而銀氯則化為參比電極。由于被測液體的離子濃度變化會導(dǎo)致測量電極的電位變化,而參比電極的離子濃度是不會變的,所以電位恒定。根據(jù)能斯特方程[4],我們知道測量極電位、參比電極電位和被測液體pH值之間滿足以下公式:
其中:Ex表示的是復(fù)合電極電位(mV),E0表示的是標(biāo)準(zhǔn)電極電位(mV),R表示的是氣體常數(shù),T表示的是開氏絕對溫度,F(xiàn)表示的是法拉弟常數(shù)。
所以,我們可以通過STM32單片機(jī)獲取pH電極的輸出信號,然后通過上述公式,將這個輸出信號轉(zhuǎn)換成對應(yīng)的pH值。
濁度傳感器主要是利用光學(xué)原理,通過液體溶液中的透光率和散射率來綜合判斷濁度情況,因為濁度值是一個漸變量,所以在動態(tài)環(huán)境下進(jìn)行檢測時,傳感器采集的濁度值需要外接控制進(jìn)行AD轉(zhuǎn)換,換算得到對應(yīng)環(huán)境下的濁度情況。由于其帶有防水探頭,所以十分適合于水質(zhì)環(huán)境的濁度檢測。
電壓采集使用STM32自帶的ADC模塊,STM32擁有 1~3個 ADC(STM32F101/102系列只有 1個ADC),STM32提供的ADC除了可以獨立使用外,還可以使用雙重模式(提高采樣率)。它除了具有18個通道外,還具有16個可測量的外部信號源和2個內(nèi)部信號源。A/D轉(zhuǎn)換器具有幾種工作模式,分別是單次模式、連續(xù)模式、掃描模式或間斷模式。數(shù)據(jù)經(jīng)過ADC轉(zhuǎn)換后的結(jié)果可以通過左對齊或右對齊的方式存儲在16位的數(shù)據(jù)寄存器中。我們通過模擬看門狗的特性,允許應(yīng)用程序檢測輸入的電壓是否超出用戶定義的高/低閾值。采集的電壓比較精準(zhǔn),同時STM32可以對采集到的各個數(shù)據(jù)進(jìn)行處理,上傳到上位機(jī)[5]。
該系統(tǒng)的數(shù)據(jù)處理使用的是STM32F103系列的32位ARM微控制器。這系列芯片都是意法半導(dǎo)體(ST)公司生產(chǎn)的,其搭載的內(nèi)核是Cortex-M34。該系列芯片的應(yīng)用很廣,價格低廉,功能強(qiáng)大,安全性較高。同時該芯片還可以工作在低功耗或者睡眠模式,此時的功耗很低,很適合使用在間接傳輸數(shù)據(jù)。
STM32F103系列的芯片,它無需操作系統(tǒng),也可以像單片機(jī)一樣使用Keil C語言進(jìn)行編程,極大地減少了開發(fā)者的工作量[7]。STM32F103系列的芯片工作頻率為72MHz,里面含有1個高速存儲器(高達(dá)128K字節(jié)的Flashmemory和20K字節(jié)的SRAM),豐富的I/O端口和連接到兩條APB總線的外設(shè)。最重要的是,該處理器還含有十分充足的資源,如ADC模塊、通用定時器、PWM定時器,還含有各種各樣的通信接口:如I2C、SPI、USART、USB和CAN 總線。這些資源使得該處理器可以應(yīng)用在多個領(lǐng)域,如電機(jī)驅(qū)動、監(jiān)控系統(tǒng),等等。
ZigBee無線通信模塊采用的是DL-20無線串口透傳模塊。該模塊選用的射頻芯片是由TI公司生產(chǎn)的符合ZigBee標(biāo)準(zhǔn)協(xié)議的射頻芯片——CC2530,其不僅兼容2.4 GHz IEEE802.15.4的通訊協(xié)議,還支持Zig?Bee PRO網(wǎng)絡(luò)協(xié)議棧。我們之所以選擇這款射頻芯片的原因是:第一,它的頻段是一個全球通用的頻段;第二,這款無線傳輸模塊的頻段好,而且數(shù)據(jù)傳輸?shù)乃俣缺容^快;第三,其還允許系統(tǒng)的共存;第四,該款無線傳輸模塊的天線體積比較小,具有硬件體積小的優(yōu)勢,還滿足了一些特殊設(shè)備對狹小空間的要求。因此這芯片十分適合用作水質(zhì)監(jiān)測的ZigBee無線通信模塊。組網(wǎng)的流程如圖3所示。
圖3 組網(wǎng)圖
水質(zhì)監(jiān)測節(jié)點和上位機(jī)的交互主要使用的是GPRSA6模塊。該模塊的工作電壓在3.3V-4.2V之間,支持GSM/GPRS的四個頻段,包括850,900,1800,1900MHz。只要在有GPRS網(wǎng)絡(luò)的地方都能進(jìn)行通訊,所以通訊距離能達(dá)到很遠(yuǎn)。而且其尺寸小、功耗低、工作范圍廣,所以十分適合用于水質(zhì)檢測。數(shù)據(jù)采集及發(fā)送的流程圖如圖4所示。
由于我們的監(jiān)控節(jié)點一般在水面上,有線供電傳輸是不太可能的,而只使用鋰電池的話,更換電池時又浪費大量的人力物力。所以我們使用了太陽能電池板和鋰電池雙重供電的方法。
太陽光照耀大地時,沒有地域的限制,無論陸地或海洋,都處處皆有。太陽能是很好的能源供給模塊,由太陽能電池板、充放電控制器、鋰電池組成。太陽能供電模塊能很好地為系統(tǒng)提供能源,通過鋰電池的充放電可以讓系統(tǒng)在晚上或者陰天也能夠正常的工作。供電模塊如圖5所示:
圖4 采集數(shù)據(jù)并發(fā)送流程圖
圖5 太陽能供電模塊的結(jié)構(gòu)
上位機(jī)的設(shè)計主要通過圖形化的編程系統(tǒng),設(shè)計者可以輕松的組建監(jiān)控系統(tǒng),構(gòu)建良好的人際交互界面。開發(fā)維護(hù)較為方便,簡化程序設(shè)計。而且可以輕松的保存所有的數(shù)據(jù)在電腦上,以便隨時調(diào)用出來。水質(zhì)環(huán)境監(jiān)控系統(tǒng)主要對終端監(jiān)控節(jié)點進(jìn)行手動或自動的控制。例如,上位機(jī)可以發(fā)送指定指令隨時獲得任意一個節(jié)點的水質(zhì)數(shù)據(jù),也可以通過上位機(jī)設(shè)置每個節(jié)點定時發(fā)送數(shù)據(jù)。運行監(jiān)控軟件的主機(jī),需要固定的IP地址或者能夠進(jìn)行動態(tài)域名解析到固定域。圖6是上位機(jī)的界面圖。通過上位機(jī)還可以輕松的查看一整天的數(shù)據(jù)波形,對水質(zhì)環(huán)境進(jìn)行分析。
圖6 上位機(jī)界面圖
本系統(tǒng)設(shè)計是基于STM32芯片和ZigBee無線傳感網(wǎng)絡(luò)為底層節(jié)點,通過GPRS無線通信模塊和上位機(jī)進(jìn)行信息的交流,最終形成一個功能十分強(qiáng)大的水質(zhì)環(huán)境監(jiān)控系統(tǒng)。這款監(jiān)控系統(tǒng)可以通過底層的終端節(jié)點,來監(jiān)測水質(zhì)的pH值、水質(zhì)的濁度和水的溫度等的水質(zhì)監(jiān)測數(shù)據(jù)。我們可以通過這些水質(zhì)數(shù)據(jù),進(jìn)行相關(guān)的行動與措施。這樣可以減少工作人員的工作量,提高工作效率,合理地利用資源。通過測試,我們的這款水質(zhì)監(jiān)測軟件,其操作界面簡單、功能齊全、成本低,具有極高的應(yīng)用價值。