极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14474|回复: 6

养多肉的帮手 arduino 土壤湿度计

[复制链接]
发表于 2016-9-21 14:31:28 | 显示全部楼层 |阅读模式
我今年开始迷上养肉肉了,可夏天死了一大半:有的水多了而烂根,有的水少了干死了。
后来才想起利用arduino测土壤温度,就少有肉肉死去了-----也可能气温有下降一点吧。
成品如下,总成本才十多块钱。程序如下。

int ASignal = A6;
int val=0;
int ledPins[] = {11,9,7,5,3,4,6,8,10};    // 对应的led引脚

void setup() {
    Serial.begin(9600);
    pinMode(ASignal, INPUT);     
pinMode(ledPins[11,9,7,5,3,4,6,8,10], OUTPUT);   
digitalWrite(ledPins[11,9,7,5,3,4,6,8,10],LOW);
}

void loop() {
/*  
  val=analogRead(A6);   //val值从potPin信号口读取
  Serial.print("Moisture Sensor Value:");  
  Serial.println(val);      
  delay(100);//延时1S
*/  

  int sensorValue = analogRead(ASignal);   
  
if(analogRead(ASignal) >=900)
{
   digitalWrite(11, HIGH);  
   delay(10);
   digitalWrite(11, LOW);  
   delay(10);
  }

   if(analogRead(ASignal) <900  && analogRead(ASignal) >=807 )
{
   digitalWrite(9, HIGH);
  delay(10);
   digitalWrite(9, LOW);  
   delay(10);  
  }

   if(analogRead(ASignal) <807  && analogRead(ASignal) >=714 )
{
   digitalWrite(7, HIGH);  
    delay(10);
   digitalWrite(7, LOW);  
   delay(10);
  }

   if(analogRead(ASignal) <714  && analogRead(ASignal) >=621 )
{
   digitalWrite(5, HIGH);  
    delay(10);
   digitalWrite(5, LOW);  
   delay(10);
  }

   if(analogRead(ASignal) <621  && analogRead(ASignal) >=528 )
{
   digitalWrite(3, HIGH);  
    delay(10);
   digitalWrite(3, LOW);  
   delay(10);
  }

   if(analogRead(ASignal) <528  && analogRead(ASignal) >=435 )
{
   digitalWrite(4, HIGH);  
    delay(10);
   digitalWrite(4, LOW);  
   delay(10);
  }

   if(analogRead(ASignal) <435  && analogRead(ASignal) >=342 )
{
   digitalWrite(6, HIGH);  
    delay(10);
   digitalWrite(6, LOW);  
   delay(10);
  }

   if(analogRead(ASignal) <342  && analogRead(ASignal) >=249 )
{
   digitalWrite(8, HIGH);  
    delay(10);
   digitalWrite(8, LOW);  
   delay(10);
  }

   if(analogRead(ASignal) <249 )
{
   digitalWrite(10, HIGH);  
    delay(10);
   digitalWrite(10, LOW);  
   delay(10);
  }

}

就是将测试片不插入水或土壤时的阻值设定为第一个LED亮,将测试片完全插 水时的阻值设定为最后一个LED亮,其间的阻值均分为九段分别对应一个LED。


别外说明一点:用了这个arduino土壤温度计才真正认识到一个惊人的常识:种肉养花要用雨水。
如最后的照片所示,雨水的阻值不到自来水的一半。
当初我调试程序时用的是桶装水(用电烧水壶滚过的),插入测试片时设定为最后一个LED亮,但后来将测试片完全插雨水测却只是正中的那个LED会亮。如果是自来水,测试片插入一点点也是最后一个LED亮.


后来又买了小米花花草草检测仪,用了一次就不用了-----如后面照片所示:测试点太大拔出来的会将土拉出来(测试点厚4.6mm,而PCB厚不到1.6mm)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-9-21 20:57:16 | 显示全部楼层
对自己动手的表示积极支持!!
回复 支持 反对

使用道具 举报

发表于 2016-9-23 00:05:43 | 显示全部楼层
养多肉用腐殖土或椰砖就好了 透气透水  避免强光就行
每次浇水浇透 多的水自动排掉就行了

个人觉得探测用PCB容易导致PCB氧化 数值不稳定
用碳棒会好点。。。干电池上有。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-23 08:02:24 | 显示全部楼层
darkorigin 发表于 2016-9-23 00:05
养多肉用腐殖土或椰砖就好了 透气透水  避免强光就行
每次浇水浇透 多的水自动排掉就行了

谢谢,正准备去买椰砖呢。

我准备再做一个小一点的:用两根不锈钢或片代替PCB测试片、主板改用pro mini并取消杜邦母座而直接焊接、电池加升压板,整体做到一起。
做好后再贴上来。
回复 支持 反对

使用道具 举报

发表于 2016-9-23 09:34:56 | 显示全部楼层
leisd 发表于 2016-9-23 08:02
谢谢,正准备去买椰砖呢。

我准备再做一个小一点的:用两根不锈钢或片代替PCB测试片、主板改用pro min ...

不锈钢导电似乎不如碳棒
不锈钢并不是任何情况都不生锈,土壤里面PH值并不会一直持续维持在中性,并且电流将加速氧化
这也是为啥PCB电路不通电水里捞起来不会坏  通电的PCB雨水容易坏的原因
回复 支持 反对

使用道具 举报

发表于 2016-9-25 19:20:22 | 显示全部楼层
不想拆电池制造污染,可以用2B铅笔的芯
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-30 08:08:46 | 显示全部楼层
1981818001 发表于 2016-9-25 19:20
不想拆电池制造污染,可以用2B铅笔的芯

谢谢,晚点试试。
前几天试了一下,可以不用那土壤适度测试模块以节省空间------在检测点与5V之间接个10K的电阻,检测点与GND接两测试片/棒即可。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-23 14:42 , Processed in 0.040533 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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