### 6.3.12 水位传感器

#### 6.3.12.1 简介

本教程将为您详细介绍水位传感器的使用方法和应用技巧。水位传感器是一种用于检测液体高度的电子设备，广泛应用于水塔监控、水箱管理和环境监测。教程内容包括水位传感器的工作原理、引脚功能、电路连接方法以及如何通过微控制器（如ESP32）读取和处理水位数据。您将学习如何编写代码来实现实时水位监测、自动报警以及数据校准和误差修正。无论您是电子初学者还是有经验的开发者，本教程都将帮助您掌握水位传感器的应用，为您的项目增添精确的液体高度检测功能。

#### 6.3.12.2 元件知识

**水位传感器：** 与土壤传感器的原理相同都是通过检测电导率变化来测量。水面淹没的传感器感应区越少，电导率降低，传感器输出的模拟值减小；水面淹没的传感器感应区越多，电导率增加，传感器输出的模拟值增大。这种传感器简单实用，适合用于农业灌溉、园艺等场景。

![Img](../media/water-level.png)

**原理图：**

![Img](../media/water-level1.png)

⚠️ **注意：** 不要让传感器的元器件碰到水，可能会损害传感器以及开发板 

#### 6.3.12.3 接线图

- **水位传感器的S引脚连接到io33**

⚠️ **特别注意：智慧农场已经组装好了，这里不需要把水位传感器拆下来又重新组装和接线，这里再次提供接线图，是为了方便您编写代码！**

![Img](../media/couj91.png)

#### 6.3.12.4 实验代码

代码文件在`Mixly_代码`文件夹中，代码文件为`6_3_12_Water-Level-Sensor.mix`，如下图所示：

![Img](../media/acouj-014.png)

单击 “**文件**” --> “**打开**”，然后选择保存代码的路径，选中代码文件打开即可，如下图所示：

![Img](../media/acouj-00.png)

![Img](../media/acouj-014-1.png)

**认识代码块**

① 这是初始化代码块，初始化代码块里面的内容只执行一次。

![Img](../media/initialize.png)

② 设置串口。

![Img](../media/Sarial1-1.png)

设置串口波特率，一般波特率设置为`9600`或`115200`。

![Img](../media/Sarial1-2.png)

串口输出数据，从串行端口输出数据，分换行与不换行两种方式。

![Img](../media/Sarial1-3.png)

③ 向指定管脚读取水位传感器的水位高度值（模拟值）。

![Img](../media/ab14.png)

④ 这是文本代码块，里面可以填入一个字母、单词或一行文本。

![Img](../media/ab7-2.png)

⑤ 将程序的执行暂停一段时间，也就是延时，单位是毫秒。 

![Img](../media/ab0.png)

**组合代码块**

![Img](../media/Mixly-code14.png)

#### 6.3.12.5 实验结果

按照接线图接好线，外接电源，选择好正确的开发板板型（ESP32 Dev Module）和 适当的串口端口（COMxx），然后单击按钮![Img](../media/upload2.png)上传代码。上传代码成功后，单击Mixly IDE左上角的![Sarial1](../media/Sarial1.png)打开串监视器串口并设置串口波特率为`9600`, 即可通过串口打印窗口查看水位传感器的模拟值，将水位传感器放置到容器中然后往容器中加水，注意不要超过安全线。  

![Img](../media/Water-1.jpg)

**串口现象图：**

![Img](../media/Photordata2.png)