风筝
发表于: 2019-8-20 19:37:35 | 显示全部楼层

在本篇文章中,您将学习如何使用土壤湿度传感器,并且还提供了实用示例来帮助您掌握代码。

soil-moisture-tutorial-teaser.jpg


土壤湿度传感器 - 它是如何工作的?

土壤湿度传感器由两个探测器组成,用于测量土壤中的水量。两个探头允许电流通过土壤,并根据其电阻测量土壤的水分含量。


当水量较多时,土壤传导更多的电流,这意味着阻值将更小。因此水分含量会更高。干土会降低电导率。因此,当水量较少时,土壤传导的电量较少,这意味着它具有更大的阻值。因此水分含量会降低。

soil-moisture-tutorial-2.jpg


土壤湿度传感器 - 引脚

市场上有不同类型的土壤水分传感器,但它们的工作原理都是相似的;因此,如果您的传感器与本文中的传感器不同,请不要担心!所有这些传感器至少有三个引脚:VCC、GND和AO。 AO引脚根据土壤中的水量而变化,并随着土壤中的水量增加而增加。某些型号还有一个名为DO的基准。如果水量小于允许量(可以通过传感器上的电位器改变),DO引脚将为“1”,否则将保持为“0”。


土壤湿度传感器与Arduino连接

在本文中,我们使用了Waveshare的土壤湿度传感器。它的检测长度为38mm,工作电压为2V-5V。它采用叉状设计,便于插入土壤中。模拟输出电压随着土壤湿度水平的增加而增加。


电路

使用这种传感器的电路非常简单。将AO引脚连接到任何模拟引脚。如果传感器有DO引脚,则可以将其连接到任何数字引脚。

soil-moisture-tutorial-fritzing.jpg


代码

  1. /*
  2.   Soil Moisture Sensor  
  3.   modified on 21 Feb 2019
  4.   by Saeed Hosseini @ Electropeak
  5.   https://electropeak.com/learn/
  6. */
  7. #define SensorPin A0
  8. float sensorValue = 0;
  9. void setup() {
  10.   Serial.begin(9600);
  11. }
  12. void loop() {
  13.   for (int i = 0; i <= 100; i++)
  14.   {
  15.     sensorValue = sensorValue + analogRead(SensorPin);
  16.     delay(1);
  17.   }
  18.   sensorValue = sensorValue/100.0;
  19.   Serial.println(sensorValue);
  20.   delay(30);

  21. }
复制代码

对于每次土壤水分测量,我们平均采用100个传感器数据,使数据更加平稳和准确。

soil-moisture-tutorial-results.jpg


请注意,10-20个月后,传感器可能会在土壤中被氧化而失去准确性。 因此,您应该每年更换它。 由于它价格低廉,易于安装,值得每年更换。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 705 | 回复: 1492



手机版|

GMT+8, 2024-11-8 17:44 , Processed in 0.041771 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表