### 5.3.11 土壤湿度传感器

#### 5.3.11.1 简介

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

#### 5.3.11.2 元件知识

**土壤湿度传感器:** 通过检测土壤的电导率变化来测量湿度，传感器采用叉形设计，方便插入土壤。传感器插入土壤后，当土壤缺水时，电导率降低，传感器输出的模拟值减小；当土壤湿润时，电导率增加，传感器输出的模拟值增大。这种传感器简单实用，适合用于农业灌溉、园艺等场景。

![Img](../media/Soil-moisture.png)

**原理图：**

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

**参数：**

- 工作电压: DC 3.3V~5V
- 信号类型: 模拟信号

#### 5.3.11.3 接线图

- **土壤湿度传感器的S引脚连接到io32**

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

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

#### 5.3.11.4 实验代码

代码文件在`KidsBlock(Scratch)_代码`文件夹中，代码文件为`5_3_11_Soil-Humidity-Sensor.sb3`，如下图所示：

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

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

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

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

**认识代码块**

① 这个代码块，表示当启动ESP32这块开发板时，将运行代码。

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

② 设置串口。

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

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

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

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

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

③ 向指定引脚设置 “输入” 或 “输出”，选择 “输入” 代表给该引脚设置输入模式；选择 “输出” 代表给引脚设置输出模式；选择 “输入上拉” 代表给该引脚设置输入模式并且使该引脚变成高电平。

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

④ 循环语句，顾名思义就是重复做一件事。

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

⑤ 读取土壤湿度传感器的土壤湿度值（模拟值）。

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

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

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

**组合代码块**

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

#### 5.3.11.5 实验结果

按照接线图接好线，外接电源，选择好正确的开发板板型（ESP32 Dev Module）和 适当的串口端口（COMxx），然后单击按钮![Img](../media/upload.png)上传代码。上传代码成功后，单击KidsBlock IDE右下角的![Sarial2](../media/Sarial2.png)设置串口波特率为`9600`，即可通过串口打印窗口查看土壤湿度传感器的模拟值，如果你没有盆栽可以用纸巾用水轻微打湿土壤湿度传感器的检测区。  

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

**串口现象图：**

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