Arduino之旅(一)桌面自动浇灌系统之三:总结篇
这个Case到了这里就告一段落了,淅淅沥沥的写了有几篇了,感觉没有一篇是个全貌的。这篇就做个总结吧。
这个桌面自动浇灌系统总体上逻辑简单,使用的模块也不多,非常适合初学者第一次练手。先把使用的模块做个总结。
一、模块篇
(1)Arduino UNO板卡
上图是我这次用的,OpenJumper Zduino uno r3 开发板,淘宝链接如下:
https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-14066433630.16.FAz7MF&id=16777219005
价格嘛,60多元,有点儿小贵。我后来又找了一个UNO的兼容板,打算下一个Case的时候用。价格合格,25元左右,质量待定。链接如下:
https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-6778094070.15.r3VZAO&id=17520908234
(2)土壤湿度传感器模块
上图是我这次用的,微雪的土壤湿度计检测模块,探头型的,兼容 Arduino,价格也是超贵,好吧,毕竟我第一次,吃药总是难免的,14块大洋,链接如下:
https://item.taobao.com/item.htm?id=41353127765
不过勤能补拙,以下是我打算以后替代的模块链接,2.7元,妥妥的:
https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-6778094070.26.d6KiaQ&id=36598169407
(3)继电器模块
上图是我这次用的,OpenJumper的继电器模块,12大洋,还是贵。可以试试下面的链接:
https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-6778094070.24.ol5OxY&id=525749206437
3元不到,东西基本一样,让我哭一会儿.......
(4)水泵
在淘宝上找的,价格合适,15元以内,加上12V电源和上下水管,35元以内搞定。https://item.taobao.com/item.htm?id=521327401368
(5)分流器
淘宝产品,15元以内
https://item.taobao.com/item.htm?id=540420247725
(6)其它
杜邦线若干,蓄水装备自制。
----------------------------------------------------我是分割线------------------------------------------
二、设计篇
模块都有了,就需要按图纸装配。这里需要说一下,虽然设计是第二篇,但必须是首先要做的事情。哈哈。下图简陋,完美主义者请跳过。
【小经验】画图时,把端口号标上,装配的时候会方便很多。
----------------------------------------------------我是分割线------------------------------------------
三、程序篇
程序这块就不多说了,做了几次小优化,下面直接贴出来。另外Arduino IDE不能写中文注释,让人头疼。
/*
# Example code for the soil moisture sensor,AutoIrrigate System
# Editor : bingbingyouli
# Date : 2016.11.24
# Version : 1.0
# Connect the sensor to the A0(Analog 0) pin on the Arduino board
# the sensor value description
# 0 ~300 dry soil
# 300~700 humid soil
# 700~950 in water
*/
#define SoilSensorPort 0 //Soil sensor put A0 port
#define electricRelayPort 7 //Relay put 7 port
#define moistureKey 400 // Moisture Key,if lower than 400,so...
#define CheckTime 200000 //Check soil for twelve times,interval 200 seconds
#define irrigateTime 2000 //irrigate for 2 seconds
#define sleepTime 1200000 //wait for 1200 seconds,next...
#define Count 12 // sum Checkresult with 12 times,filter noise
int result;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(electricRelayPort,OUTPUT);
result = 0 ;
}
void loop() {
// put your main code here, to run repeatedly:
for (int i = 0 ; i< Count;i++ ){
Serial.print(millis());
Serial.print( " Checking " );
Serial.print( i+ 1);
Serial.print( "......" );
int result1 = analogRead(SoilSensorPort);
Serial.println( result1 );
result += result1;
delay(CheckTime);
}
result = result / Count;
Serial.print("Moisture Sensor Value:");
Serial.println(result);
if (result < moistureKey){
Serial.println( " Starting irrigate... ");
digitalWrite(electricRelayPort,HIGH);
delay(irrigateTime);
digitalWrite(electricRelayPort,LOW);
Serial.println( " Stopping irrigate... ");
}
result = 0;
Serial.print(millis());
Serial.println( " Sleep......");
delay(sleepTime);
}
----------------------------------------------------我是分割线------------------------------------------
四、实景篇
说了半天了,没图没真相。
全景图(分流器还没接上),插口相对简单,传感器接在模拟口A0,继电器接在数字口7;12V电源接在继电器上,再串接水泵;上水管接在矿泉水瓶子里,下水管直接插花里了,也可以接一个分流器,多浇几盆。
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com