Tutorial: Arduino Cactus Soil Moisture und Wasserpumpe ansteuern

Einleitung

In diesem Tutorial werden wir einen Bodenfeuchtigkeits-Sensor (Soil Moisture Sensor) mit einer kleinen Wasserpumpe kombinieren, um so ein automatisches Bewässerungssystem mit einem Cactus Rev 2 zu erstellen. Diese Steuerung ist zum Beispiel für (m)einen Smart Plant Pot sehr sinnvoll.

Der Arduino Cactus Rev 2 misst mit dem Bodenfeuchtigkeits-Sensor (Soil Moisture Sensor) den Wassergehalt in der Erde und schaltet ab einer festen Schwelle die Wasserpumpe ein, um so den gewünschten Wassergehalt in der Erde wieder herzustellen.

Teileliste

Verkabelung

Die Verkabelung ist dieses Mal nicht so simpel, wie bei den bisherigen Tutorials. Bevor es jedoch los geht, solltet ihr die Verkabelung vom Soil Moisture Sensor vornehmen, in dem ihr dieses Tutorial lest: Tutorial: Arduino Cactus Soil Moisture Sensor

Nun können wir die Mini Wasserpumpe verkabeln:

  • Den linken Pin vom Transistor (orangenes Kabel) an Pin 9 vom Atmega.
  • Minuspol der Pump an den mittleren Pin vom Transistor.
  • Pluspol der Pumpe an RAW vom Atmega.
  • Den rechten Pin vom Transistor an GND vom Atmega.
  • Plus und Minus der externen Stromversorgung an RAW und GND vom Atmega.
Cactus Rev 2 Verkabelung mit einem Soil Moisture Sensor und einer Mini Wasserpumpe.
Cactus Rev 2 Verkabelung mit einem Soil Moisture Sensor und einer Mini Wasserpumpe.

Code

Dieser Code liest den aktuellen Feuchtigkeitsgehalt in der Erde und beginnt die Pumpe anzusteuern, sobald der gemessene Wert unter 20% fällt. Den unten stehenden Code findet ihr wieder auf Github.

//This is a extended Sketch for the Cactus Rev 2 to read the value from a soil moisture sensorw ith a anti oxidation functionality and
//also to controll a water pump for watering a plant for example. 
//You can find the tutorial on http://derpade.de/
//@author Patrick Hausmann <privat@patrick-designs.de>

int soilMoisturePin1 = 4;
int soilMoisturePin2 = 3;
int soilMoisturePin3 = A3;
int baudrate = 9600;

//Transistor 'Base' pin or input pin of motor driver ic to Arduino PWM Digital Pin 3
const int motorPin = 9;

int Speed; //Variable to store Speed, by defaul 0 PWM
int flag;

void setup() 
{
  pinMode(motorPin, OUTPUT); //Set pin 3 as an OUTPUT
  Serial.begin( baudrate );
  while(!Serial); //Waiting for Serial connection
}

int readSoilMoisture()
{
   int value; 
  
   pinMode(soilMoisturePin1, OUTPUT);
   pinMode(soilMoisturePin2, OUTPUT);

   digitalWrite(soilMoisturePin1, HIGH);
   digitalWrite(soilMoisturePin2, LOW);
delay(500); value = analogRead(soilMoisturePin3); digitalWrite(soilMoisturePin2, HIGH); digitalWrite(soilMoisturePin1, LOW); delay(500); digitalWrite(soilMoisturePin2, LOW); return value; } void loop() { int value_water = readSoilMoisture(); String water = String((int)((((double)value_water/1023.0)*100.0)));//Convert Raw value to percentage. This is a generic calculation, depending on raw values from 0 to 1023. Serial.print("Soil moisture: "); Serial.print(water); Serial.print("% Raw value: "); Serial.println( value_water ); //Check if incoming data is available: if (water.toInt() < 20) { Serial.println("Too dry, we should water it."); Speed = 100; flag=0; } else { Serial.println("Still wet, no need to water it."); Speed = 0; } if (Speed>=50 && Speed<=255) { analogWrite(motorPin, Speed); if (flag==0) { Serial.print("Motor spinning with "); Serial.print(Speed); Serial.println(" PWM"); flag=1; } } else if (Speed == 0) { analogWrite(motorPin, Speed); } delay(3000); }
In der Arduino IDE öffnet man am besten den seriellen Monitor, um zu sehen, welcher Feuchtigkeitsgrad gerade gemessen wurde und ob die Wasserpumpe angesteuert wurde.
In der Arduino IDE öffnet man am besten den seriellen Monitor, um zu sehen, welcher Feuchtigkeitsgrad gerade gemessen wurde und ob die Wasserpumpe angesteuert wurde.

Video

Alle Tutorials zum Cactus Rev 2

  1. Tutorial: Arduino Cactus NTC 100K Temperatur Sensor
  2. Tutorial: Arduino Cactus Soil Moisture und Wasserpumpe ansteuern
  3. Tutorial: Arduino Cactus Ultraschallsensor
  4. Tutorial: Arduino Cactus Rev 2 Soil Moisture Sensor
  5. Tutorial: Cactus Rev 2 Atmega32u4 ESP8266 Websocket
  6. Tutorial: Sketch/Firmware auf ESP8266 über ein Atmega32u4 hochladen
  7. Tutorial: Cactus Rev 2 ESP8266 flashen
  8. Tutorial: Cactus Rev 2 Atmega32u4 ESP8266-03 - Getting Started
Zusammenfassung
Tutorial: Arduino Cactus Soil Moisture und Wasserpumpe ansteuern
Artikeltitel
Tutorial: Arduino Cactus Soil Moisture und Wasserpumpe ansteuern
Beschreibung
In diesem Arduino Tutorial kombinieren wir Soil Moisture Sensor und eine Wasserpumpe mit unserem Cactus Rev 2, um so eine automatische Bewässerung zu realisieren.
Autor

Kommentare

Eingehende Suchbegriffe zum Artikel:

4 Gedanken zu „Tutorial: Arduino Cactus Soil Moisture und Wasserpumpe ansteuern

  • 14. März 2018 um 14:26
    Permalink

    Servus !
    Ich habe einen Arduino Uno, welcher mit atmega328p-pu integriert ist.
    würde es auch damit funktionieren?
    Und wenn ja, was müsste ich statt raw benutzten: 3,3V oder 5V ?

    Antwort
    • 15. April 2018 um 10:08
      Permalink

      Prinzipiell ja. Aber ich kenne das Board nicht.
      Was du als RAW nehmen musst, müsste in den Specs vom Board stehen.

      Antwort
  • 14. April 2018 um 15:45
    Permalink

    Ist es zwanghaft nötig das Modul per ATmega32u4 anzusteuern oder würde ein Arduino Uno oder Arduino Mega 2560 ebenso ausreichen?

    Antwort
    • 15. April 2018 um 10:10
      Permalink

      Eigentlich ist nahezu jeder Atmega in der Lage, die obige Schaltung umzusetzen. Aber man muss wahrscheinlich die Pins anpassen, und ggfs. Die Messspannung.

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Diese Website speichert einige User-Agent-Daten. Diese Daten werden verwendet, um eine persönlichere Erfahrung zu ermöglichen und Ihren Aufenthaltsort auf unserer Website gemäß der europäischen Datenschutz-Grundverordnung zu verfolgen. Wenn Sie sich gegen ein zukünftiges Tracking entscheiden, wird in Ihrem Browser ein Cookie eingerichtet, der diese Auswahl für ein Jahr speichert. Ich stimme zu , Verweigern
700

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen