2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【土壤湿度传感器与 Arduino 测量土壤湿度】

【土壤湿度传感器与 Arduino 测量土壤湿度】

时间:2021-03-19 05:42:24

相关推荐

【土壤湿度传感器与 Arduino 测量土壤湿度】

土壤湿度传感器与 Arduino 测量土壤湿度

前言土壤湿度传感器引脚土壤湿度传感器的工作原理土壤湿度传感器组成关于土壤湿度传感器模块的常见问题土壤湿度传感器模块电路图Arduino土壤湿度传感器电路 - 连接图Arduino 土壤湿度传感器 代码土壤湿度传感器模块的工作

前言

在构建智能灌溉系统或自动植物浇水系统时,首先想到的是土壤 湿度传感器。有了这个传感器和一点 Arduino 支持,我们可以设计一个系统,可以在需要时给植物浇水,避免过度浇水和水下。

在本文中,我们将使用arduino连接土壤湿度传感器,并测量土壤中水的体积浓度。该传感器的设计方式使其可以以数字和模拟模式输出数据。我们将读取此数据并使用 LED 显示输出状态以进行数字输出,我们将使用串行监视器或带PWM的 LED进行模拟输出。因此,事不宜迟,让我们开始吧。

土壤湿度传感器引脚

土壤湿度传感器有四个引脚 VCC、GND、Aout、Dout。这四个引脚可用于从传感器获取土壤湿度数据,土壤湿度传感器的引脚排列如下:

VCC==》是土壤湿度传感器的电源引脚,可以连接到电源的 3.3V 或 5V。但请注意,模拟输出会因提供的电源电压而异。

GND==》是电路板的接地引脚,它应该连接到 Arduino 的接地引脚

DO==》是板子的数字输出引脚,输出低表示土壤湿度合适,输出高表示土壤湿度低。

AO==》是电路板的模拟输出引脚,它将在 vcc 和地之间为我们提供模拟信号。

土壤湿度传感器的工作原理

如下图所示,土壤湿度传感器的工作非常简单明了。我们只需要将叉形导电探针粘在土壤上,因为探针有两个暴露的导电板,它们将充当可变电阻器 ,其电阻会根据土壤中的含水量而变化。

探头的这个电阻与设备的土壤湿度成反比。土壤中的水越多,导电性就越好,这将导致电阻降低。土壤中的水越少,导电性越差,这意味着电阻越高。该传感器根据电阻产生输出电压,通过测量我们可以确定水分含量。

上述土壤湿度传感器的 GIF 动画显示了传感器的模拟输出如何根据土壤中的水位变化。如您所见,当向土壤中添加水时,电压从 5V 降至 0V。您还可以看到,当向土壤中添加水时,板上的信号 LED 会亮起。为了简单起见,我们没有在上面的 GIF 中展示数字引脚是如何工作的。当水被添加到土壤中时,数字引脚在板载比较器运算放大器的帮助下从低 (0V) 移动到高 (5V),您可以使用模块上的电位计(蓝色)控制该数字引脚的灵敏度。

土壤湿度传感器组成

整个土壤湿度传感器由两部分组成:第一部分是土壤湿度传感器探头,第二部分是电子模块。该模块处理来自探头的传入数据,并由像 Arduino 这样的微控制器处理,我们得到最终输出。

土壤湿度传感器探头:

正如我们之前所说,传感器包含一个带有两个大的外露导电垫的叉形探头。探头就像一个可变电位器,其值可以由 Arduino 等微控制器读取。

土壤湿度传感器模块:

土壤湿度传感器模块用于将输入的模拟信号转换为数字信号;其设计方式使得传感器可以在没有微控制器支持的情况下使用。该模块由连接探头的两个信号输入引脚组成。它还有四个其他引脚,其中两个是 VCC 和 GND。另外两个是数字输出和模拟输出引脚。

该模块还包含一个高精度比较器 LM393,用于对来自传感器探头的模拟信号进行数字化处理。该模块有一个内置电位器,用于数字输出的灵敏度调节。电位器的主要目的是设置一个阈值,这样当水分含量超过阈值时,模块将输出低电平,否则输出高电平。该模块的此功能非常方便,因为当达到某个阈值时,您可以触发一个可以开始抽水的继电器。

传感器应放置在现场的几个不同深度和位置。通常,传感器成对放置在作物根区深度的三分之一和三分之二处以及田间的两个或多个位置,最好远离高点、洼地和斜坡。

关于土壤湿度传感器模块的常见问题

土壤湿度传感器应该放在哪里?

传感器应放置在现场的几个不同深度和位置。通常,传感器成对放置在作物根区深度的三分之一和三分之二处以及田间的两个或多个位置,最好远离高点、洼地和斜坡。

土壤湿度传感器可以覆盖多少面积?

这取决于传感器。基于卫星的无源微波传感器将覆盖非常广泛的地面区域,而廉价的传感器只能覆盖 20-30 厘米的土地。

为什么要持续监测土壤水分?

土壤湿度监测可以帮助种植者有效地利用和应用水和养分。所有土壤湿度仪器都提供数据,帮助种植者做出关于施用多少水以及何时施用的正确决定。

