999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32單片機的水質監測與處理系統

2024-12-19 00:00:00肖宇濤白偉華張博林煜杰陳潮彬
中國新技術新產品 2024年23期
關鍵詞:物聯網

摘 要:目前,小區生活污水的二次處理存在監測效率低、處理不及時等問題。針對以上問題,本文提出了一種基于STM32單片機的水質監測與處理系統,系統集成水質監測傳感器、實時操作系統RTOS、ESP8266模塊以及C++應用程序設計等技術,實現對小區生活污水的監測。與傳統方法相比,系統具有更高的監測準確度和響應能力,可以提升水質處理的效率。結果表明,系統在水質監測與處理方面具備顯著的改進效果,能夠有效提高小區生活污水的處理水平。

關鍵詞:物聯網;水質監測;STM32單片機;ESP8266模塊;FreeRTOS

中圖分類號:X 832 文獻標志碼:A

在老舊小區的污水處理改造或新樓宇設計中,智慧化和就近處理生活污水的需求日益增長。對生活污水進行收集,經過處理使水質達到再生水水質標準,用于沖廁、綠化用水、道理澆灑,從而實現水資源的循環利用[1]。綜合上述問題,本文利用STM32單片機,通過水質監測傳感器采集小區生活污水水質,依靠實時操作系統RTOS實現多任務處理,利用ESP8266模塊將數據上傳至云服務器,通過客戶端實現水質數據的可視化展示和設備的遠程控制[2]。

1 系統整體設計

系統通過超聲波傳感器、溫度傳感器、PH傳感器、濁度傳感器和TDS傳感器等多種水質監測傳感器來實現對水源參數的監測。其中,STM32單片機作為數據處理的核心,負責對傳感器采集的數據進行初步分析和處理。ESP8266模塊作為數據傳輸的橋梁,確保數據能夠通過無線網絡發送到阿里云服務器。在服務器端,數據存儲和數據管理功能保證了數據的持久化和可查詢性,同時,數據分析模塊對傳感器采集的數據進行深入挖掘,為決策提供依據。數據可視化工具通過客戶端軟件將水質數據轉換為直觀的圖表和指示。遠程控制功能允許用戶通過客戶端對水泵、步進電機、繼電器等設備進行操作,實現設備的自動化管理[3]。此外,系統還包括了蜂鳴器和LED指示燈等報警和狀態指示設備以及電源模塊,確保整個系統的穩定運行。系統整體設計結構如圖1所示。

2 系統硬件結構設計

系統基于STM32F103系列單片機作為核心控制系統,通過水質監測傳感器監測小區生活污水情況。采集的數據經過單片機處理后,系統控制處理設備的執行,同時通過UART串口通信,將數據發送到ESP8266模塊,再由ESP8266模塊將數據發送到阿里云服務器上,實現對水質的監測與處理。

2.1 STM32F103主控模塊

STM32F103系列單片機采用ARM32位的Cortex-M3內核,運行頻率高達72MHz,具有低功耗設計等優點,單片機內部集成128KB的Flash存儲空間,可用于記錄水質指標的基本信息。單片機含有21個AD轉換的GPIO引腳接口,可同時采集水質監測傳感器的數據。同時,STM32F103還有豐富的GPIO口資源,可用于控制投藥裝置、報警裝置等多個執行單元,保證了系統控制的靈活性和多樣性。

2.2 傳感器模塊

溫度傳感器采用DS18B20數字溫度傳感器,它具有低功耗設計、強大的抗干擾能力等特點。單片機讀取溫度傳感器測量的數據后,需要將數據變換為數字溫度。當數據低8位全部為0 時,取溫度為正,否則取負。數字溫度計算形式為16乘以數據的高8位,加上0.0625乘以數據的低8位來得到。在本系統中,用于檢測其水質溫度和設備運行環境溫度。電路原理圖如圖2所示。電路的核心是DS18B20傳感器,它通過VCC和GND引腳連接到電源和地線。電路中包括2個電阻:1個10kΩ的上拉電阻R1和1個1kΩ的電阻R2。R1用于為DS18B20的數據線提供上拉電壓,當數據線空閑時保持高電平狀態。R2用于限制LED指示燈的電流。LED指示燈通過1kΩ的限流電阻連接到VCC,以提供操作狀態的反饋。

