Soil Moisture Sensor Hygrometer Module V1.2 capacitive for Arduino Microcontroller - AZ-Delivery

Egal, ob in der Winterzeit ein Weihnachtsstern oder im Frühling die frisch eingesetzten Pflanzen, das richtige Gießen ist immer wichtig. Jede Pflanze hat ihre eigenen Anforderungen und will entsprechend mit Wasser und Nährstoffen versorgt werden. Wir wollen rechtzeitig erkennen, wenn unsere Pflanze Flüssigkeit benötigt und verwenden dafür Bodenfeuchte Sensoren

Welchen Sensor verwenden wir?

Wir verwenden das Bodenfeuchtesensor Modul V1.2 kapazitiv aus unserem Onlineshop, siehe Abbildung 1.

Abbildung 1: Bodenfeuchtesensor Hygrometer Modul V1.2 kapazitiv

Im direkten Vergleich zum Bodenfeuchtesensor Hygrometer Boden Feuchtigkeit Module, siehe Abbildung 2, ist die Größe und auch die Art vom Anschluss sichtbar unterschiedlich.

Abbildung 2: Vergleich der Bodenfeuchtesensoren

Aber nicht nur Größe und Anschluss unterscheiden sich, sondern auch wie die Sensoren mit Micro Controllern kommunizieren. Der Bodenfeuchtesensor Hygrometer Modul V1.2 kapazitiv gibt nur noch ein analoges Signal zurück, hingegen der Bodenfeuchtesensor Hygrometer Boden Feuchtigkeit Module ein analoges und digitales Signal. In den meisten Fällen ist aber ausschließlich das analoge Signal interessant. Da die Kontakte beim Bodenfeuchtesensor Hygrometer Boden Feuchtigkeit Module frei zugänglich sind, kann es schnell passieren, dass die Kontakte korrodieren. Beim Bodenfeuchtesensor Hygrometer Modul V1.2 kapazitiv wird, wie schon der Name sagt, die Bodenfeuchte kapazitiv gemessen.

Die Vorbereitung

Damit wir den Bodenfeuchtesensor Hygrometer Modul V1.2 kapazitiv nutzen können, brauchen Sie noch einen entsprechenden Micro Controller. Für das hier gezeigte kleine Experiment reicht vollkommen der Nano V3.0 mit Atmega328 CH340 aus. Wichtig an dieser Stelle: der Bodenfeuchtesensor Hygrometer Modul V1.2 kapazitiv braucht eine 5V-Spannungsversorgung und liefert auch ein analoges Signal zwischen 0-5V! Nutzen Sie z.B. einen ESP32, dann müssen Sie noch einen Spannungsteiler vor den analogen Eingang bauen, andernfalls können Sie ihren MicroController zerstören.

Für die Anzeige wird noch ein LCD-Display 16x2 mit I2C-Verbindung benötigt.

Bodenfeuchte überwachen

Als kleines und schnelles Beispiel soll der Sensor das analoge Signal auf einem LCD-Display 16x2 mit I2C-Adapter ausgeben. Der Aufbau und der Quellcode sind recht schnell erledigt.

Die Verdrahtung ist Tabelle 1 zu entnehmen.

Pin

MicroController (Nano V3.0)

Bodenfeuchtesensor

Display

GND

GND

GND

GND

5V

5V

VCC

VCC

Analoges Signal

A0

AOUT

 

SDA

A4

 

SDA

SCL

A5

 

SCL

Tabelle 1: Anschluss an MicroController

Der Quellcode ist ebenso simpel wie schnell erledigt, siehe Code 1.

//-----------------------------------------------------
// Soil moisture sensor sample
// Autor: Joern Weise
// License: GNU GPl 3.0
// Created: 10. Dec 2020
// Update: 10. Dec 2020
//-----------------------------------------------------
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define UPDATETIME 5000
#define NEEDTOWATERING 700
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
unsigned long iLastUpate = 0;
int iLastAnalogRead = 0;
// the setup routine runs once when you press reset:

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(115200);
  Serial.println("Starting setup");
  Serial.println("Init display");
  lcd.init(); // initialize the lcd
  Serial.println("Backlight on");
  lcd.backlight(); // backlight on
  Serial.println("Write text");
  lcd.home(); // set cursor to 0,0

  //Write some text
  lcd.print("Soil moisture");
  lcd.setCursor(0, 1);
  lcd.print("sensor monitor");
  Serial.println("Setup done");
  delay(5000);
  }

// the loop routine runs over and over again forever:
void loop() {

  if(millis() - iLastUpate > UPDATETIME)     {
    int sensorValue = analogRead(A0);
    if(iLastAnalogRead != sensorValue)     {
      lcd.clear();
      lcd.home();
      lcd.print("Value: " + String(sensorValue));
      lcd.setCursor(0, 1);
      if(sensorValue >= NEEDTOWATERING)
         lcd.print("Need some water");
      else
        lcd.print("No water needed");
        Serial.println("New value: " + String(sensorValue));
        iLastAnalogRead = sensorValue;
    }
    iLastUpate = millis();
  }
}

Code 1: Code Bodenfeuchte überwachen

 

So haben Sie stets im Auge, wann Sie wieder ihren Weihnachtsstern oder ihre andere Pflanze gießen müssen, siehe Abbildung 3. Vergessen Sie dabei aber nicht, das define NEEDTOWATERING so einzustellen, dass ihre Pflanzen nicht verdursten!

 Abbildung 3: Fertige Schaltung


Weitere Projekte für AZ-Delivery von mir, finden Sie unter https://github.com/M3taKn1ght/Blog-Repo.

 

Specials

1 comment

Horst Schwemmer

Horst Schwemmer

kann ich das Hygrometer Modul V1.2 auch über den bereits vorhandenen MCP3800 an einem Raspberry 3 betreiben?
Danke schon mal im Voraus
Horst Schwemmer

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery