祝 鵬,畢偉偉,賈雨奇,孫大奇
(內(nèi)蒙古農(nóng)業(yè)大學(xué)職業(yè)技術(shù)學(xué)院,內(nèi)蒙古自治區(qū) 包頭 014109)
水質(zhì)問題歷來是人們關(guān)注的熱點問題,水質(zhì)狀況對生產(chǎn)生活會產(chǎn)生很大的影響。由于水污染引起的社會問題時常見諸于報端,因此及時、準確地掌握水環(huán)境的具體情況是十分必要和迫切的。以往水質(zhì)監(jiān)測主要采取人工方式開展,既耗時費力,又具有隨機性,不能實現(xiàn)對水質(zhì)的全面分析[1],而隨著物聯(lián)網(wǎng)技術(shù)以及傳感技術(shù)的發(fā)展,水質(zhì)監(jiān)測的信息化程度逐步提升,現(xiàn)有水質(zhì)監(jiān)測的方法大都是將若干個傳感器采集到的信息進行融合后得到相對較為全面的分析結(jié)果[2,3],依托平臺大都是ARM 平臺,少部分是STM32 平臺,無論是硬件成本,還是開發(fā)效率、復(fù)雜度等方面,STM32 更為簡單、實用[4]。因此,以STM32F103C8T6 為控制核心設(shè)計了一套基于物聯(lián)網(wǎng)的水質(zhì)監(jiān)測系統(tǒng),實時采集并同步顯示pH 值、溫度、濁度、TDS等參數(shù)信息,解決了傳統(tǒng)監(jiān)測時空間的限制,具有實時性高,可靠性強,擴展性好等優(yōu)點。
系統(tǒng)以STM32F103C8T6 微控制器為控制核心,以pH傳感器、溫度傳感器、濁度傳感器和TDS 傳感器等設(shè)備采集pH 值、溫度、濁度、TDS 等參數(shù),經(jīng)過數(shù)據(jù)處理后將相應(yīng)數(shù)據(jù)信息顯示到OLED 屏上,同時采集的數(shù)據(jù)利用ESP8266 wifi 模塊上傳到阿里云物聯(lián)網(wǎng)平臺服務(wù)器,通過手機APP 對水質(zhì)參數(shù)進行遠程監(jiān)測。系統(tǒng)的總體硬件結(jié)構(gòu)框圖如圖1 所示,由主控模塊(STM32F103C8T6 芯片)、信息采集模塊(pH 值傳感器和溫度傳感器模塊、TDS 傳感器模塊、濁度傳感器模塊)、通信模塊、人機交互模塊、電源模塊5 部分組成。
圖1 系統(tǒng)整體結(jié)構(gòu)圖Fig.1 The system structure diagram
主控模塊選用STM32F103C8T6 芯片,該芯片是基于ARM Cortex-M3 內(nèi)核的32 位CPU,具有功耗低、電壓低(2V ~3.6V)、性能優(yōu)良、實時性好等特點,主頻72MHz,64KB 的FLASH 存儲器,20KB 的SRAM 存儲器,具有兩個12 位ADC,7 通道DMA 控制器,3 個通用定時器和1 個高級控制定時器,37 個快速I/O 端口,通訊接口豐富,可連接2 個SPI、2 個I2C、3 個USART、1 個USB 和1 個CAN接口。
信息采集模塊主要完成pH 值、溫度、濁度、TDS 等參數(shù)的采集工作,除溫度傳感器采集的數(shù)據(jù)是數(shù)字量外,pH 值傳感器模塊、TDS 傳感器模塊、濁度傳感器模塊采集的數(shù)據(jù)均為模擬量[5],需要由主控芯片內(nèi)部的ADC 轉(zhuǎn)換成數(shù)字量,隨后發(fā)送到芯片內(nèi)部的數(shù)據(jù)緩沖區(qū),供后續(xù)OLED 顯示、通信模塊等使用。
2.2.1 pH值傳感器和溫度傳感器模塊
pH 值傳感器和溫度傳感器模塊由DS18B20 防水型溫度探頭、E-201-C 型pH 復(fù)合電極和處理電路組成。其中,DS18B20 防水型溫度探頭采用“一線總線”接口(1-Wire),測溫范圍為-55℃~+125℃,檢測精度為±0.5℃,采用XH2.54 接口與處理電路連接,方便進行軟件溫度補償設(shè)計;E-201-C 型pH 復(fù)合電極采用BNC 接口與處理電路連接,測量范圍0pH ~14pH,精度±0.01pH(25℃),響應(yīng)時間為≤1min;處理電路由TLC4502 自校準運算放大器、LM285D 電壓基準芯片等組成,實現(xiàn)對pH 值信號的電壓跟隨、信號放大以及整個0 ~14 采集區(qū)間內(nèi)的pH 值的完整采集。整個模塊采用5V 供電,pH 值輸出(模擬量輸出,輸出電壓范圍為0V ~2.5V)連接主控芯片的PA0 引腳,對應(yīng)主控模塊ADC1 采集通道0,溫度傳感器輸出連接主控芯片的PB12 引腳。
2.2.2 TDS傳感器模塊
TDS 傳感器模塊由TDS 探頭和處理電路組成,其中TDS 探頭采用XH2.54 接口與處理電路連接,測量范圍為0ppm ~1000ppm,測量精度為±5%,激勵源為交流信號,有效防止探頭老化,同時采取防水設(shè)計,可長期浸入水中測量。處理電路由LMV342ID 運算放大器、CD4060BM96計數(shù)器和ME6206 降壓型電壓穩(wěn)壓器組成,實現(xiàn)對TDS 信號的采集。整個模塊采用5V 供電,TDS 信號輸出(模擬信號輸出,輸出電壓范圍為0V ~2.3V)連接主控芯片的PA5 引腳,對應(yīng)主控模塊ADC1 采集通道5。
2.2.3 濁度傳感器模塊
濁度傳感器模塊由濁度傳感器探頭TSW-30 和處理電路組成,其中TSW-30 主要由發(fā)光二極管和光電晶體管等組成?;诠鈱W(xué)原理,通過發(fā)光二極管光源發(fā)出的光經(jīng)過污水反射,部分光傳播到光電晶體管,根據(jù)接收到的光線量計算出水的濁度。其測量的比率范圍(NTU)為0 ~1000,精度為±30,需要的電壓為5V,輸出電壓為0 ~5V。處理電路主要由LMV342ID 運算放大器、電平轉(zhuǎn)換器等器件組成,濁度傳感器的信號輸出(模擬信號輸出,輸出電壓范圍為0V ~3.3V)連接主控芯片的PA1 引腳,對應(yīng)主控模塊ADC1 采集通道1。
通信模塊由ESP8266 模塊、阿里云物聯(lián)網(wǎng)平臺和手機APP 組成。其中,ESP8266 模塊是物聯(lián)網(wǎng)常用模塊,兼容3.3V、5V 電壓輸入,采用串口(LVTTL)與單片機(或其它串口設(shè)備)通信,內(nèi)置TCP/IP 協(xié)議堆棧,可實現(xiàn)串口和wifi 間的轉(zhuǎn)換,其使用傳輸指定命令實現(xiàn)控制,手機端可以通過wifi 連接ESP8266 所提供的wifi 進行相應(yīng)命令的收發(fā),把提前設(shè)置好的命令參數(shù)通過連接ESP8266 的wifi 傳入模塊,再通過ESP8266 與單片機間的串口連接進行通訊,把數(shù)據(jù)傳入單片機并執(zhí)行相應(yīng)指令。
電源模塊提供整個電路工作的電壓,主要由3.3V 電壓、5V 電壓組成,其中3.3V 電壓由5V 電壓利用電壓比較器生成,主要給主控模塊和ESP8266 供電,5V 電壓主要給信息采集模塊的各傳感器模塊、OLED 顯示模塊等供電。人機交互模塊由OLED 組成,采用0.96 英寸OLED 顯示屏為數(shù)據(jù)采集終端的顯示區(qū),采用I2C 協(xié)議與主控模塊進行通信,SCL 連接主控芯片的PB6 引腳,SDA 連接主控芯片的PB7引腳。
基于物聯(lián)網(wǎng)的水質(zhì)監(jiān)測系統(tǒng)軟件設(shè)計,主要由主控模塊程序設(shè)計、云平臺及APP 的設(shè)計組成。主控模塊程序設(shè)計主要完成各傳感器模組數(shù)據(jù)采集,OLED 顯示屏通信,ESP8266 模塊底層通信和控制,以及將采集的數(shù)據(jù)上傳到云端。云平臺負責(zé)從ESP8266 接收采集,提供數(shù)據(jù)訪問服務(wù),APP 負責(zé)與云平臺通信,呈現(xiàn)水質(zhì)監(jiān)控數(shù)據(jù)信息。
以主程序為核心框架,總體程序流程為系統(tǒng)上電運行,執(zhí)行系統(tǒng)及設(shè)備初始化,接著執(zhí)行傳感器數(shù)據(jù)采集程序采集溫度、濁度、TDS、pH 等參數(shù)信息,由OLED 進行顯示,并且通過wifi 通信模塊上傳到云端,由云平臺及APP 顯示,具體如圖2 所示。
圖2 程序主流程圖Fig.2 The system main program flow chart
云平臺采用阿里云物聯(lián)網(wǎng)平臺,兼容多種通信協(xié)議,例如MQTT、CoAP、HTTP 等,并提供了數(shù)據(jù)存儲、設(shè)備管理、規(guī)則引擎、消息通信等全方位物聯(lián)網(wǎng)服務(wù),方便快速建立和部署物聯(lián)網(wǎng)應(yīng)用。首先在平臺上創(chuàng)建設(shè)備,在設(shè)備管理中查看設(shè)備的三元組(ProductKey、DeviceName、DeviceSecret),然后在ESP8266 上安裝MQTT 客戶端庫,最后編寫程序,連接阿里云MQTT 服務(wù)器,使用三元組進行認證,并發(fā)布/訂閱需要的主題[6,7]。
APP 采用云智能APP,先開通阿里云云智能APP 服務(wù),其次在云智能APP 控制臺中創(chuàng)建應(yīng)用,設(shè)置應(yīng)用名稱、圖標、描述等信息,配置相關(guān)服務(wù)和權(quán)限,隨后下載并集成SDK,最后在本地環(huán)境中測試應(yīng)用功能和性能。設(shè)計使用的APP 界面如圖3 所示。
圖3 云智能APP顯示界面Fig.3 Cloud intelligence APP display interface
為便于快速集成和滿足后續(xù)升級以及二次開發(fā)的需求,信息采集模塊全部采用傳感器模塊實現(xiàn),將各傳感器控制板和元器件焊接到洞洞板上,具體實物圖如圖4 所示。為保證監(jiān)測系統(tǒng)采集數(shù)據(jù)的準確性,對系統(tǒng)進行了測試,采取自來水加不同混合物的方式查看監(jiān)測系統(tǒng)給出的溫度、pH 值、TDS、濁度等測量值。當水質(zhì)改變時,OLED 端的測量值和服務(wù)器端顯示的測量值能夠同步發(fā)生響應(yīng)變化,靈敏度符合設(shè)計要求。
圖4 實物圖Fig.4 Acticality picture
基于物聯(lián)網(wǎng)的水質(zhì)監(jiān)測系統(tǒng)以STM32F103C8T6 微控制器為控制核心,以pH 傳感器、溫度傳感器、濁度傳感器和TDS 傳感器等設(shè)備采集pH 值、溫度、濁度、TDS 等參數(shù),通過OLED 屏實現(xiàn)水質(zhì)參數(shù)的現(xiàn)場顯示,通過wifi 通信模塊、阿里云物聯(lián)網(wǎng)平臺和APP 實現(xiàn)水質(zhì)參數(shù)的遠程監(jiān)測和人機的高效交互,完成了產(chǎn)品功能和設(shè)計需求,但針對遠距離跨區(qū)域數(shù)據(jù)采集、多傳感器深度數(shù)據(jù)融合等方面還存在不足,需進一步提高和改進。