Skip to content

Instantly share code, notes, and snippets.

@alexellis
Created September 21, 2015 18:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexellis/6c1746e732febab5a1d6 to your computer and use it in GitHub Desktop.
Save alexellis/6c1746e732febab5a1d6 to your computer and use it in GitHub Desktop.
Plant watering automation
#define MOTOR_PIN 3
#define SENSOR_VCC 9
#define SENSOR_MOISTURE A2
#define MOISTURE_THRESHOLD 700
#define SENSOR_WARMUP 1200
#define SAMPLE_DELAY 8000
void setup() {
pinMode(SENSOR_VCC, OUTPUT);
pinMode(MOTOR_PIN, OUTPUT);
pinMode(SENSOR_MOISTURE, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(SENSOR_VCC, HIGH);
delay(SENSOR_WARMUP);
int mv;
while(( mv = analogRead(SENSOR_MOISTURE)) > MOISTURE_THRESHOLD){
Serial.print("Status: DRY\tmv: ");
Serial.println(mv);
digitalWrite(MOTOR_PIN, HIGH);
delay(700);
digitalWrite(MOTOR_PIN,LOW);
delay(700);
}
digitalWrite(SENSOR_VCC, LOW);
delay(SAMPLE_DELAY);
Serial.print("Status: OK\tmv: ");
Serial.println(mv);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment