Czujnik wilgotności gleby – Hygrometer sensor
Układ jest dość prosty i nie powinien Wam sprawić problemów w montowaniu, i uruchamianiu dość ciekawego i fajnego projektu. Tak więc od początku. Ja w swoim projekcie użyłem mikro kontrolera Arduino NANO V3.0, 5szt. diod (trzy zielone, jedna żółta i jedna czerwona), czujnika wilgotności gleby z bagnetem, i przewodów do połączenia elementów w układ. Stan wilgotności gleby sprawdzamy poprzez zapalające się diody. Zapalą się wszystkie oznacza że jest wilgotno, trochę mniej palą się cztery, sucho pali się tylko czerwona.
W skrócie diody podpinamy pod wyjścia cyfrowe od D2 do D6 , tak jak na schemacie i podajemy wspólne zasilanie, z Arduino wyprowadzamy zasilanie oraz masę. Do czujnika oczywiście również podpinamy zasilanie, masa i wyjście analogowe A0 łączymy z wejściem analogowym A0. Pozwoli to nam mierząc proporcjonalny sygnał napięciowy, dokładniej określić poziom wilgotności gleby.
Poniżej program który należy wgrać do arduino.
/*
Flower Pot Soil Mosture Sensor
A0 – Soil Mosture Sensor
D2:D6 – LEDS 1,2,3,4,5
LED1 – Green
LED2 – Green
LED3 – Green
LED4 – YELLOW
LED5 – RED
Connect the Soil Mosture Sensor to anolog input pin 0,
and your 5 led to digital out 2-6
*/
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int mostureSensor = 0;
void setup() {
// Serial Begin so we can see the data from the mosture sensor in our serial input window.
Serial.begin(9600);
// setting the led pins to outputs
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(mostureSensor);
// print out the value you read:
Serial.println(sensorValue);
if (sensorValue >= 820)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
}
else if (sensorValue >= 615 && sensorValue < 820)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
else if (sensorValue >= 410 && sensorValue < 615)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
else if (sensorValue >= 250 && sensorValue < 410)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
else if (sensorValue >= 0 && sensorValue < 250)
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
delay(1000); // delay 1 second between reads
}





