王 巖,王超梁,楊格格
(鄭州航空工業管理學院 智能工程學院,河南 鄭州 450000)
海洋是地球上最早出現的水體,其次是河流、湖泊等,在人類生活和經濟發展中都離不開生命之源—水。生活飲用水的質量與人類的身體健康息息相關,工業用水的水質影響著產品質量和配套設施的維護難易程度,廢水、污水更關乎生態圈的可持續發展。因此,做好水資源質量監測至關重要。
傳統水質監測方案雖然針對性強,但是檢測周期長、水樣采集復雜、人工成本高。近年來,隨著人工智能和物聯網的發展,智能環保系統大大提高了水質監測的效率和精度。本文設計的云系統能夠實時、自動監測水質,可拓展性強,不僅適用于生活用水的監測,還可應用于野外水域、水產養殖、工業用水等場合。
本水質監測云系統以STM32F103單片機為核心控制器,利用水質傳感器對所在水域一定范圍內的溫度、濁度、pH值和TDS數據進行實時采集,得到的電壓信號經單片機A/D轉換與數值轉換后獲取對應的濁度、pH值和TDS值,結果通過FSMC控制器發送至液晶屏,同時ESP8266通過MQTT協議將處理后的數據發送到物聯網阿里云平臺進行實時顯示。當水質參數的數值超過系統預設閾值時,可及時通過聲光報警發出預警信息,從而幫助用戶快速掌握所測水域環境的變化情況。
圖1所示為系統總體框架。

圖1 總體設計框架
本系統溫度測量選用DS18B20溫度傳感器,遵循1-Wire單總線協議,將采集到的溫度信號通過PG11管腳送入單片機芯片進行后續處理,然后通過顯示模塊進行顯示。DS18B20與單片機硬件連接關系如圖2所示。

圖2 DS18B20與STM32連接電路
TSW-30傳感器內部的紅外線對管發出光線,穿過待測溶液,水體渾濁程度影響光的透射、散射,其渾濁程度與透光量成反比,和散射光與透射光比值成反比,與光接收端轉換的電流大小成反比。TSW-30傳感器光接收端輸出的電流信號通過模塊電阻,采樣處理得到為0~4.5 V電壓信號,單片機再通過ADC采集信息并經過公式轉換就可以獲知當前水樣的濁度值。濁度測量模塊原理如圖3所示。

