Ab heute neu: Bodenfeuchtesensor - AZ-Delivery

Ciao a tutti,

Oggi vorrei presentarvi un nuovo sensore che abbiamo nel nostro negozio da oggi. Il nostro Hygrometer Capacity V1.2

Questo modulo funziona in modo Capacity, cioè a differenza del modello precedente, non c'è corrosion e da processi galvanic i.L'uscita di questo sensor e è analogica, cioè anche se supporta i controller 3.3V, non può essere letta da un lampone che non ha input analogici.In linea di principio, questo modulo di sensore non è adatto solo per misurare l'umidità nel substrato, ma anche per la visualizzazione di un livello di riempimento.Prima di utilizzare il sensore in modo produttivo, il nostro schizzo deve essere calibrato ai rispettivi valori.

Per il nostro esempio di applicazione usiamo una NanoV3.E un bicchiere d'acqua invece di un vaso di fiori, perché l'umidità del substrato non può essere cambiata facilmente come il livello di un vetro.I Libri non sono necessari.

La Pine Layout:

NanoV3 Sensore
5V VCC
RNL RNL
A0

Fuori.

 

Cominciamo con l'avvio più semplice, l'esempio AnalogReadSerial che è già integrato nell'IDE: Esempi > Basics > AnalogReadSerial

e ricevere il seguente output nel monitor seriale:

nel plotter seriale sembra un po'più attraente, ma non è ancora ideale:

Usiamo il Tutorial di Smoothing su Arduino.cc, qui il codice:

 

/*
 Liscio.

 creato 22 aprile 2007
 di David A. Mellis <dam@mellis.org>
 modificato 9 aprile 2012
 di Tom Igoe

 Questo codice esempio è di dominio pubblico.

  http://www.arduino.cc/en/Tutorial/Smoothing
*/

to int Numero = 10;

int letture[Numero];      // le letture da input analogico
int readIndex = 0;              // indice della lettura corrente
int totale = 0;                  // il totale in esecuzione
int media = 0;                // la media

int inputPine = A0;

vuoto setComment() {   Serial.Inizio(9600);   per (int seReading = 0; seReading < Numero; seReading++) {     letture[seReading] = 0;   }
}