哪种土壤湿度传感器最好?还有哪些其他选择?

这里讨论的土壤湿度传感器主要用于爱好应用。如果您正在寻找专业应用,下面给出了前五名最佳土壤湿度传感器:

Sonkir MS02 土壤 pH 计 – 最佳整体。…

VIVOSUN 3 合 1 植物水分计 - 最佳价值。…

Gain Express 土壤 pH 和湿度计 - 优质选择。…

XLUX T10 土壤湿度传感器

通用土壤湿度传感器

土壤湿度传感器模块电路图

土壤湿度传感器模块示意图如下所示。原理图本身非常简单,需要一些通用组件来构建。如果您手头没有预建模块但仍想测试您的项目,下面的示意图将派上用场。

在原理图中,我们有一个LM393 运算放大器,它是一个低功耗低失调电压可以由 3.3V 或 5V 电源供电的运算放大器。请注意,设备的模拟输出电压将取决于输入电压。该运算放大器的主要工作是将来自传感器探头的输入模拟信号转换为数字信号。还有这个 10K 电位器用于设置运算放大器的参考电压,传感器的输入电压低于电位器设置的阈值电压,运算图的输出变低。除此之外,我们还有两个 LED。第一个是电源 LED,另一个是触发 LED。电路板通电时电源 LED 亮起,达到某个设定阈值时触发 LED 亮起。这就是这个基本电路的工作原理。

Arduino土壤湿度传感器电路 - 连接图

现在我们已经完全了解了土壤湿度传感器的工作原理,我们可以将所有必需的电线连接到 Arduino UNO 板。这部分文章将分为两部分,一个显示模拟输出,另一个显示数字输出。让我们从模拟电路开始——

土壤湿度传感器 - 模拟输出:

要使用传感器,我们需要先为传感器供电,因为我们使用的是 Arduino UNO 板的 5V 和 GND 引脚。

如上面的arduino土壤湿度传感器电路图所示,我们将一个LED连接到Arduino的数字引脚6,传感器的模拟输出引脚连接到Arduino UNO板的A0引脚,最后,接地是公共的LED 和传感器。我们将对 Arduino 进行编程,以便 LED 的亮度将根据探针感应到的土壤湿度数据而变化。

土壤湿度传感器 - 数字输出:

对于数字接口部分,我们还使用 Arduino 的 +5V 和接地为传感器模块供电。

将土壤湿度传感器连接到 Arduino 或任何其他微控制器非常简单。众所周知,传感器输出模拟和数字信号,因此处理此信号非常容易。

Arduino 土壤湿度传感器 代码

基于 Arduino 的土壤湿度传感器的代码非常简单易懂。我们只是从传感器中读取模拟数据,并根据接收到的数据改变 LED 的亮度。请记住,我们只处理来自传感器的模拟数据,您可以看到模块中的板载 LED 亮起的数字数据。

我们通过声明两个宏来初始化我们的代码,第一个是用于连接 LED 的 LED,第二个是用于读取传感器数据的 sensorPin。

// Sensor pins pin D6 LED output, pin A0 analog Input#define ledPin 6#define sensorPin A0

接下来,我们有我们的setup()函数。在 setup 函数中,我们用 9600 波特初始化串口。我们还将 ledPin 设置为输出,并将引脚设为低电平。这样,引脚将不会浮动并打开 LED。

void setup() {Serial.begin(9600);pinMode(ledPin, OUTPUT);digitalWrite(ledPin, LOW);}

接下来,我们有我们的loop()函数,在循环函数中,我们在串行监视器窗口上打印“模拟输出:”作为文本,然后我们在 Serial.println() 函数中调用readSensor ( )函数,这样一旦readSensor ()函数被执行,它返回数据并打印在串行监视器窗口上,

void loop() {Serial.print("Analog output: ");Serial.println(readSensor());delay(500);}

最后,我们有自定义的readSensor ()函数,它返回通过 Arduino 的 A0 引脚读取的模拟值。在该函数的第一行中,我们声明并定义了一个名为sensorValue的变量,我们将在其中放置原始数据,该数据通过 Arduino 中的 A0 读取。该数据为 10 位格式,范围为 0 -1023,以便将 10 位数据转换为 8 位数据。这就是我们使用 map 函数的原因,一旦 map 函数输出数据,我们就会启动另一个变量outputValue并将映射的数据放入该变量中。最后,我们使用了内置的analogWrite (ledPin, outputValue)Arduino 生成与 arduino 的 ADC 读取的输入数据成比例的 PWM 信号的功能

int readSensor() {int sensorValue = analogRead(sensorPin); // Read the analog value from sensorint outputValue = map(sensorValue, 0, 1023, 255, 0); // map the 10-bit data to 8-bit dataanalogWrite(ledPin, outputValue); // generate PWM signalreturn outputValue; // Return analog moisture value}

土壤湿度传感器模块的工作

下面的 gif 显示了工作中的土壤湿度传感器。起初,你可以看到面包板上的 LED 强度很低,但是当锅里加一点水时,LED 的强度会增加,然后模块的板载 LED 也会亮起。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。