E-Privacy-Richtlinie 2009/136/EG
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
x
Kapazitiver Feuchtigkeits- und Temperatursensor mit RS232 (seriell) Interface und Schaltausgang

Artikelnummer: 7321

Kapazitiver Feuchtigkeits- und Temperatursensor mit RS232 (seriell) Interface und Schaltausgang

8,49 €

inkl. 19% USt., versandfreie Lieferung

sofort verfügbar

Lieferzeit: 2 - 4 Werktage

Stk.


Beschreibung

Kapazitiver Feuchtigkeits- und Temperatursensor mit RS232 (seriell) Interface und Schaltausgang

Die Messung beruht auf dem Messprinzip des kapazitiven elektrischen Feldes. Die Temperatur wird über einen THT Widerstand, der knapp über dem Boden (bei eingestochenen Modul) liegt, gemessen. Über die R232-Schnittstelle  können die Daten ausgelesen werden.

Eigenschaften:

  • ATtiny441 7,37MHz
  • RS232 serielle Schnittstelle (19200 8N1)
  • ISP Header rausgeführt
  • Schaltausgang bis 60V 360mA (Mosfet 2N7002P)
  • Schaltausgang seriell programmierbar (default: An bei 30% Aus bei 90%)
  • Feuchtigkeit seriell einstellbar Low Level/High Level
  • Automatische einstellung des Maximalen Feuchtegrades
  • Spannungsversorgung 3.3Volt bis 5Volt
  • Stromaufnahme Messung  ~5mA
  • Größe ca. 20x130mm

Register

SENSOR_GET_CAPACITANCE_PROZ 0x01 // (r) 2 bytes
SENSOR_GET_CAPACITANCE 0x02 // (r) 2 bytes
SENSOR_SET_CALIBRATE_HIGH 0x03 // (w) 2 bytes
SENSOR_GET_CALIBRATE_HIGH 0x04 // (r) 2 bytes
SENSOR_SET_CALIBRATE_LOW 0x05 // (w) 2 bytes
SENSOR_GET_CALIBRATE_LOW 0x06 // (r) 2 bytes
SENSOR_GET_TEMPERATURE 0x07 // (r) 2 bytes
SENSOR_SET_ALARM_ON 0x08 // (w) 1 byte
SENSOR_GET_ALARM_ON 0x09 // (r) 1 byte
SENSOR_SET_ALARM_OFF 0x0A // (w) 1 byte
SENSOR_GET_ALARM_OFF 0x0B // (r) 1 byte
SENSOR_RESET 0x0C // (w) n/a Ab Firmware 20 löscht dieser Parameter die kalibrierten Werte und überschreibt diese mit den Standardwerten.CalibrateLow 450 und CalibrateHigh 750
SENSOR_GET_VERSION 0x0D // (r) 1 bytes
SENSOR_GET_VCC 0x0E // (r) 2 bytes
SENSOR_GET_SW 0x0F // (r) 1 bytes

Achtung

Bis zur Version 19 funktioniert die Abfrage getProzent (Register 0x01) nicht. Welche Version Sie benutzen können sie mit GET_VERSION (Register 0x0D) auslesen. 

Python

Beispiel >>Link<< (Update 27.05.2017)

Beispielaufrufe des Scriptes:

für Temperatur: seriell.py -t
für Version: seriell.py -v
für Capacitance in Prozent: seriell.py -c
für Capacitance: seriell.py -p
für switch: seriell.py -s

RS232 Arduino code:

/* soil_moist-RS232
*
* capacitive soil moisture (FT-Sensor V20160408)
* Version RS232 / Arduino Mega
*
* Georg Döllinger 26-07-2017 - georg_doellinger@web.de
*
*
* connections:
* Vcc = 5 or 3,3 V
* RX(Sensor) --> TX (Arduino)
* TX(Sensor) --> RX (Arduino)
* Gnd --> Gnd
*
* For stand-alone-operation of the sensor and more about adjusting see manual:
* (https://ex-store.de/Kapazitiver-Feuchtigkeits-und-Temperatursensor-mit-RS232-seriell-Interface-und-Schaltausgang)
*/

