土壤湿度传感器测试-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
这个灯条还可以这样用,太酷了!
那是他这样用的,哈哈哈 hnyzcj 发表于 2020-9-22 15:31
那是他这样用的,哈哈哈
超大号颜色指示剂,创意满分! 传感器好评 汤果 发表于 2020-9-22 16:13
超大号颜色指示剂,创意满分!
多谢支持 l版主速度,赞{:6_215:} 跟着学跟着做
页:
[1]