// 这里定义土壤湿度传感器
int HUMIDITY = 3;
// 传感器模拟输入
int HUMIDITYA0 = A0;
// 小水泵的继电器
int WATER = 2;

void setup(){
  Serial.begin(9600);
  pinMode(HUMIDITY,INPUT);
  pinMode(HUMIDITYA0,INPUT);
  pinMode(WATER,OUTPUT);
}

void loop(){
  getHumidity();
  delay(20);
}

void getHumidity() {
  int humidityStatus = digitalRead(HUMIDITY);
  Serial.print("土壤状态:");
  if(humidityStatus){
    Serial.println("干燥");
  }else{
    Serial.println("湿润");
  }
  int humidityAnalog = analogRead(HUMIDITYA0);
  // 范围值1024 - 0 , 1024干燥, 0潮湿
  Serial.print("土壤湿度:");
  Serial.println(humidityAnalog);
  // 如果土壤干燥
  if(humidityStatus && humidityAnalog > 800) {
    // 开启继电器, 使小水泵开始抽水, 对土壤进行浇水  
    digitalWrite(WATER, HIGH);
  }else{
    int waterStatus = digitalRead(WATER);
    // 如果当前是继电器是开启状态, 则关闭继电器的供电
    if(waterStatus) {
      digitalWrite(WATER, LOW);
    }
  }
}

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