Programmierung des Bodenfeuchtigkeitssensors
In diesem Abschnitt wird mithilfe der Entwicklungsumgebung von Arduino (IDE) der Bodenfeuchtigkeitssensor programmiert .

Abbildung: Entwicklungsumgebung von Arduino
Quelle: BBS Wolfsburg
void setup() {}
void loop() {}
int bodenfeuchtigkeit;
String bodenfeuchtigkeit_stufe;
int datenpin_sensor = 34;
void setup() {}
void loop() {}
int bodenfeuchtigkeit;
String bodenfeuchtigkeit_stufe;
int datenpin_sensor = 34;
void setup() {
Serial.begin(9600);
}
void loop() {}
Der mit dem Bodenfeuchtigkeitssensor verbundene analoge Pin wird mit der Funktion "analogRead(pin)" ausgelesen und soll in der Variable "bodenfeuchtigkeit" gespeichert werden. Zudem kann mit der Funktion "Serial.println()" die Variable "bodenfeuchtigkeit"
an den seriellen Anschluss gedruckt werden.
int bodenfeuchtigkeit;
String bodenfeuchtigkeit_stufe;
int datenpin_sensor = 34;
void setup() {
Serial.begin(9600);
}
void loop() {
bodenfeuchtigkeit = analogRead(datenpin_sensor);
Serial.println(bodenfeuchtigkeit);
}
Im Anschluss wird die Stufe der Bodenfeuchtigkeit (trocken, feucht) in der Varialbe "bodenfeuchtigkeit_stufe" gespeichert. Die Bestimmung erfolgt mit der Einstufung der Bodenfeuchtigkeit.
Die Einstufung erfolgt mit einem if-Statement in der "loop()" Funktion:
- die Stufe "Trocken" soll festgelegt werden, sobald die Bodenfeuchtigkeit kleiner eines festgelegten Wertes ist
- die Stufe "Nass" soll festgelegt werden, sobald die Bodenfeuchtigkeit größer gleich eines festgelegten Wertes ist
Der festgelegte Bodenfeuchtigskeitswert wird zuvor in der neuen int-Variable "bodenfeuchtigkeit_einstufungswert" gespeichert und muss durch Ausprobieren selbst ermittelt werden (Serieller Monitor). In unserem Fall wird der Wert auf 1000 gesetzt. Die Deklaration findet oberhalb der beiden Standardfunktionen statt.
int bodenfeuchtigkeit;
int bodenfeuchtigkeit_einstufungswert = 1000;
String bodenfeuchtigkeit_stufe;
int datenpin_sensor = 34;
void setup() {
Serial.begin(9600);
}
void loop() {
bodenfeuchtigkeit = analogRead(datenpin_sensor);
Serial.println(bodenfeuchtigkeit);
if (bodenfeuchtigkeit < bodenfeuchtigkeit_einstufungswert)
{
bodenfeuchtigkeit_stufe = "Trocken";
}
else if (bodenfeuchtigkeit >= bodenfeuchtigkeit_einstufungswert)
{
bodenfeuchtigkeit_stufe = "Nass";
}
}
Als Letztes wird eine Verzögerung von 500 ms mit der Funktion "delay()" realisiert. Die Verzögerung wird am Ende des Anweisungsblockes der "loop()" Funktion gesetzt und somit eine zu schnelle Wiederholung der Endlosschleife verhindert.
int bodenfeuchtigkeit;
int bodenfeuchtigkeit_einstufungswert = 1000;
String bodenfeuchtigkeit_stufe;
int datenpin_sensor = 34;
void setup() {
Serial.begin(9600);
}
void loop() {
bodenfeuchtigkeit = analogRead(datenpin_sensor);
Serial.println(bodenfeuchtigkeit);
if (bodenfeuchtigkeit < bodenfeuchtigkeit_einstufungswert)
{
bodenfeuchtigkeit_stufe = "Trocken";
}
else if (bodenfeuchtigkeit >= bodenfeuchtigkeit_einstufungswert)
{
bodenfeuchtigkeit_stufe = "Nass";
}
delay(500);
}