土壤湿度传感器与 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 也会亮起。

【土壤湿度传感器与 Arduino 测量土壤湿度】相关推荐

  1. arduino 土壤温湿度传感器_如何将土壤湿度传感器与Arduino接口

    简介 如果您有家庭花园或者是带草皮的后院,那么你可能知道我们需要花多少时间浇灌植物和草皮. 花园洒水器是浇水的常用选择之一.草坪和植物,嗯,唯一的选择,最好的选择是手动浇水. 但是如果你打算制造一个自 ...

  2. 【物联网初探】- 08 - ESP32 操作电容式土壤湿度传感器(Arduino IDE)

    文章目录 1. 硬件.接线.环境配置 2. 电容式土壤湿度传感器 (arduino) 3. ESP32 与电容式土壤湿度传感器 3.1 接线 3.2 湿度数据读取 3.3 湿度传感器标定 Why , ...

  3. arduino 土壤温湿度传感器_土壤湿度传感器测试-arduino篇

    引言: 土壤传感器大家都用过,可是在实际应用中普遍发现老版的传感防水差,易氧化等问题,这次终于期盼到了新版防水土壤传感.感谢DF团队提供的这个测试机会.主控呢用的是Arduino 迷你,arduino ...

  4. arduino 土壤温湿度传感器_怎样将Arduino与土壤湿度传感器FC-28连接起来

    步骤1:在模拟模式下连接传感器 模拟模式 - 连接土壤湿度传感器和Arduino 要在模拟模式下连接传感器,我们需要使用传感器的模拟输出.从土壤湿度传感器FC-28获取模拟输出时,传感器给出的值为0- ...

  5. Arduino - DIY自动浇花系统(土壤湿度传感器+水泵)

    一.继电器的基础知识  参考: Easy EDA #学习笔记03# |3C-GO继电器驱动电路Realay 二.电路连接 D13-----------INT(继电器) D6-----------DO( ...

  6. arduino 土壤温湿度传感器_【教程】教你玩转Stduino之土壤湿度传感器模块

    大家好 今天我们就来看看土壤湿度传感器是如何测试土壤的吧! 关键词: 51:stm32:arduino:stduino单片机:stduino UNO&Nano:土壤湿度传感器模块 说明: 土壤 ...

  7. 《Arduino实验》实验:土壤湿度传感器检测土壤湿度

    文章目录 实验内容 实验器件 实验连线 实验步骤 实验代码 实验结果 实验内容 使用土壤湿度传感器检测土壤湿度,并在串口输出检测结果: 实验器件 arduino X 1 土壤湿度传感器 X 1 USB ...

  8. arduino 土壤温湿度传感器_Arduino 与 土壤湿度传感器 测量土壤湿度自动浇水提醒...

    土壤湿度传感器 1,传感器适用于土壤的湿度检测: 2,模块中蓝色的电位器是用于土壤湿度的阀值调节, 顺时针调节,控制的湿度会越大,逆时针越小 3,数字量输出D0可以与单片机直接相连,通过单片机来检测高 ...

  9. Arduino 与 土壤湿度传感器 测量土壤湿度自动浇水提醒

    土壤湿度传感器 1,传感器适用于土壤的湿度检测: 2,模块中蓝色的电位器是用于土壤湿度的阀值调节, 顺时针调节,控制的湿度会越大,逆时针越小 3,数字量输出D0可以与单片机直接相连,通过单片机来检测高 ...

  10. arduino 土壤温湿度传感器_【雕爷学编程】Arduino动手做(70)---土壤湿度传感器...

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

最新文章

  1. Linux常用性能检测命令
  2. 如何计算空中四个点是不是在一个平面上
  3. 新疆电信IBSS系统集中联机热备份--案例
  4. Eclipse 3.5 Classic+Tomcat 6.0+MySql 5.5搭建java web开发环境
  5. [scala-spark]4. 函数式编程
  6. 从特斯拉到计算机视觉之「图像语义分割」
  7. kalman滤波器公式的推导
  8. 再说深度学习是黑匣子,就把这篇文章糊 Ta 脸上
  9. 为什么叫C++而不叫++C ?
  10. c语言全文件操作函数,C语言文件操作函数大全
  11. python rest api client_Python py-jama-rest-client包_程序模块 - PyPI - Python中文网
  12. Alfresco安装与配置图解
  13. 使用PLC编程(ST语言)开发的DES加密解密功能块
  14. 书摘—跟鬼谷子学处世 跟菜根谭学修身
  15. html 手机底部广告,手机网站被UC浏览器强制嵌入推荐广告解决方案
  16. MySQL局域网连接失败问题解决
  17. 酷站60个漂亮可用的外文站点欣赏(经典推荐)
  18. Len和lenB的区别
  19. AndroidStudio Sync遇到版号问题
  20. 餐饮app开发市场前景如何?行业竞争激烈吗?

热门文章

  1. 嵌入式课程设计 —— GPIO接口编程
  2. SAS学习笔记41 宏变量存储及间接引用
  3. 无法解析类型 javax.swing.JComponent。从必需的 .class 文件间接引用了它
  4. 【机器学习】python实现非线性回归(以中国1960-2014GDP为例)
  5. 移动oa咋显示无法连接服务器,移动oa办公系统管理维护技巧:让本地连接不再受限的方法...
  6. java与wps_java能否wps调用页码
  7. 建立正确的目标收益率
  8. PS 快捷键大全(psshortcut)
  9. GitChat 使用指南,快速学习、飞速成长
  10. 退出matlab环境的命令行,实验一 MATLAB环境及命令窗口的使用