So, ich habe jetzt mal den Somo1 von ELV getestet:
der Somo1 hat einen FDC2214 für die kapazitive Bodenfeuchtemessung mit der Adresse 0x2B und einen SHT4x für die Temperatur und Luftfeuchtemessung eingebaut. Diese können über Bibliotheken vom ESP über den I2C-Bus ausgelesen werden.
Bei mit hat's folgendermaßen funktioniert:
für den FDC2112:
#include <FDC2214.h> // von GitHub: zharijs/FDC2214, funktioniert auch mit FDC2112
#define FDC2112_ADDR 0x2B
FDC2214 capsense(FDC2112_ADDR);
die Initialisierung FDC2112 geschieht mit:
capOk = capsense.begin(0x3, 0x4, 0x5, true);
Die Werte in capOk = capsense.begin(0x3, 0x4, 0x5, true); haben gemäß der gängigen FDC2214 Arduino-Bibliothek folgende Bedeutung:
0x3 — Kanalmaske (chanMask): Aktiviert die Kanäle 0 und 1 (Binär 0011), d.h. die ersten zwei Kanäle des Sensors werden genutzt.
0x4 — Auto-Scan Sequenz (autoscanSeq): Legt die Auto-Scan-Konfiguration fest; mit diesem Wert wird festgelegt, wie viele Kanäle im Sequenzmodus automatisch durchlaufen werden (hier typischerweise zwei Kanäle).
0x5 — Entprell-Frequenz (deglitchFreq): Bestimmt die Filterfrequenz des Entprell-Filters für das Sensorsignal. Werte wie 0x3, 0x5 entsprechen unterschiedlichen Frequenzen (z.B. 5 MHz), um Störungen auszufiltern.
true — Nutzung des internen Oszillators (intOsc): Boolescher Wert, der angibt, ob der interne Oszillator des FDC2214 genutzt wird (true) oder ein externer Takt (false).
Man erhält dann mit capa = capsense.getReading28(0); die Rohwerte, bei mir waren das 11534335 für den Nullwert (trocken) und 9043967 für komplett im Wasser. Das muss man dann eben auf 0 - 100% umrechnen.
Für den SHT4x:
#include <Adafruit_SHT4x.h>
Adafruit_SHT4x sht4 = Adafruit_SHT4x();
sht4.begin()
Beim SHT4x kann man noch mit:
sht40.setPrecision(SHT4X_HIGH_PRECISION); // höchste Genauigkeit optional
auf höhere Auflösung schalten und mit:
sht4.setHeater(SHT4X_NO_HEATER) eine potenzielle Heizung abschalten.
Mit
sensors_event_t humidity, temp;
sht4.getEvent(&humidity, &temp);
die Luftfeuchte und Temperatur auslesen.
Die Werte können dann per MQTT oder ähnlich weiterverarbeitet werden.
Fazit:
Der Somo1 misst sehr verlässlich seit August im Garten. Der eigentliche Meßfühler (in der Erde) sieht noch aus wie am 1. Tag. Keine Aufweicherscheinungen oder Blasenbildung wie bei dem NoName "Capacitive Soil Moisture Sensor v2.0", den ich davor ausprobiert hatte.
Aus meiner Sicht hat sich der Mehrpreis bei der Beschaffung ausgezahlt.