stm32水质检测系统(TDS浑浊度检测,水温检测,PH检测,wifi上传,上位机显示)

一、硬件材料清单:

1、STM32核心板

2、OLED显示屏

3、PH传感器

4、TDS浑浊度传感器

5、DS8B02水温传感器

6、ESP8266

二、实现的功能

1、数据的实时检测

2、本地OLED数据实时刷新

3、远程终端上位机数据显示刷新

三、效果演示

四、硬件部分源代码共享

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 while(1)
    {
            delay_ms(1000);
            temperature=DS18B20_Get_Temp();
            if(temperature<0)
            {
                OLED_ShowString(40,40,"-",16);      //??ê??oo?    
                temperature=-temperature;                   //×a?a?yêy
            }
            else           
                OLED_ShowString(40,40," ",16);      //è¥μ??oo?
           

            OLED_ShowNum(50,40,temperature/10,2,16);//??ê??yêy2?·?      
            OLED_ShowString(70,40,".",16);      //??ê?D?êyμ?
            OLED_ShowNum(80,40,temperature%10,1,16);//??ê?D?êy2?·?  
            OLED_ShowString(90,40,"'C",16);     //??ê?μ¥??
            OLED_Refresh();    
           
            msg[4]=temperature/10;
            msg[5]=temperature%10;
           
            //get TDS value
          TU = Get_Adc_Average(ADC_Channel_1,5)*(3.3/4096);// PA1 AD×a??
            TU_calibration=-0.0192*(temperature/10-25)+TU;
            TU_value=-865.68*TU_calibration + K_Value;
            if(TU_value<=0){TU_value=0;}
            if(TU_value>=3000){TU_value=3000;} 
            delay_ms(5);
            //OLED??ê?TDS value
            OLED_ShowNum(50,20,(int)TU_value,4,16);
            OLED_ShowString(85,20,"mg/L",16);       //??ê?μ¥??
            OLED_Refresh();    
           
            msg[6]=(int)TU_value/255;
            msg[7]=(int)TU_value%255;
           
            //get PH value
          PH = Get_Adc_Average(ADC_Channel_2,5)*(3.3/4096);// PA2 AD×a??
            PH_value=-5.7541*PH+16.654;
            if(PH_value<=0.0){PH_value=0.0;}
            if(PH_value>=14.0){PH_value=14.0;}
            delay_ms(5);
            //OLED??ê?PH value
            OLED_ShowNum(50,0,(int)PH_value,2,16);
            OLED_Refresh();    
           
    }

五、上位机部分源代码共享

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
string gate = msg.Substring(4, 2);
string node = msg.Substring(6, 2);
string temp = msg.Substring(8, 2);
string temp2 = msg.Substring(10, 2);
string tds = msg.Substring(12, 4);
string ph = msg.Substring(16, 2);

Int16 data_temp = 0, data_temp2 = 0, data_tds = 0, data_ph = 0;

data_temp = Convert.ToByte(temp, 16);
data_temp2 = Convert.ToByte(temp2, 16);
data_tds = Convert.ToInt16(tds, 16);
data_ph = Convert.ToInt16(ph, 16);


string tt = data_temp.ToString() + '.' + data_temp2.ToString();
Text_Temp.Invoke(showTemp, tt);
Text_Hum.Invoke(showHum, data_tds.ToString());
Text_Lux.Invoke(showLux, data_ph.ToString());

Write(DateTime.Now.ToString("yyyy-MM-dd"), nowtime + "+" + tt + "," + data_tds.ToString() + "," + data_ph.ToString() + "\r\n");

六、源代码链接

1
https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.15d11deblBXfYB&ft=t&id=632361207620