PH傳感器通過測量溶液中的氫離子濃度來檢測pH值。它將PH值轉換為模擬電壓信號,單片機通過ADC模塊讀取模擬電壓信號,將其轉換為數字值。利用校準曲線公式y=-5.7541x+16.654(R2=1),將數字值轉換為pH值。在本系統中用于監測水質的pH濃度。

濁度傳感器利用光學原理,通過溶液中的透光率和散射率來綜合判斷水的濁度。單片機通過ADC模塊讀取模擬電壓信號,根據傳感器特性和校準曲線將數字值轉換為濁度值,其濁度值與模塊輸出電壓滿足以下關系:TU=-865.68×U+K(TU為當前濁度值,U為當前溫度條件下模塊的輸出電壓值,K為截距值)。溫度校正公式為ΔU=-0.0192×(T-25)(ΔU為溫度變化引起的電壓差,T為當前測量溫度值)。在本系統中用于檢測其水質渾濁度狀況[4]。

TDS電導率傳感器采用電極法測定水溶液的電導率。將TDS傳感器輸出引腳連接到STM32單片機的模擬輸入引腳,接收傳感器輸出的模擬電壓信號,使用ADC模塊轉換為數字值,再根據傳感器特性和校準曲線將數字值轉換為TDS值,TDS標準曲線公式和溫度修正系數分別如公式(1)~公式(4)所示。在本系統中用于檢測其水質的TDS溶解性固體總量。

T修正=1+0.02×(T測試-25) (1)

V修正=T修正×V測試 (2)

TDS測試值=(66.71×V 3修正-127.93×V2修正+428.7×V修正)×K

(3)

K=TDS標準值/TDS測量值 (4)

式中:T修正為溫度校正系數;T測試為待測溶液測量溫度;V修正為修正后的傳感器模塊AO口輸出電壓值;V測試為傳感器模塊AO口輸出電壓值;K為修正系數。

HC-SR04超聲波測距傳感器采用IO口TRIG 觸發測距。將超聲波傳感器的Trig和Echo引腳連接到STM32單片機的GPIO輸出和輸入引腳,用于向Trig引腳發送高電平信號,以觸發超聲波發射。然后,等待Echo引腳輸出高電平信號,記錄計數器值并通過公式(距離= 高電平時間×聲速(340m/s)/2)計算距離。在本系統中用于測量其水位高度。

2.3 數據通信模塊

ESP8266模塊通過串行通信與STM32單片機進行連接,使用AT指令集來進行配置和控制。在本系統中,ESP-01S 模組的VCC管腳連接3.3V電壓,ESP-01S的TXD、RXD、RST引腳分別連接單片機的PA3、PA2、PA4引腳,實現UART通信,剩余管腳懸空。

3 系統軟件結構設計

3.1 系統整體設計及流程圖

從系統啟動開始,依次進行設備初始化、網絡連接、服務器通信、數據采集與處理、決策與控制、用戶交互、數據存儲、異常處理和系統監控。系統通過ESP8266模塊,發送AT指令連接到云服務器,利用MQTT協議進行數據可靠傳輸,確保與云服務器的實時通信,同時各個傳感器進行數據采集,通過單總線讀取溫度、A/D轉換獲取濁度、pH值和TDS值。單片機對數據進行實時處理,判斷是否超出預設閾值[5]。一旦檢測到異常,系統會計算加藥量并執行控制命令,通過蜂鳴器、加藥泵和繼電器進行預警和控制,同時客戶端軟件連接服務器獲取數據顯示,使用戶能夠實時監控并手動干預。所有數據均保存至數據庫,系統持續監控設備狀態和水質數據,確保穩定運行,并在設備溫度異常或停機時通知用戶,采取安全措施。軟件設計整體流程如圖3所示。

3.2 數據采集與控制系統設計

數據采集部分由水質監測傳感器和STM32單片機組成,通過ADC模塊將傳感器的模擬電壓信號轉換為數字值,并根據傳感器特性和校準曲線將數字值轉換為測量值,然后通過串口發送至上層系統。ADC模塊的初始化包括定義數組、配置GPIO、設置DMA參數、配置ADC工作模式和復位校準寄存器。串口程序負責初始化通信參數、配置數據格式和中斷優先級。