vuoto Esecuzione() {   /sottrarre l'ultima lettura:   totale = totale - letture[readIndex];   // leggi dal sensore:   letture[readIndex] = analogico(inputPine);   // aggiungere la lettura al totale:   totale = totale + letture[readIndex];   // avanzare verso la posizione successiva nell'array:   readIndex = readIndex + 1;   Se siamo alla fine della serie...   se (readIndex >= Numero) {     avvolgere intorno all'inizio:     readIndex = 0;   }   // calcolare la media:   media = totale / Numero;   Serial.Stampa(media);   ritardo(1);        // ritardo tra letture per stabilità
}

 

Dopo aver caricato il codice, l'output ottico è un po'più piacevole:

Quindi scopriamo che il vetro vuoto produce valori intorno al 792.Quindi abbiamo determinato il valore piu'alto.Ora determineremo il valore piu'basso immergendo il nostro sensore in acqua fino ad un'altezza che avete impostato.

La profondità di immersion e, cioè l'altezza del livello nel vetro/substrato deve sempre rimanere la stessa per i confronti, abbiamo scelto il punto di v1.2 come marcatore.E ottenere i seguenti valori:

Quindi il bicchiere intero fornisce circa 419.Ciò significa che ci stiamo muovendo in una zona di 792-419.Si assicuri di effettuare questa taratura nel mezzo che si desidera utilizzare più tardi, in quanto i valori variano a seconda del substrato.

Dal momento che questo sensore è così versatile, sono possibili diversi substrati, le piante hanno preferenze diverse e non possiamo stimare la vostra scala offriamo codice a questo punto che abbiamo già nel nostro AlcoTest hanno mostrato:

 

se (media >= 0 e media <= 400) {     Stato = Malfunzionamento del sensore?;   }   e se (media >= 400 e media <= 500) {     Stato = assetato!;   }   e se (media >= 500 e media <= 649) {     Stato = Umidità!;   }   e se (media >= 650 e media <= 800) {     Stato = Patschnass!;

 

C'è una custodia per auto-stampa gratuita, troverai i file richiesti QUI.

Divertiti a provare e sperimentare, forse troverai un lettore fedele che vuole fare un bicchiere intelligente, che mostra al barista il livello dei suoi ospiti. :) Fino al prossimo post

 

 

ProduktvorstellungenSensoren

8 commenti

Uwe

Uwe

Um Lucas’ Frage (auch wenn schon etwas alt) hier mal zu beantworten. JA, es dringt Wasser über die Schnittkanten der Platinen ein, dadurch habe ich inzwischen 8 Sensoren geschrottet. Es löst sich die gesamt Isolierung ab und legt die Kupferflächen frei, so dass es hier doch wieder zu einem Ionenaustausch mit dem Boden kommt. Von völlig absurden Messwerten mal ganz zu schweigen. Ich hatte mal versucht, das Ganze vor der ersten Verwendung mit Nagellack auf den Kanten zu isolieren, brachte aber auch nur kurzfristig eine Besserung, länger als 3 Monate hat bei mir kein Sensor durchgehalten.

Held

Held

Hallo,
ich bin der gleichen Meinung wie Ralf.
Bei Raumluft bekomme ich einen hohen Wert und im Wasser einen niedrigen .
Habe das Ganze mit einem ESP32 getestet am A0 Pin.
Der Serialmonitor gibt bei Luft einen Wert von ca. 2100 und mit Wasser ca. 700 aus. Die Werte verarbeite ich in der MAP- Funktion so, das sie einen logischen Sinn ergeben. Luft- niedrig, Wasser- hoher Wert zwischen 1 und 100.
Mit dieser Spreizung muß man nun selber ein Gefühl entwickelt was für die Pflanze nun trocken oder nass ist.
Nach einer Woche Test bin ich zu der Erkenntnis gekommen, das der Sensor unbrauchbar ist. Nach drei Tagen Messdauer ist der umgerechnete Messwert nur um 5 Punkte gefallen (85 auf 80). Die Erde obenauf wurde aber schon grau.
Darauf hin habe ich den Sensor heraus gezogen abgewischt und wieder eingesteckt. Siehe da, der Wert fiel um 50 Punkte.
Vor dem abwischen habe ich mir die Platine betrachtet, auf ihr befand sich ein Feuchfigkeitsfilm. Also hat der Sensor die Feuchtigkeit auf der Platine gemessen.
Die Erde herum war schon trocken. Ich habe Messung an einer anderenStelle im Blumentopf wiederholt, mit ähnlichem Ergebnis.
Eine automatische Bewässerung würde hiermit scheitern.
Meine Urlaubsbewässerung habe ich wieder auf Pauschalmenge umgestellt.
Gruß Eckard

Murphy

Murphy

The sensor is said to be version 1.2 but there are differences from other 1,2 version available directly from china market. On the AZ_Delivery sensor, the LDO (U2) seems to be replaced by diode. There is not schematic offered on the web site :(

When supplied with 3.3V, sensor did not provide any output voltage (NE555 is requiring 5V supply). When supplied with 5V, sensor provide 4V on its output as dry (less voltage, when wet) . For 3.3V controllers (like ESP32) this can be fatal!

I have found (as possible solution) resistor of 100 Ohms in series to the 5V power pin is dropping the voltage over the sensor and impacting the sensor output voltage in positive way (3V as dry, less when wet) . This allows to work safely with ESP32 microcontrollers.

Samira

Samira

Hallo,
danke für Ihre nutzbare Aufgabe. Ich möchte diese Aufgabe mit STM32 und HAL_Drive schreiben. Wie kann ich letzten Teil schreiben? Wie kann zeigt , der Boden Nass ist oder trocken?
Viele Grüße
Samira

Dennis

Dennis

Wenn ich den Sensor in das Wasser tauche und den Beispielcode “AnalogReadSerial” ausführe, liefert mir der Monitor lediglich Werte zwischen 0 und 13. Was mache ich falsch?

Klaus

Klaus

sehe ich auch so wie Ralf.

Gruß
Klaus

Lucas

Lucas

Dringt von den (Schnittkanten der Platine) kein Wasser in den Sensor ein?

Ralf

Ralf

Hallo,

sind eure Werte für die Feuchtigkeit nicht verdreht, Müßte nicht zwischen 400 und 500 Patschnass und zwischen 650 und 800 Pflanzen haben Durst sein.

Gruss
Ralf

Lascia un commento

Tutti i commenti vengono moderati prima della pubblicazione