Skip to content

Instantly share code, notes, and snippets.

@oczkers
Created December 18, 2015 08:48
Show Gist options
  • Save oczkers/b4e186e977c9779d4e48 to your computer and use it in GitHub Desktop.
Save oczkers/b4e186e977c9779d4e48 to your computer and use it in GitHub Desktop.
int moistureSensor1Pin = A0;
int moistureSensor2Pin = A1;
int moistureSensor3Pin = A2;
int moistureSensor4Pin = A3;
int soggyLEDPin = 10; // Dioda - Mokro
int moistsoilLEDPin = 11; // Dioda - Wilgotno
int drysoilLEDPin = 12; // Dioda - Sucho
int pumpLEDPin = 13; // Dioda dzialania pomp
int pumpPin1 = 2;
int pumpPin2 = 3;
int pumpPin3 = 4;
int pumpPin4 = 5;
int moistureSensor1Value; // Wartosc z czujnika
int moistureSensor2Value;
int moistureSensor3Value;
int moistureSensor4Value;
int j = 0;
void setPump(int _pumpNum, boolean _enable = true)
{
if(_enable)
{
switch(_pumpNum)
{
case 1:
digitalWrite(pumpPin1,HIGH);
break;
case 2:
digitalWrite(pumpPin2,HIGH);
break;
case 3:
digitalWrite(pumpPin3,HIGH);
break;
case 4:
digitalWrite(pumpPin4,HIGH);
break;
}
}
else
{
switch(_pumpNum)
{
case 1:
digitalWrite(pumpPin1,LOW);
break;
case 2:
digitalWrite(pumpPin2,LOW);
break;
case 3:
digitalWrite(pumpPin3,LOW);
break;
case 4:
digitalWrite(pumpPin4,LOW);
break;
}
}
}
void setup(){
Serial.begin(9600);
pinMode(soggyLEDPin, OUTPUT);
pinMode(moistsoilLEDPin,OUTPUT);
pinMode(drysoilLEDPin,OUTPUT);
pinMode(pumpLEDPin,OUTPUT);
pinMode(pumpPin1,OUTPUT);
pinMode(pumpPin2,OUTPUT);
pinMode(pumpPin2,OUTPUT);
pinMode(pumpPin4,OUTPUT);
}
void loop() {
Serial.print("Moisture Sensor 1 Value:");
Serial.println(analogRead(A0));
delay(1000);
Serial.print("Moisture Sensor 2 Value:");
Serial.println(analogRead(A1));
delay(1000);
Serial.print("Moisture Sensor 3 Value:");
Serial.println(analogRead(A2));
delay(1000);
Serial.print("Moisture Sensor 4 Value:");
Serial.println(analogRead(A3));
delay(1000);
moistureSensor1Value = analogRead(moistureSensor1Pin);
moistureSensor2Value = analogRead(moistureSensor2Pin);
moistureSensor3Value = analogRead(moistureSensor3Pin);
moistureSensor4Value = analogRead(moistureSensor4Pin);
if(moistureSensor1Value >= 700||moistureSensor2Value >= 700||moistureSensor3Value >= 700||moistureSensor4Value >= 700) { // W przypadku suchej gleby
digitalWrite(drysoilLEDPin,HIGH);
digitalWrite(moistsoilLEDPin,LOW);
digitalWrite(soggyLEDPin,LOW);
}
if((moistureSensor1Value < 700) && (moistureSensor1Value >= 300)||(moistureSensor2Value < 700) && (moistureSensor2Value >= 300)||(moistureSensor3Value < 700) && (moistureSensor3Value >= 300)||(moistureSensor4Value < 700) && (moistureSensor4Value >= 300)){
// W przypadku wilgotnego gruntu
digitalWrite(drysoilLEDPin,LOW);
digitalWrite(moistsoilLEDPin,HIGH);
digitalWrite(soggyLEDPin,LOW);
}
if(moistureSensor1Value < 300||moistureSensor2Value < 300||moistureSensor3Value < 300||moistureSensor4Value < 300){
// Mokro
digitalWrite(drysoilLEDPin,LOW);
digitalWrite(moistsoilLEDPin,LOW);
digitalWrite(soggyLEDPin,HIGH);
}
if(moistureSensor1Value >= 700) {
setPump(1);
setPump(2, false);
setPump(3, false);
setPump(4, false);
}
if(moistureSensor2Value >= 700) {
setPump(2);
setPump(1, false);
setPump(3, false);
setPump(4, false);
}
if(moistureSensor3Value >= 700) {
setPump(3);
setPump(1, false);
setPump(2, false);
setPump(4, false);
}
if(moistureSensor4Value >= 700) {
setPump(4);
setPump(1, false);
setPump(2, false);
setPump(3, false);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment