


收稿日期:2023-09-18
基金項目:2017年內蒙古自治區高等學校科學研究自然科學重點項目(NJZZ17477)
DOI:10.19850/j.cnki.2096-4706.2024.07.035
摘? 要:隨著社會經濟的飛速發展,水資源的污染問題日益突出。文章基于物聯網技術,以STM32F103C8T6作為核心控制器,構建一套高效、智能的物聯網水質監測系統,從pH酸堿度、濁度、TDS、溫度四個方面進行數據采集監測,能夠更有效地保護水資源,因而可廣泛應用于水產養殖、家庭魚缸、儲水箱、游泳池等多種場景。該系統不僅可為人們的健康和生活提供更加可靠的保障,還可為智能家居、智慧城市等項目的發展提供有力支撐。
關鍵詞:物聯網;STM32;水質監測;手機APP
中圖分類號:TP273? 文獻標識碼:A? 文章編號:2096-4706(2024)07-0179-06
Design and Implementation of Water Quality Monitoring System Based on
Internet of Things
MA Lijie
(Inner Mongolia Electronic Information Vocational Technical College, Hohhot? 010070, China)
Abstract: With the rapid development of the social economy, the pollution problem of water resources is becoming increasingly prominent. This paper is based on Internet of Things technology and uses STM32F103C8T6 as the core controller to construct an efficient and intelligent Internet of Things water quality monitoring system. It collects and monitors data from four aspects: pH value, turbidity, TDS, and temperature, which can more effectively protect water resources. Therefore, it can be widely used in various scenarios such as aquaculture, household fish tanks, water storage tanks, and swimming pools. This system not only provides more reliable guarantees for people's health and life, but also provides strong support for the development of projects such as smart homes and smart cities.
Keywords: Internet of Things; STM32; water quality monitoring; mobile APP
0? 引? 言
長期以來,我國水資源一直存在總量少、人均占用率低、南北分布不均等問題。同時隨著現代化工業進程的不斷推進,工業廢氣、廢水、廢渣對水資源的污染日益嚴重,不少地區都出現了水質富營養化、重金屬超標。國家近年來不斷加大對水污染的治理力度,吸取發達國家的經驗教訓,全力避免再走先污染、后治理的老路。各級政府都加大了水質監測力度,以便及時了解水質狀況,防止水資源被污染。而傳統的水環境監測主要依賴于一定時間、一定地點的人工采樣,并將采樣結果送往化驗室進行檢測與分析。這種監測方法雖然能夠獲得一定的水質數據,但存在采樣頻率低、時效性差、數據精度不高的局限性,亟須設計一種實時、準確、高效的水質監測方案,這也正是本文的研究目的所在。
本文以STM32F103C8T6為核心,設計并實現了一套水質監控系統。該系統利用先進的傳感器技術實時監測水中的pH酸堿度、濁度、溶解氧等關鍵參數,并通過無線通信技術將數據傳輸至云端服務器進行分析和處理,為決策者提供精確的水質信息。同時,系統還具備預警功能,能夠在水質發生異常時及時發出預警,從而為水源污染防治提供重要支持。通過對監測結果的精確反饋,水環境保護部門能夠及時發現水體的變化,適時采取相應措施防止污染的進一步發展[1]。
1? 系統功能
本文所設計的基于物聯網的水質監測系統具有以下主要功能:
1)實時監測水質參數。本系統能夠對水體中的溫度、pH酸堿度、TDS(總溶解固體)、濁度等指標進行實時監測。監測結果表明,各監測數據準確可靠,系統具有良好的水質監測效果。
2)數據存儲和分析。該系統可以將監測到的水質參數數據存儲到云端,方便用戶查看。同時,系統還可以通過對歷史數據的統計和分析,提供更加精準的水質預測和預警。
3)多終端支持。該系統支持多種終端設備,其中包括手機、電腦、平板等,用戶可以隨時隨地通過不同的終端設備進行水質監測和控制,為用戶的使用和管理提供了極大的方便。此外,系統還具有遠程控制功能,用戶可以通過APP或網頁遠程控制監測設備實現對水質監測設備的控制和管理。
4)數據可視化展示。無論測試端還是云端,抑或是在APP上,都可以實現對數據的實時顯示。系統可通過數據可視化功能將水質數據以圖表的形式展示出來,讓用戶直觀地了解水質數據的變化趨勢,方便用戶決策和管理。
2? 總體設計方案
本物聯網水質監測系統以STM32F103C8T6微控制器為核心處理單元,搭配OLED顯示屏、pH傳感器、溫度傳感器、濁度傳感器和TDS傳感器等關鍵組件,實現對水質中pH酸堿度、溫度、濁度和總溶解固體這四個重要參數的實時監測。
本系統主要由以下幾部分組成:主控制電路、傳感器模塊、Wi-Fi通信模塊、阿里云服務、手機應用程序(APP)[2]。其中,主控電路主要是控制整體的運行以及驅動各個模塊,而功率管理電路主要是為了保證整體的穩定運行而設計的;傳感器模塊負責收集水質數據;Wi-Fi通信模塊(以ESP8266無線通信芯片為基礎)將經過處理的資料傳送給阿里云服務器,阿里云服務器提供數據訪問服務,移動應用程序則實現了對監測數據的實時展示和遠程控制功能。在本監測系統中,STM32F103C8T6微控制器負責對采集到的水質數據進行處理與分析,同時控制OLED顯示屏實時顯示各項參數值。通過阿里云服務器實時同步更新水質監測數據至移動應用程序,為用戶提供便捷的水質信息查詢和預警功能[3]。
物聯網水質監測系統總體設計方案如圖1所示。
3? 設計流程
將物聯網技術應用到水環境監測中,其具體設計過程如下:
1)硬件方面。以STM32F103C8T6單片機為核心,采用C語言實現對單片機的程序設計,利用Keil 5軟件實現了程序的編寫與調試。系統采用ESP8266無線通信模塊完成了主機與云服務器的數據交換。系統集成了OLED顯示屏實時展示各項監測數據。系統設計成可對水中pH酸堿度、TDS、溫度、濁度等進行實時監測。此外,還可以根據實際應用場景添加其他功能模塊,如魚缸環境中的浮漂開關、水泵控制等。這些功能既可以自動運行,也可以通過云端進行手動控制,實現對數據的實時查看以及根據數據變換采取相應措施[4]。
2)軟件方面。在Keil編譯環境下利用C語言開發STM32F103C8T6程序,實現對整個監控系統的控制,并對各個模塊進行驅動;利用阿里云平臺搭建數據處理和傳輸服務,通過ESP8266模塊將硬件采集的數據上傳至云端。移動端APP(云智能APP)從阿里云服務器獲取實時數據,并將四個關鍵指標(pH酸堿度、溫度、濁度和TDS)實時顯示在用戶界面上。
總之,基于物聯網的水質監測系統融合了先進的微控制器、無線通信技術和云計算技術,實現了對水質關鍵指標的實時監測、遠程控制和數據展示。通過硬件與軟件的協同設計,打造出一個功能豐富、專業可靠的智能水質監測解決方案。
4? 硬件設計
以物聯網為基礎的水質監測系統是一種利用物聯網技術(IoT)對水質進行實時監控和管理的智能化解決方案。該系統集成了先進的傳感器、微控制器和無線通信技術,實時監測水質中的關鍵參數,如pH酸堿度、溫度、濁度和TDS。通過將監測數據上傳至云端服務器,實現對數據的遠程存儲、分析和可視化,為用戶提供便捷的水質信息查詢和預警功能[5]。
其水質監測系統總體硬件框圖如圖2所示。
水質監測系統包括五個主要模塊:
1)傳感器模塊。包括pH傳感器(E-201C)、溫度傳感器(DS18B20)、濁度傳感器(TSW-30)和TDS傳感器(TDS V1.0)等,負責收集水質數據。
2)微控制器模塊。以STM32F103C8T6微控制器為核心,對采集到的水質數據進行分析與處理,同時控制0.96寸OLED顯示屏實時顯示各項參數。
3)無線通信模塊。以ESP8266為核心,實現硬件與云端服務器之間的通信。
4)云端服務器。搭建在阿里云平臺上負責數據處理和傳輸的服務器,實現數據的存儲、分析和可視化展示。
5)移動應用程序(APP)。通過獲取云端服務器的實時數據實現對水質監測數據的實時展示和遠程控制。
基于物聯網的水質監測系統具有實時性、準確性、智能預警和遠程監控等優勢,可廣泛應用于水產養殖、家庭魚缸、儲水箱、游泳池等多種場景,實現對水環境的全面實時監控,為保護水資源和提高生活質量提供了有力的技術支持[6]。
其水質監測系統原理圖如圖3所示,PCB板圖如圖4所示。
5? 軟件設計
基于物聯網的水質監測系統總體程序設計可以分為以下4個部分:
1)STM32軟件。實現系統的核心功能,包括數據采集、處理和顯示,以及與ESP8266的數據交互。負責實現與各傳感器、OLED顯示屏和ESP8266模塊的底層通信和控制[7]。
2)ESP8266軟件。將STM32F103C8T6采集到的數據上傳至云端;定義硬件平臺與云端服務器之間的通信協議,確保數據傳輸的準確性和穩定性。
3)阿里云平臺。負責接收、處理和存儲來自硬件平臺的數據,并與手機APP進行數據交互。
4)手機APP軟件。負責接收及顯示來自云端服務器的實時監測數據,同時提供用戶界面,使用戶可以通過APP對硬件平臺的功能進行控制。負責與云平臺通信,呈現傳感器信息。
本文的軟件設計工作主要體現在STM32上,系統軟件流程圖如圖5所示。
通過以上設計,該系統可以實現實時監測水質中的pH酸堿度、TDS、溫度和濁度,并通過云端與手機APP實現數據傳輸與功能控制,方便用戶隨時查看數據和控制設備[8]。
6? 阿里云平臺和阿里云智能APP環境部署
阿里云物聯網平臺是全球領先的IoT云服務提供商,它為企業提供了一站式的物聯網解決方案,幫助企業快速建立和部署物聯網應用。該平臺兼容多種通信協議(如MQTT、CoAP、HTTP等[9]),并可提供數據存儲、設備管理、規則引擎、消息通信等全方位的物聯網服務。這有助于企業快速搭建物聯網系統并實現設備間的互聯互通。阿里云物聯網平臺還支持大數據分析和人工智能等高級功能,使企業能從物聯網數據中發掘潛在的商業價值,從而提升其市場競爭力。
阿里云是一種云本地的應用部署解決方案,它是把應用程序封裝到一個容器中,然后利用阿里云的容器服務進行部署。此外,阿里云還推出了云原生應用平臺,協助企業高效構建和部署云原生應用,進一步優化應用的可靠性、可擴展性和可維護性[10]。
阿里云智能APP是一款專為企業內部員工打造的移動辦公應用,涵蓋了各種業務流程和工作場景,如協同辦公、審批流程、日程管理、考勤管理、人事管理等。借助阿里云智能APP,企業可以高效地管理和協調內部各項業務流程,從而提升企業的工作效率和團隊協作能力。
系統核心設備在阿里云物聯網平臺中創建、安裝及連接的步驟如下:
1)在AlienIoT平臺上創建一個設備。
2)在設備管理中查看設備的三元組(ProductKey、DeviceName、DeviceSecret)。
3)在ESP8266上安裝MQTT客戶端庫,例如PubSubClient庫。
4)在ESP8266上編寫程序,連接阿里云MQTT服務器,使用三元組進行認證,并發布/訂閱需要的主題。ESP8266和阿里云物聯網平臺通信代碼如下:
#include
//WiFi信息
const char* ssid=”your_SSID”;
const char* password=”your_PASSWORD”;
//阿里云物聯網平臺信息
const char* mqtt_server=”your_MQTT_SERVER”;
const char* product_key=”your_PRODUCT_KEY”
const char* device_name=”your_DEVICE_NAME”
const char* device_secret=”your_DEVICE_SECRET”;
//WiFi客戶端
WiFiClient? wifiClient;
PubSubClient? mqttClient(wifiClient);
void setup(){
//初始化串口
Serial.begin(115200);
//連接WiFi
Serial.print(“Connecting to”);
Serial.println(ssid);
WiFi.begin(ssid,password);
while(WiFi.status()!=WL_CONNECTED){
delay(500);
Serial.print(“.”);
}
Serial.println(“”);
Serial.println(“WiFi? connected”);
//連接MQTT服務器
mqttClient.setServer(mqtt_server,1883);
mqttClient.setCallback(callback);
while(!mqttClient.connected()){
Serial.println(“Connecting to MQTT server…”);
if(mqttClient.connect(device_name,product_key, device_secret)){
Serial.println(“MQTT connected”);
mqttClient.subscribe(“/”+product_key+”/”+
device_name+”/user/get”);
}else{
Serial.print(“MQTT failed with state? ”);
Serial.println(mqttClient.state());
delay(2000);
}
}
}
void? loop(){
mqttClient.loop();
}
void callback(char* topic,byte* payload,unsigned int length){
Serial.print(“Message arrived on topic:”);
Serial.print(topic);
Serial.print(“Message”);
for(int i=0;i Serial.print((char)payload[i]); } Serial.println(); } 在以上代碼中,ESP8266連接到Wi-Fi網絡后,會嘗試連接到阿里云MQTT服務器。如果連接成功,它會訂閱“/${productKey}/${deviceName}/user/get”這個主題,并等待來自阿里云物聯網平臺的消息。如果接收到消息,它會在串口上輸出消息內容。 阿里云智能APP的部署步驟如下: 1)開通阿里云智能APP服務。在阿里云控制臺中選擇云智能APP,根據提示開通阿里云智能APP服務。 2)創建應用。在云智能APP控制臺中創建應用,設置應用名稱、圖標、描述等信息,并配置相關服務和權限。在創建應用時,需要選擇相應的服務和權限,確保應用能夠正常被訪問和使用。 3)下載SDK。在應用管理頁面中下載對應平臺的SDK,包括iOSAndroid。 4)集成SDK。根據文件中的指示,將下載的SDK整合到應用程序項目中并對其進行配置和調用。在集成SDK時,需要按照文檔中的說明進行配置和調用,保證應用能夠正確調用云智能APP提供的服務。 5)測試。在本地環境中測試應用的功能和性能,確認無誤后可以將應用發布到公有云或私有云環境中,供用戶使用。 7? 系統實現 本文以STM32F103C8T6微控制器作為核心處理單元,搭配0.96寸OLED顯示屏、pH傳感器、溫度傳感器、濁度傳感器和TDS傳感器等關鍵組件,實現了對水質中pH酸堿度、溫度、濁度和總溶解固體四個重要參數的實時監測,可以OLED顯示,并通過阿里云端使手機APP顯示相應的數據。 在基于物聯網的水環境監測中,傳感器是獲取水環境信息的重要組成部分。因此,系統的實現主要指傳感器的功能實現。通過傳感器監測結果,可以確定傳感器的性能和可靠性,為系統的正常運行提供了保障。以下為一杯自來水加入一些混合物液體測出的數值,數值包括溫度、pH酸堿度、TDS、濁度四項數值,功能實現效果圖如圖6所示。 圖6? 水質監測系統實測水質圖 8? 結? 論 本文設計一套基于物聯網技術的水質監測系統,通過整合多種傳感器,系統能夠實時、準確地監測水質中的核心參數,如pH酸堿度、溫度、濁度和TDS,為用戶提供全面、細致的水質信息。系統具有實時性、準確性以及智能預警能力,可廣泛應用于多種場景(如水產養殖、家庭魚缸、儲水箱和游泳池等),實現對水環境的全面實時監控。利用阿里云物聯網平臺對監測數據進行遠程存儲、分析和可視化,使用戶能夠方便快捷地查詢水質信息并獲得實時預警。此外,阿里云物聯網平臺還提供了大數據分析和人工智能等先進功能,有助于企業從物聯網數據中發掘潛在的商業價值,進而提升市場競爭力。該系統不僅為人們的健康和生活提供更加可靠的保障,還為智能家居、智慧城市等項目的發展提供了有力的支撐。 參考文獻: [1] 余永權.單片機與家用電器智能化技術 [M].北京:電子工業出版社,1995. [2] 姚新和.基于STM32的水質監控系統的設計與實現 [D].廣州:華南理工大學,2020. [3] 劉強,崔莉,陳海明.物聯網關鍵技術與應用 [J].計算機科學,2010,37(6):1-4. [4] 黃嬌郁,唐海.基于阿里云物聯網平臺的自動氣象站設計 [J].湖北農業科學,2020,59(17):166-169. [5] 趙黎明.太湖水源地水質在線自動監測預警系統的設計與實現 [D].長春:長春工業大學,2021. [6] 劉孝趙,王海圳,董宜孝.基于STM32F103RCT6的數據采集設計 [J].無線互聯科技,2022,19(14):62-64. [7] 任靜.基于STM32單片機的溫濕度測量系統設計 [J].智能物聯技術,2021,4(4):16-21+39. [8] OLATINWO S O,JOUBERT T H. Optimizing the Energy and Throughput of a Water-Quality Monitoring System [J].Sensors,2018,18(4):1198. [9] 黃偉力,邊燕,馮青春,等.基于Cortex-M3的農作物生長參數監測系統設計 [J].農機化研究,2015,37(2):203-205+209. [10] 孟海斌,張紅雨.嵌入式系統電源芯片選型與應用 [J].單片機與嵌入式系統應用,2010(12):7-10. 作者簡介:馬麗潔(1976.05—),女,漢族,內蒙古興安盟人,教授,碩士,研究方向:嵌入式系統應用開發、移動應用開發。