Arduino - 自动浇花(土壤湿度传感器+水泵)

/*
 * 传感器-8
 * 有水   LOW     0
 * 无水   HIGH    1
 * 
 * 继电器-13
 * 低电平触发  LOW   0
 *
 */

#include <Servo.h>

int sensorpin = 8;//传感器引脚 有水为0;无水为1
int pumpin    = 13;//水泵引脚 低电平触发 digitalWrite(8,LOW);
int var;

void setup() {
  Serial.begin(9600);
  
  pinMode(8,INPUT);
  pinMode(13,OUTPUT);
}

void loop() {

  var = digitalRead(8);
 
  //如果传感器检测值为1表示没水;0表示有水
  if(var==HIGH)
  {
    digitalWrite(pumpin,LOW);//水泵打开
   delay(3000);//浇水的时间是3秒
    digitalWrite(pumpin,HIGH);//水泵关闭
    }
    else
    {
    digitalWrite(pumpin,HIGH);//水泵关闭

   
    }

    Serial.print("var=");
    Serial.println(var);
    int var2=digitalRead(pumpin);
    Serial.print("var2=");
    Serial.println(var2);

    delay(10000);
    //delay(3600000);//一小时扫描一次

}
 


/*
 * 传感器-8
 * 有水   LOW     0
 * 无水   HIGH    1
 * 
 * 继电器-13
 * 低电平触发  LOW   0
 *
 */
 
#include <Servo.h>
 
int sensorpin = 6;//传感器引脚 有水为0;无水为1
float pumpin = 13;//水泵引脚 低电平触发 digitalWrite(8,LOW);
int var;
int var3;

int sensorpin2 = A5;
 
void setup() {
  Serial.begin(9600);
  
  pinMode(sensorpin,INPUT);
  pinMode(sensorpin2,INPUT);
  pinMode(pumpin,OUTPUT);
  digitalWrite(pumpin,HIGH);//水泵关闭
}
 
void loop() {
 
     var = digitalRead(sensorpin);
     
     int var2=digitalRead(pumpin);
     var3=analogRead(sensorpin2);
     
    Serial.print("var3:");
    Serial.println(var3);
    
  //如果传感器检测值为1表示没水;0表示有水
  if(var==1&&var3>600)
  {
    Serial.print(var); 
    Serial.println("缺水状态!");
    digitalWrite(pumpin,LOW);//水泵打开
    Serial.println("水泵状态-打开");
     
   delay(1000);//浇水的时间是10秒
   
    digitalWrite(pumpin,HIGH);//水泵关闭
     Serial.println("水泵-关闭");
    
 
    }
    else
    {
    digitalWrite(pumpin,HIGH);//水泵关闭
    Serial.print(var); 
    Serial.println("不缺水状态!");
    Serial.println("水泵-关闭");
   
    }
 
 
   delay(1000);//十秒钟扫描一次;
     //delay(36000000);//10小时扫描一次
 
}

猜你喜欢

转载自blog.csdn.net/Naiva/article/details/83023128