如何使用土壤传感器确定您的植物浇水时间

电子说

1.3w人已加入

描述

这篇文章来源于DevicePlus英语网站的翻译稿。

持续给植物浇水以及保持其健康状态是很重要的。但是,如果您很难记住自己是否已经浇过水,或者您想要能够有一个提醒,您可以通过使用土壤传感器制作一个设备来帮助您追踪植物土壤中的水分含量。本指南将向您展示如何进行操作。

 

工作原理

土壤传感器具有两个长探针,您需要将其插入植物土壤中。这些探针可以用作电阻器。干燥的土壤导电性不是很好,所以这时候电阻值会更高。随着水分含量的升高,电导率增加,从而使流向Arduino的电压值增大。通过测量此电压值,您的项目可以根据土壤的干燥或潮湿程度进行响应。
该电压值会被传递到您的项目中用作变量,并以对您来说最合适的方式对干燥植物进行响应。例如,您可以将响应方式设置为用水喷洒植物。但在本项目中,为了简单起见,我们将设置为当检测到水分含量过低时打开LED。如果您看到灯亮了,那就说明该给植物浇水了。

使用此类传感器时要注意的很重要的一点是,金属探针会随着时间的推移发生氧化,从而失去其有效性。如果您经常使用它们,那么可能需要每年更换一次传感器。不过这些传感器非常便宜,所以这应该不是什么大问题。

Arduino

所需部件

对于在本项目中我们要制作的版本,您不需要除了标准电子套件材料外的其他太多零件。但是需要注意的是,如果您想要将其部署在自己的花园中,那么可能需要做一些额外的工作以确保您的项目不受户外因素的影响。

Arduino Uno Arduino
湿度传感器 Arduino
LED Arduino
面包板& 电线 Arduino
Arduino IDE Arduino
USB数据线 Arduino

 

如果您打算将此项目放在户外或者其他Arduino可能会溅到水的地方,您可能还需要购买一个保护壳。

代码

这个项目的代码非常简单。请将以下脚本复制到您的IDE并将其上传到开发板。

int sensorPin = A0;
int moistureLevel ;
int LED = 6;
int sensorValue = 0;

void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin);
moistureLevel = map(sensorValue,0,550,0,100);
Serial.println(sensorValue);
delay(30);

if (moistureLevel < 50) {
analogWrite(LED, HIGH);
} else {
analogWrite(LED, LOW);
}
}

现在,在开始接线前,我们先来了解一下草图中的每一部分。

int sensorPin = A0;
int moistureLevel ;
int LED = 6;
int sensorValue = 0;

首先,我们将会定义一些变量。sensorPin变量用于从湿度传感器读取输入值。moistureLevel变量会在把湿度值映射到可用范围后将其进行存储,而LED将会存储引脚6的值。最后,我们将添加一个变量来存储来自湿度传感器的值。

void setup() {
Serial.begin(9600);
}

设置部分相当简单。根本上来说,我们只用启动串行监视器来查看传感器输出值即可。

sensorValue = analogRead(sensorPin);
moistureLevel = map(sensorValue,0,550,0,100);
Serial.println(sensorValue);
delay(30);

这里的第一行将用于读取湿度传感器的输出。该输出值的范围是0到1023,所以下一行将用于把该值重新映射到0至100范围内,这会使其更易于管理。然后该值会被输出到串行监视器,以便您进行实时监控。最后,我们添加了一个简短的延迟。您可以根据自己的需要对其进行调整。调整该设置不会有多大影响,但是湿度传感器无法过于频繁地进行更新。

if (moistureLevel < 50) {
analogWrite(LED, HIGH);
} else {
analogWrite(LED, LOW);
}

在最后一部分中,我们将获取来自湿度传感器并重新映射后的最终输出值,然后通过使用该值来实现在植物太干时打开LED。一旦输出值低于50时,LED就会亮起,表示土壤已干燥。当输出值超过50,LED将会关闭。您可以根据在串行监视器看到的内容对此数字进行调整,以确保它可以准确反映植物的水分含量。

接线

这个项目的接线并不太复杂,但是您可以根据湿度传感器的输出值设计响应动作,从而进一步扩展该工作电路。但在本项目中,我们只用一个LED作为响应。现在连接所有部件:

● 将湿度传感器的GND引脚连接到Arduino的GND。
● 将湿度传感器的VCC引脚连接到5V。
● 将湿度传感器的信号引脚连接到引脚A0。
● 将LED的短脚连接到引脚6。
● 在LED的长脚一端连接一个220欧姆的电阻。
● 将电阻的另一端接地。

完成后,将湿度传感器放入盆栽土壤中,并使用串行监视器监测它返回的值。您可以根据自己的需要对代码进行调整。您还可以尝试通过添加其他部件来扩展此项目。例如,您可以将项目设置为在植物变干时进行自动喷洒操作。

Arduino
DevicePlus 编辑团队

设备升级版适用于所有热爱电子和机电一体化的人。 

审核编辑 黄宇


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分