Arduino实现智能浇花系统


还在担心不在家时没法给花浇水?现在就教你做基于arduino的自动浇花系统。液晶屏上会显示温度以及插座的开关状态,我是用的是潜水泵,因为潜水泵使用比较方便,也为了以后好改,我把模块和板子装进了个纸盒里,防止水花溅到板子上。新人发帖,如果有不足之处,请多多指教。

材料清单:

1.把继电器装进插座:

2.接线:

写入程序:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
float temp = 0;
int shidu = 2;
int shuibeng = 7;
int L = 6;
LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
lcd.init();
lcd.backlight();
pinMode(shidu,INPUT);
pinMode(shuibeng,OUTPUT);
pinMode(L,OUTPUT);
Serial.begin(9600); 
}

void loop() { 
static unsigned long sensortStamp = 0;
int reading = analogRead(0);
temp = reading * (5.0 / 1023.0*100)-3; 
delay(1000);


if(digitalRead(shidu)==HIGH&temp>20){         
       digitalWrite(shuibeng,HIGH);
       lcd.setCursor(0,1);
       lcd.print("Water=");
       lcd.print("true ");  
       digitalWrite(L,HIGH);

                lcd.setCursor(0,0);
       lcd.print("Watering...     ");
}else{
   lcd.setCursor(0,0);
   lcd.print("temp=");
   lcd.print(temp);    
     if(temp<15){ lcd.setCursor(10,0); lcd.print("(cold)"); } if(temp>15&temp<30){ lcd.setCursor(10,0); lcd.print("(good)"); } if(temp>30){ 
      lcd.setCursor(10,0);     
      lcd.print("(hot) "); 
     }
Serial.println(temp); 

  digitalWrite(shuibeng,LOW);
  lcd.setCursor(0,1);
  lcd.print("Water=");
  lcd.print("false");
  digitalWrite(L,LOW); 
}

使用到的库文件: LiquidCrystal_I2C

成品图片:






下面是演示视频:

以后就不用考虑花的浇水问题了,但要注意的是水盆里要定期补水,否则电机干烧。

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*