Tag 20: Pflanzenwächter

Hinter dem Türchen des heutigen Tages befindet sich ein NTC-Widerstand (Negative Temperature Coefficient) zur Messung der Temperatur. Zusammen mit dem Fototransistor und ein paar Drähten bauen wir damit einen Pflanzenwächter, der uns vor schlechten Bedingungen für eine zu überwachende Pflanze warnt. Dazu benötigen wir den folgenden Aufbau und das Programm des aktuellen Tages.

Der Pflanzenwächter

Der Pflanzenwächter

Die beiden gelben Drähte sind dabei einfache Drähte, die in die Pflanzenerde gesteckt werden können. Sie sollen überwachen, wie feucht die Erde ist. Für erste Tests reicht es aber aus, beide Drähte mit einem Finger zu berühren.

Der heutige Flow

Der heutige Flow

Der Flow des Tages kann wieder einfach in die Node-RED-Umgebung importiert werden, natürlich nicht, ohne die vorherigen zu deaktivieren und das Topic anzupassen. Über das out-Topic wird nun ein JSON-String empfangen, der in etwa so aussieht:

{"cmd”:”get_hum_state”,”Light”:3903,”Temp”:368,”HUMIDITY”:45}

Es werden also die Daten Licht, Temperatur und Feuchtigkeit übertragen. Licht ist hierbei wieder ein relativer Wert mit einem Wertebereich von 0 bis 4095, genau wie die gemessene Feuchtigkeit. Die Temperatur wird ebenfalls in diesem Wertebereich übermittelt. Da damit aber niemand etwas anfangen kann, gibt es einen Function-Node, der die Werte in Celsius umrechnet. Dargestellt werden die Werte praktisch auf der Nutzeroberfläche. Neben den Anzeigen finden sich dazu noch ein paar Regler.

Das Userinterface des Pflanzenwächters

Das Userinterface des Pflanzenwächters

Diese Regler sind dazu da, Grenzbereiche für die Messwerte festzulegen. Man kann jeweils einen Minimalund einen Maximalwert bestimmen. Wenn man auf einen Wert oder eine Grenze nicht testen möchte, kann man den Regler auch auf eine Extremposition setzen, die niemals vom Board gemessen werden kann. Wenn man also beispielsweise nicht möchte, dass nachts der Alarm für eine zu geringe Helligkeit angeht, kann man den Minimalregler auf –1 stellen.

Sollte einer der Grenzwerte überschritten werden, triggert der entsprechende Switch-Node, und eine Nachricht wird eingestellt, die dann über die UI ausgegeben wird. Da man diese häufig nicht geöffnet hat, kann man zusätzlich seine E-Mail-Zugangsdaten in den E-Mail-Node eintragen. Dann wird eine E-Mail gesendet, die daran erinnert, dass man mal wieder die Pflanze gießen sollte oder für bessere Lichtverhältnisse zu sorgen hat. So wird selbst die einfache Zimmerpflanze smart.

13 Kommentare

  1. Bernd

    Hat nach den hier vorgeschlagenen Änderungen super funktioniert. Ich habe auch gleich noch ein Longtime-Chart mit eingefügt.

    Antworten
  2. paulaner

    Noch einen Offset Node in den Humidity Pfad eingefügt, da das ganze mit einem Meßgerät kalibriert ist und es keinen Trimmer/Poti dafür gibt.

    Das selbe könnte man auch für Temperatur und Beleuchtung machen und statt Trimmer Festwiderstände mit geringer Toleranz und Wärmekoeffizienten nehmen, aber ich will ja mit dem Adventskalender und seinen Experimenten nicht übers Ziel schiessen.

    Antworten
  3. paulaner

    Habe fertig

    Antworten
  4. Ray

    Mit kleinen Anpassungen schaut es bei mir auch ganz gut aus:
    1) In der Function "ADC to Temperatur (C)" hab ich nach Zeile 9 eine Zeile ergänzt:
    Temp = Temp +30;
    2) nach dem Brightness Template eine Function Node eingehängt, um kleine Werte=Dunkel am unteren und große=Hell am oberen Ende der Skala anzuzeigen:
    var Bright = msg.payload;
    Bright = 4095 – Bright;
    msg.payload = Bright;
    return msg;
    Das Temperatur-Poti ist dabei fast am linken, das Helligkeits-Poti am rechten Anschlag.

    Antworten
    1. Martin Klein

      Vielen Dank ! Das schaut jetzt natürlich viel besser aus !
      Viele Grüße
      Martin Klein

      Antworten
  5. paulaner

    Bild 2

    Antworten
  6. paulaner

    Erste Korrektur:

    Bauteile auch mit 103 beschriftet, also 10k.
    Ich habe diese Schaltung angewand.

    Vorteil, zeigt jetz Zimmertemperatur an und auch bei dem Fühler mit negativen Koeffizenten wird bei Erhöhung der Temperatur dies auch korrekt angezeigt.

    Antworten
  7. Daniel

    Hallo zusammen,

    da in den Schaltbildern die Poti immer mit 104, die echten Bauteile bei mir aber mit 103 beschriftet sind muss ich jetzt doch mal fragen was denn nun korrekt ist.

    Gibt es vielleicht eine Liste aller im Kalender enthaltenen Teile (inkl. Kennwerte)?
    @fk: Verbesserungsvorschlag für nächstes Jahr: Die Werte + ggf. Bezeichnung der jeweiligen Beinchen im Text zum jeweiligen Tag einpflegen.

    Viele Grüße

    Antworten
    1. rsoldie

      das mit dem poti hätte mich auch interressiert ebenso was es mit der meldung im debugfenster "error:eacces" auf sich hat.
      mfg
      rs

      Antworten
  8. paulaner

    Hallo,

    erste Eindrücke, sorry aber nicht ausgereift!

    – Temperatur, trotz 10k Einsteller max/min -7°C – -25°C !!!
    – Brightness sollte doch auch wenn es um Phantasiewerte geht, nicht jeder hat Messmittel zum abgleichen zu Hause in lux angegeben werden.

    Auch hier empfehle ich die Hardware (Schaltung) und den Flow anzupassen!!!

    Wenn ich auch etwas 'vorgelesen' habe, sollte der 22. Tag nach diesen folgen, man erspart sich das lästige umstecken. Statt der 2 Drähte den Luftfeuchtesensor und natürlich das Flow des Tages.
    Die Reihenfolge ist, von wem auch immer etwas unglücklich gewählt.

    Antworten
  9. Peter

    Bei Zimmertemperatur zeigt die UI bei mir -7.4° Celsius an. Wenn ich den NTC-Widerstand mit den Fingern anwärme, steigt die Temperatur an – es wird also offensichtlich etwas gemessen.

    Im Debug-Fenster schwankt der Temp-Rohwert um 1840 herum.

    Hat jemand ein ähnliches Problem?

    LG, Peter

    Antworten
    1. Kikovius

      Hallo Peter,

      ja, das ist bei mir ähnlich (-9,6°C bei 2020).

      Viele Grüße

      Antworten
    2. nochsoeiner

      Hier auch. -7°C.

      Hat jemand eine Idee, woran es liegt?

      Antworten

Schreiben Sie einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.