byte values[2]; // input from sensor 2 Bytes
int val_sum;
int n;
float temp; // temperature from capacitive- sensor
float vcc; // VCC Sensor
int cap; // Capacitance
int version_a; // sensor - software version number
int comm_s; // commands
int cal_high; // get calibrate high; the highest value of capacitance
int cal_low; // get calibrate low; the lowest value of capacitance

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
void setup() {
Serial.begin(19200); // monitor
Serial3.begin(19200); // connection to sensor- module 19200 8N1

Reset(); // resets the unit
delay(500);
Version();
// Set_Al_off();
// Set_Al_on();
// Set_Cal_High();
// Set_Cal_Low();
Get_Cal_High();
Get_Cal_Low();
Get_Al_on();
Get_Al_off();
Get_Switch();
VCC();

Serial.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
void loop() {

Capacitance();
Get_Cap_Proz();
Temp();

// Get_Switch(); // useful in stand-alone operation mode with the alarm-settings

delay(500);
Serial.println();
}

//+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

void Get_Cap_Proz() { // Difference betw. Cal H and Cal Low in %
comm_s = 0x01;
Get_Val();
Serial.print("Capacitance %: ");
Serial.println(val_sum);
}
void Capacitance() { // Difference betw. Cal H and Cal Low of Sensor
comm_s = 0x02;
Get_Val();
cap = val_sum;
Serial.print("Capacitance: ");
Serial.println(val_sum);
}

void Get_Cal_High() { // get calibrate high, the highest value of capacitance
comm_s = 0x04;
Get_Val();
cal_high = val_sum;
Serial.print("Cal. High: ");
Serial.println(cal_high,DEC);
}

void Get_Cal_Low() { // get calibrate low; the lowest value of capacitance
comm_s = 0x06;
Get_Val();
cal_low = val_sum;
Serial.print("Cal. Low: ");
Serial.println(cal_low);
}
void Temp() { // temperature from sensor
comm_s = 0x07;
Get_Val();
temp = (val_sum/10.0);
Serial.print("Temperature: ");
Serial.println(temp,1); // temperature in tenth of degrees
}

void Version() { // prints software version at the beginning
comm_s = 0xD;
Get_Val();
Serial.print("* * * * * * * * * * Version nr.: ");
Serial.print(values[0],DEC);
Serial.println(" * * * * * * * * * *");
delay(500);
}

void Get_Al_on(){
comm_s = 0x09;
Get_Val();
Serial.print("Get Alarm on: ");
Serial.println(values[0]);
}

void Get_Al_off(){
comm_s = 0x0B;
Get_Val();
Serial.print("Get Alarm off: ");
Serial.println(values[0]);
}

void Reset() {
Serial.write(0x0C); // resets sensor at the beginning
}

void VCC(){ // contains VCC Sensor (abt. 5 V)
comm_s = 0x0E;
Get_Val();
Serial.print("VCC: ");
vcc = (val_sum/100.0);
Serial.print(vcc);
Serial.println(" Volt");
}

void Set_Cal_High(){ // contains the highest value of moisture
Serial3.write(0x03);
}

void Set_Cal_Low(){ // contains the lowest value of moisture
Serial3.write(0x05);
}

void Set_Al_on(){
Serial3.write(0x08);
Serial3.write(0x1E); // sets alarm on by 30 %
}

void Set_Al_off(){
Serial3.write (0x0A);
Serial3.write(0x32); // sets alarm off to 50 %
}

void Get_Switch(){
comm_s = 0x0F;
Get_Val();
Serial.print("Switch: ");
Serial.println(values[0]);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Get_Val() { // get values from the sensor unit
Serial3.write(comm_s);
delay(500);
while (Serial3.available()<1) {} // wait until 2 bytes are in the receive buffer
for(int n=0; n<2; n++)
values[n] = Serial3.read(); // get 2 bytes
val_sum = (values[0] * 255 + values[1]); // sum byte 0 and 1
}

Raspberry PI

Sie müssen eventuell die serielle Schnittstelle erst aktivieren. Folgen Sie den Anweisungen in diesem Link (Achtung es handelt sich um eine externe Seite welche nicht von ex-store.de betrieben wird.)

Einstellvorgang

Um den Wert für den geringsten Feuchtigkeitsgehaltes der Erde einzustellen müssen sie den Befehl setCalibrateLow(); absetzen. Anschliessend können sie die Pflanze/Erde mit Wasser befeuchten/gießen. Das Modul bemerkt den Anstieg des Feuchtigkeitsgehaltes und ermittelt automatisch den höhsten Stand der Feuchtigkeit wenn dieser höher ist als der bisherige eingestellte maximalen Wert des Feuchtigkeitsgehaltes. Wenn sie eine Automatische Gießanlage verwenden, muss der Wert von AlarmOff unbedingt niedriger als 100% sein andernfalls versucht das Modul automatisch wieder den höhsten Stand der Feuchtigkeit zu ermitteln.

Normale Werte (Blumenerde) für CalibrateLow sind ca. 450 und CalibrateHigh ca. 750.

setCalibrateLow()/getCalibrateLow()  ist der tiefste Wert der zulässigen Feuchtigkeit.
setCalibrateHigh()/getCalibrateHigh() ist der höchste Wert der Feuchtigkeit. Dieser Wert wird auch automatisch ermittelt.
getCapacitance() gibt die Differenz zwischen CalibrateLow und CalibrateHigh wieder.
getCapacitanceProz() gibt die Differenz in Prozent zwischen CalibrateLow und CalibrateHigh wieder.

Der Sensor merkt wenn der Höchste Wert (CalibrateHigh) um +10 überschritten wird und startet für 2 Minuten eine Messreihe um nach absinken der Flüssigkeit einen neuen Höchstwert zu ermitteln. Diesen speichert er dann als CalibrateHigh im EEprom.
Wenn Sie den Sensor zum Beispiel nur kurz in ein Glas Wasser halten wird keine korrekte Kalibrierung durchgeführt und die Rückgabewerte von Capacitance und CapacitanzeProz stimmen nicht.


Versandgewicht: 0,01 Kg
Artikelgewicht: 0,01 Kg
Inhalt: 1,00 Einheit

Produkt Tags