圖3 濁度測量模塊原理
濁度傳感器模塊必須外接5 V電源,TSW-30通過XH2.54接口連接到濁度模塊上,濁度模塊的AO引腳連接單片機ADC1引腳PA6。
本系統選用通用E-201 pH復合電極采集pH參數。該電極由pH玻璃電極和銀-氯化銀參比電極復合而成,當電極浸入待測溶液時,玻璃薄膜附近形成2個水化凝膠層,在進行pH測定時,玻璃膜兩側溶液的離子交換形成相對穩定的電勢差,隨之離子交換趨于穩定,電勢差的大小趨于定值,即輸出電壓,pH電極輸出電壓為毫伏級。
復合電極配套模塊搭載TLC4502自動校準運算放大器,用來放大pH電極的毫伏級電壓信號,同時搭載放大倍數調節電位器,順時針方向旋轉即可增大放大倍數,反之減小放大倍數,pH模塊輸出電壓范圍為0~5 V。pH傳感器模塊接入系統使用之前,應用標準緩沖溶液調節電位器進行校準。
pH傳感器模塊外接3.3 V電源,復合電極通過BNC接口連接監測模塊,模塊的PO引腳連接單片機ADC1的通道5即引腳PA5。
本系統利用TDS探針進行溶液溶解性固體總量參數采集,在兩探針電極之間載入電壓后,帶正電的離子(如Na,Ca,Mg,K等)向負電荷的方向移動,帶負電荷的離子(如Cl,SO,HCO等)向正電荷的方向移動。通過檢測離子移動所產生的電流,從而確定待測液的TDS值。
TDS模塊供電電壓正極兼容3.3 V和5 V電壓,輸出0~2.3 V模擬電壓信號,所以需要單片機進行ADC采集,文中選用ADC1通道7,即2Pin XH-2.54接頭與TDS探針連接,TDS模塊的TDS引腳連接到單片機的引腳PA7。
本系統選用ALIENTEK TFTLCD模塊作為測量參數顯示屏。TFTLCD巧妙結合了微電子技術、薄膜晶體管(TFT)技術、LCD技術,可有效克服非選通時的串擾,大大提高監測質量。
TFTLCD模塊有21條8080并行接口信號線,其中CS信號線用來傳輸TFTLCD片選信號;WR和RD分別對TFTLCD寫入和讀取數據;DB1~DB8、DB10~DB17為雙向數據傳輸信號線;RS用來傳送讀寫命令/讀寫數據標志位,RST為硬件復位信號線,直接連接單片機的復位引腳。
TFTLCD通過FSMC控制器驅動,所以,LCD_CS、LCD_RS、LCD_WR、LCD_RD分別連接至FSMC控制器的NE4、A10、NWE、NOE,即單片機的PG12、PG0、PD5、PD4引腳;LCD_BL引腳與單片機PB0相連,實現背光控制;LCD_D0~LCD_D15連接到FSMC_D15~FSMC_D0。
本系統通信模塊設計選用安信可公司出品的ESP-01S通信模塊,共有8個接口,其中供電電源正極使用3.3 V電壓供電;RXD為異步串口接收端;TXD為異步串口發送端;EN引腳為芯片使能端,輸出高電平有效;IO0引腳懸空時為FLASH下載模式和工作模式,下拉時為串口下載模式;IO2引腳默認為高電平,開機上電時禁止下拉;RST為外部復位引腳,默認為高電平,輸出低電平時有效。
本系統中,ESP-01S模組的VCC管腳連接3.3 V電壓,ESP-01S的TXD、RXD、RST引腳分別連接單片機的PA3、PA2、PA4引腳,實現UART通信,剩余管腳懸空。
本系統軟件設計采用C語言編程,在Keil5開發環境中運行,利用ST-Link下載工具在線調試,由XCOM軟件進行串口調試。
系統軟件設計包括傳感器單元程序設計、控制單元程序設計和WiFi模塊程序設計。傳感器單元包括溫度、濁度、pH值和TDS值的采集,需獲取待測水域的環境因子。其中,溫度數據采取單總線方式讀取,濁度、pH值和TDS值需要利用A/D轉換將模擬信號轉換成數字信號,并經過中央處理器處理后轉變成對應的參數值;控制單元包括顯示和預警兩部分,水質參數數據可在TFTLCD上實時顯示,并設置閾值,當參數超過此范圍時可利用蜂鳴器報警;WiFi模塊通過MQTT協議將獲取的數據發送到阿里云物聯網平臺并實時顯示。系統軟件總體設計框架如圖4所示。

圖4 系統設計流程
本系統上電測試之前,檢查各模塊是否連接正確。系統上電前如圖5所示。連接電源后,查看是否存在短路、斷路或芯片過熱等異常現象。開通阿里云物聯網平臺,創建產品、設備,設置產品自定義屬性、服務和事件,然后發布模型。利用IoT Stutio開發Web應用,選取儀表盤,設置樣式、數據范圍、配置對應的數據源等,組建該水質監測云系統設備運維大屏。

圖5 系統未上電圖
程序編譯無誤后燒錄入單片機,燒錄成功后系統還未連接至阿里云服務器,所以暫時未傳輸數據至LCD,等待幾秒后,可在XCOM串口調試軟件觀測到單片機已成功連接阿里云服務器,并開始進行數據透傳,此時LCD開始顯示測量參數,如圖6所示。

圖6 連接服務器成功后LCD顯示界面
登錄阿里云物聯網平臺,可在公共實例中查看設備,點擊模型數據,實時查看水質測量數據;點擊IoT Stutio的應用開發,查看創建的全局資源項目;應用綁定設備,查看水質監測系統設備運維大屏。水質監測系統設備運維大屏如圖7所示。

圖7 水質監測系統設備運維大屏
將傳感器分別放入不同待測溶液中,TFTLCD、模型數據、水質監測云系統設備運維大屏水質參數均可實時顯示。
本文設計了基于阿里云物聯網云平臺和STM32F103ZET6單片機的水質監測云系統,利用水質傳感器對所在水域一定范圍內的溫度、濁度、pH、TDS數據進行采集,單片機進行數據處理后,通過FSMC控制器發送到液晶屏上顯示,同時通過WiFi模塊將采集的數據發送到阿里云物聯網平臺實時顯示。該系統操作簡單、數據分析方便、應用場合廣泛、可拓展性強,適合在野外場合多點放置、實時監測,多區域在線水質監測云系統具有一定的實用性和經濟價值。