控制處理部分包括繼電器、蜂鳴器和LED指示燈模塊,通過客戶端發送控制命令至服務器,服務器接收并下發指令至硬件終端。ESP8266模塊接收到指令后通過串口發送1條包括控制命令相關信息的報文,串口利用DMA中斷將數據存儲至緩沖區。DMA發出空閑中斷表示數據接收完成,隨后將緩沖區中完整的數據復制到接收緩沖區。接著,對數據進行剝離MQTT 封裝、提取關鍵命令等操作,根據關鍵詞控制繼電器、蜂鳴器等設備的開啟和關閉,從而實現對終端設備的遠程控制。具體代碼如下。

void ESP8266_GetIPD()

{

char *ptrIPD=NULL ;

char *data =NULL;

int result = 0;

Char*IPD=\"+MQTTSUBRECV:0,\\"/sys/k0c599npYF6/water_manage/thing/service/property/set\\",\";

if(ESP8266_WaitRecive() == REV_OK)

{

ptrIPD = strstr((char *)esp8266_buf, IPD);

if(ptrIPD == NULL)

{

return;

}

else

{

ptrIPD=strstr((char*)ptrIPD,\"items\");

char PUB_TOPIC3[128]; if(strstr((char *)ptrIPD, “Pump1_state”)!=NULL

{

ptrIPD = strstr(ptrIPD, \"value\");

if(ptrIPD != NULL)

{

ptrIPD = strchr((char*)ptrIPD, ':');

data = ptrIPD+1; //1}}}

if(data[0] == '0')

{

GPIO_ResetBits(GPIOE, GPIO_Pin_7);

PUMP1LEDdata=0; }

if(data[0] == '1')

{ GPIO_SetBits(GPIOE, GPIO_Pin_7);

PUMP1LEDdata=1; }

}

}

ESP8266_SendCmd(PUB_TOPIC3, \"OK\");

delay_ms(200);

memset(PUB_TOPIC3,0,sizeof(PUB_TOPIC3));

ptrIPD=NULL;

data =NULL;

ESP8266_Clear();

}

}

}

3.3 RTOS操作系統多任務設計

FreeRTOS嵌入式實時操作系統的主要特點是支持多任務,允許多個任務同時存在,并根據一定的調度規則進行任務切換。多任務使CPU的利用率達到最大,可以將軟件最大程度地模塊化,便于編寫。本系統將工作劃分為3個任務,優先級從高到低依次是數據采集與發送任務、預警控制任務、命令下發任務。數據采集與發送任務通過STM32單片機與傳感器的通信實現數據采集,并將數據通過ESP8266模塊發送至阿里云服務器。預警控制任務監控水質數據,當檢測到異常時,通過單片機控制相關設備(例如加藥泵、蜂鳴器和繼電器)進行處理。命令下發任務通過客戶端向阿里云服務器下發命令,使用串口和DMA中斷實現數據的高效接收和處理,以實現對終端設備的遠程控制[6]。部分關鍵代碼如下。

//數據上傳任務函數

void upload_data_task(void *pvParameters)

{

while (1)

{

ESP8266_GetIPD();

float TSWvalue = TSW30Monitor_function(); " " float TDSvalue = TDSMonitor_function(); float PHvalue = PHMonitor_function(); float TEMPvalue = DS18B20_Get_Temp()/10;

float Distance = HCSR04_GetDistance(TEMPvalue)/10;

float facilityvalue =DS18B201_Get_Temp()/10;

ESP8266_SendData(TEMPvalue,TSWvalue,TDSvalue,PHvalue,Distance,facilityvalue);

ESP8266_Clear(); vTaskDelay(4000);

}

}

//命令下發任務函數

void Order_issuance_task(void *pvParameters)

{

while(1)

{

ESP8266_GetIPD();

vTaskDelay(500);

}

}

//報警控制任務函數

void alarm_control_task(void *pvParameters)

{

while(1)

{

ESP8266_GetIPD();

float TSWvalue = TSW30Monitor_function(); float TDSvalue = TDSMonitor_function(); float

PHvalue = PHMonitor_function();

float TEMPvalue = DS18B20_Get_Temp()/10; float Distance = HCSR04_GetDistance(TEMPvalue)/10;

Alarm_function( TEMPvalue, TSWvalue, TDSvalue, PHvalue, Distance);

vTaskDelay(500);

}

}

//創建數據上傳任務

xTaskCreate((TaskFunction_t )upload_data_task,

(const char* )\"upload_data_task\",

(uint16_t )upload_data_STK_SIZE,

(void* )NULL,

(UBaseType_t )upload_data_TASK_PRIO,

(TaskHandle_t* )amp;upload_data_Task_Handler);

vTaskStartScheduler(); //開啟任務調度

}

3.4 服務器及客戶端系統設計

系統采用阿里云物聯網平臺,確保了設備連接的安全性和數據的可靠傳輸。首先,在平臺上創建設備,獲取設備的三元組信息(ProductKey、DeviceName、DeviceSecret)。其次,在ESP8266模塊上安裝MQTT協議驅動,編寫程序并通過ESP8266模塊發送AT指令連接到阿里云服務器,并發布/訂閱主題,實現設備與服務器之間的數據交換。

客戶端終端采用C++語言編寫,使用QT進行界面設計和開發。利用MQTT協議與阿里云服務器進行數據交換。通過獲取云服務器的IP地址、端口號、設備的三元組信息以及MQTT版本號,實現與服務器的連接。通過訂閱Topic主題來實時獲取終端設備上的數據。客戶端連接到阿里云服務器的部分關鍵代碼如下。

void fun::ConnectAliyun()

{

m_client = new QMqttClient(this);

m_client-gt;setHostname(\"iot-06z00hu6v44x0d3.mqtt.iothub.aliyuncs.com\");

m_client-gt;setPort(1883);

m_client-gt;setClientId(\"k0c599npYF6.water_qtduan|securemode=2,signmethod=hmacsha256,timestamp=1710417924697|\");

m_client-gt;setUsername(\"water_qtduanamp;k0c599npYF6\");

m_client-gt;setPassword(\"3530f5474d68a3b0c1fea1d0b3c4953b927ce92ed00af91df4d19f6cde57ff8e\");

m_client-gt;setProtocolVersion(QMqttClient::MQTT_3_1_1);

m_client-gt;connectToHost();

QObject::connect(m_client, amp;QMqttClient::connected, this, amp;fun::onConnected);

m_client-gt;connectToHost();

QObject::connect(m_client,amp;QMqttClient::messageReceived,this,amp;fun::onMessageReceived);

}

4 系統綜合測試

系統初始化與傳感器監測:開啟電源后,STM32單片機初始化外圍設備,系統自動配置ESP8266模塊,通過發送AT指令連接Wi-Fi,根據三元組信息,利用AT指令接入阿里云服務器,同時訂閱主題,用于請求數據到服務器。系統初始化成功后,聽到蜂鳴器發出一聲鳴叫,LED綠燈亮起,表示設備準備就緒。

水質監測和數據傳輸:傳感器開始監測水源,溫度傳感器、TDS傳感器、濁度傳感器、pH傳感器均浸沒在水源中,超聲波傳感器安裝在水箱的頂部位置。STM32單片機通過USART串口將數據傳輸至電腦進行顯示和調試[7]。利用RTOS操作系統的多任務處理機制,每5s采集水質數據并發送至阿里云服務器,客戶端接收數據后,以數據和折線圖的形式進行展示,經過觀察,監測到的水質數據均在誤差范圍內。

溫度閥值設置和控制:在客戶端手動設定設備環境溫度閾值為60℃,同時發送命令至單片機。利用打火機在溫度傳感器附近進行模擬熱源。當模擬高溫環境時,系統觸發警報,LED指示燈變紅。溫度下降后,警報解除,LED指示燈變綠[8]。

遠程控制加藥泵:在數據采集和傳輸功能正常運行下,利用RTOS多任務處理機制,通過客戶端遠程控制加藥泵。單擊打開繼電器,連接在繼電器上的加藥泵開始工作,自動添加藥劑到測試水源中;單擊關閉繼電器,加藥泵停止工作,表示加藥完成。

5 結語

本文通過傳感器模塊實時監測小區生活污水水質,結合STM32單片機和RTOS操作系統進行數據采集與處理。通過MQTT協議,利用ESP8266模塊將數據傳輸至阿里云服務器,實現數據的遠程傳輸和硬件終端的遠程控制,有效解決了傳統監測手段中人力資源浪費和實時性不足的問題,通過試驗驗證了系統的可行性和穩定性。系統采用智能化和遠程監控設計,使監測人員能夠實時監控水資源質量。未來還可進一步擴展功能,例如增加水質大數據分析、智能決策支持等,進一步提升小區水質管理的智能化水平。

參考文獻

[1]安芳萊.一體化生活污水處理裝置在天竺空港小區工程中的應用[J].科技資訊,2011(24):38-39.

[2]馮遠翔,潘小琴.基于物聯網的水質實時在線監測系統[J].物聯網技術,2019,9(7):69-71.

[3]史磊.基于單片機的水情監測系統的設計[J].電子制作,2022,30(15):30-33,25.

[4]廖東南. 一種在線實時水質監測系統的開發及其通訊機制的實現[D].北京:清華大學,2005.

[5]蘭翔.自動化監測技術在水質檢測中的應用與研究[J].能源與環保,2021,43(7):269-274.

[6]郭富恒,賀媛媛.基于FreeRTOS的物聯網溫度監測系統[J].智能物聯技術,2022,5(2):48-52.

[7]楊曉芳,徐煒旻.基于單片機的水質檢測系統[J].信息記錄材料,2022,23(9):153-155.

[8]任豐蘭,操政,姚星.基于單片機的水質檢查系統設計[J].機電工程技術,2023,52(6):166-169,248.

通信作者:白偉華(1976-), 男,漢族,教授,碩士生導師,研究方向為資源調度優化、協同計算、深度學習。

猜你喜歡
物聯網
基于物聯網的無線測溫模塊設計
軟件導刊(2016年9期)2016-11-07 21:56:29
基于物聯網ZigBee技術的智能家居監控系統 
軟件導刊(2016年9期)2016-11-07 21:32:45
物聯網監測技術在G15W112邊坡的應用
基于物聯網的健康管理服務模式
基于物聯網的煤礦智能倉儲與物流運輸管理系統設計與應用
基于高職院校物聯網技術應用人才培養的思考分析
如何在高校架設學生洗衣服務系統
科技視界(2016年22期)2016-10-18 17:23:30
基于無線組網的智慧公交站點信息系統研究與實踐
基于LABVIEW的溫室管理系統的研究與設計
論智能油田的發展趨勢及必要性
主站蜘蛛池模板: 欧美19综合中文字幕| 热久久这里是精品6免费观看| 婷婷综合色| 热99精品视频| 色综合五月婷婷| 无码网站免费观看| 日韩一二三区视频精品| 久草网视频在线| 日本道综合一本久久久88| 91丝袜在线观看| 狠狠色综合网| 91在线丝袜| 亚洲人成色77777在线观看| 久久精品中文字幕免费| 92精品国产自产在线观看| 欧美激情伊人| 亚洲精品福利视频| 永久免费无码日韩视频| 精品少妇人妻无码久久| 亚洲色欲色欲www网| 亚洲IV视频免费在线光看| 亚洲无码高清免费视频亚洲| 日韩av无码精品专区| 国产成人久久综合777777麻豆| 人妻丰满熟妇啪啪| 国产国语一级毛片在线视频| 漂亮人妻被中出中文字幕久久| 亚洲无码在线午夜电影| 国产精品yjizz视频网一二区| 亚洲精品黄| 亚洲综合色婷婷中文字幕| 婷婷中文在线| 亚洲综合天堂网| 精品一区二区三区无码视频无码| 欧美日本激情| 毛片国产精品完整版| 久久国产精品国产自线拍| 国产麻豆福利av在线播放| 亚洲成人在线网| 久久福利片| 国产女同自拍视频| 国产综合欧美| 国产精品网址在线观看你懂的| 亚洲av无码人妻| 色亚洲激情综合精品无码视频| 久久亚洲精少妇毛片午夜无码| 欧美日本在线观看| 成人欧美在线观看| 精品一区二区三区自慰喷水| 亚洲综合婷婷激情| 四虎成人在线视频| 色老二精品视频在线观看| 成人一区专区在线观看| 中文无码伦av中文字幕| 欧美伦理一区| 国产成人精品无码一区二| 久久精品亚洲中文字幕乱码| a欧美在线| 久久久久国色AV免费观看性色| 久久精品这里只有国产中文精品| 农村乱人伦一区二区| 久久久久久久97| 亚洲天堂区| 日韩天堂视频| 久无码久无码av无码| 男人天堂伊人网| 国产精品久久精品| julia中文字幕久久亚洲| 91在线免费公开视频| 91年精品国产福利线观看久久| 日韩欧美国产成人| 午夜成人在线视频| 国产自在线拍| 国产精品美女免费视频大全| 蜜臀av性久久久久蜜臀aⅴ麻豆| 伊人欧美在线| 国产精品亚欧美一区二区三区 | 亚洲精品视频免费观看| 天堂av综合网| 亚洲系列中文字幕一区二区| 日本亚洲欧美在线| 国产欧美日韩在线一区|