gada888 发表于 2020-9-22 13:03:49

土壤湿度传感器测试-arduino篇

引言:土壤传感器大家都用过,可是在实际应用中普遍发现老版的传感防水差,易氧化等问题,这次终于期盼到了新版防水土壤传感。感谢DF团队提供的这个测试机会。主控呢用的是Arduino 迷你,arduino做的各种应用广泛被开源硬件爱好者喜欢。这次的项目利用了RGB灯和蜂鸣器来反应植物的情绪,例如缺水,湿润等,达到互动娱乐性。 相关视频展示如下:https://www.bilibili.com/video/BV1Gt4y1q7cL/ 第一步:展示内容将传感放入水中后,传感相连的RGB灯则变色,变成紫红色。出水则报警和变回灰色。第二步:代码要点先用串口的代码来找到传感在空气和水中的值,然后把这个值做一个简单的运算。得到精确的临界值。第三步:硬件搭建所需器材:A rduino mini控制器(2);DF的防水土壤传感器(3);5V蜂鸣器(4);5v锂电池;(5);USB数据线;(6);DF的RGB灯板
第四步:了解一下关键硬件的参数根据测试,土壤传感的灵敏度很好,没有延迟,
第五步:发一些硬件的图片。让人有个直观的认识 第六步:总体概括项目用RGB灯和Buzzer来反应出土壤传感的回传值。这个值和你插入土中的传感的深度相关。这里我插入的是传感的三分之一,那么我是从这个点取值,即400.展现的结果是传感遇水则发出红紫色,缺水则用Buzzer发警告,同时RGB灯的颜色变灰。具体参见视频。第七部:连线图连线图如下:第八部:代码部分的设计
void setup() {      Serial.begin(9600); // open serial port, set the baud rate to 9600 bps
    }
    void loop() {
      Serial.println(analogRead(A0)); //connect sensor and print the value to serial
      delay(100);
    }
先用上面的代码测出你的传感的干湿范围。
我取的是600空气值和400水湿度.你可以参考一下产品WIKI的描述
=============
记录传感器放置在空气中时读到的模拟值,代表干燥时的读数。由于空气中的湿度不同,该
数值区间一般在520-640之间。
将传感器插入水中一定深度,深度推荐在"Recommend Depth"之间,不要超过板子上
的"Warning Line"。待传感器反馈数值为0时,代表100%湿度的读数,此时根据传感器上的刻
度,记录读到的深度值,在土壤中使用时,也推荐插入至该深度值。

=============
/*This sketch is created by gada888*/

const int AirValue = 600; //you need to change this value that you had recorded in t
const int WaterValue = 400; //you need to change this value that you had recorded in th
int intervals = (AirValue - WaterValue)/3;
int soilMoistureValue = 0;

int RLed = 2;
int GLed = 3;
int BLed = 4;

int piezoPin = 8;
int pitches[] = {523, 587, 659, 698, 784};
int numPitches = 5;

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

pinMode(RLed, OUTPUT);
pinMode(GLed, OUTPUT);
pinMode(BLed, OUTPUT);
}
void loop(){
soilMoistureValue = analogRead(A0); //put Sensor insert into soil
if(soilMoistureValue > WaterValue && soilMoistureValue < (WaterValue + intervals))
{
Serial.println("Very Wet");
    digitalWrite(RLed, LOW);
    digitalWrite(BLed, LOW);
    digitalWrite(GLed, HIGH); //Green LED
}
else if(soilMoistureValue > (WaterValue + intervals) && soilMoistureValue < (AirValue - intervals))
{
Serial.println("Wet");
    digitalWrite(RLed, LOW);
    digitalWrite(BLed, LOW);
    digitalWrite(GLed, HIGH); //Green LED
}
else if(soilMoistureValue < AirValue && soilMoistureValue > (AirValue - intervals))
{
Serial.println("Dry");
    digitalWrite(RLed, HIGH);
    digitalWrite(BLed, LOW); //Blue LED
    digitalWrite(GLed, LOW);
    int i;
   for( i=0; i<numPitches; i++){
   tone(piezoPin, pitches, 200);
   delay(200);
}
delay(100);
}
}

汤果 发表于 2020-9-22 13:22:18

这个灯条还可以这样用,太酷了!

hnyzcj 发表于 2020-9-22 15:31:43

汤果 发表于 2020-9-22 13:22
这个灯条还可以这样用,太酷了!

那是他这样用的,哈哈哈

汤果 发表于 2020-9-22 16:13:16

hnyzcj 发表于 2020-9-22 15:31
那是他这样用的,哈哈哈

超大号颜色指示剂,创意满分!

rzyzzxw 发表于 2020-9-22 21:14:23

传感器好评

gada888 发表于 2020-9-24 07:51:53

汤果 发表于 2020-9-22 16:13
超大号颜色指示剂,创意满分!

多谢支持

gray6666 发表于 2020-9-25 16:21:51

l版主速度,赞{:6_215:}

sh50 发表于 2022-3-2 15:37:55

跟着学跟着做
页: [1]
查看完整版本: 土壤湿度传感器测试-arduino篇