Gartenbewässerung

Automatische Gartenbewässerung ist natürlich auch ein Top Thema in der smarten Welt. Diesen Sommer erstmalig in Betrieb genommen bin ich schon ganz zufrieden, obwohl ich nächste Jahr einige Änderungen vornehmen werde. Trotzdem werde ich Euch hier mal mein Projekt vorstellen. Neben der eigentlichen Steuerung werden aber noch weitere Basics angerissen, nämlich Timer, wie kann ich Relais schalten, wenn mir die Pins ausgehen und wie steure ich ein LCD Display am ESP an.

 

Da ich meinen kleinen Reihenhausgarten sowieso umgestalten wollte habe ich mir aus China Bewässerungsschläuche sowie Magnetventile besorgt. und kreuz und quer im Garten die Schläuche verbuddelt. alle 70cm kommt mittels T-Stück eine Düse raus. Weiterhin gibt es noch zwei große Sprenger.

Gespeist werden die Düsen durch ein Hauswasserwerk welches das Wasser aus der Regenwasser Zisterne zieht.

(siehe auch die Füllstandsmessung zum Thema)

Zum Betrieb wird nämlich ordentlich Druck benötigt sonst tröpfeln die Düsen nur und sprühen nicht.

 

Relais Steuerung

 

Wie man erahnen kann benötigen wir einen ganzen Sack voll Relais um die ganzen Ventile und Pumpen zu steuern. Irgendwann gehen uns aber die Pins am ESP aus. Aber auch dafür gibt es eine Lösung, nämlich der Port Extender

PCF8574. Hier nutzen wir nämlich den I2C Bus um weitere Schnittstellen zu bekommen.

 

Die Module kann man sogar wunderbar in Reihe schalten, denn jedes Modul bekommt eine eigene Busadresse.

In ESPHome sieht das dann so aus :

 


i2c:
  sda: D2
  scl: D1

pcf8574:
  - id: 'pcf8574_hub'
    address: 0x20
    pcf8575: False
        
 - platform: gpio
    name: "Garten_Relais_1"
    id: garten_relais_1
    pin:
      pcf8574: pcf8574_hub
      # Use pin number 0
      number: 0
      # One of INPUT, INPUT_PULLUP or OUTPUT
      mode: OUTPUT
      inverted: true
      
  - platform: gpio
    name: "Garten_Relais_2"
    id: garten_relais_2
    pin:
      pcf8574: pcf8574_hub
      # Use pin number 1
      number: 1
      # One of INPUT, INPUT_PULLUP or OUTPUT
      mode: OUTPUT
      inverted: true
          
...usw

LCD Display

 

kurz noch etwas zum LCD Display. dieses ist an einen ESP mit externer Antenne angeschlossen. Der Blaue Schalter schaltet die Backpanel Beleuchtung ein. Mit dem Grünen Taster kann ich die Bewässerung manuell schalten. 

Auf dem Display wird aktuell nur der Wasserstand der Zisterne angezeigt. Aber ich zeige kurz wie die Ansteuerung prinzipiell funktioniert. Das Display wird auch über I2C Bus angesteuert. Die Besonderheit ist, dass die Füllstandssensoren an einem anderen ESP hängen. so holen wir uns also die Inforamtionen vom HA Server.

 

 

 


i2c:
  sda: D2
  scl: D1

sensor:   
  - platform: homeassistant
    name: "Tank From Home Assistant"
    entity_id: sensor.tank_level
    id: tank  
  
display:
  - platform: lcd_pcf8574
    dimensions: 18x4
    address: 0x27
    lambda: |-
      it.printf("Wasserstand: %8.0f", id(tank).state);

Bewässerungslogik

 

momentan ist meine Bewässerung eher ein manueller Prozess. Später sollen natürlich Dinge wie Bodenfeuchtigkeit und Regen Einfluss auf die Steuerung haben.

 


 - alias: Timer Duesen
    id: 'Timerstart_duesen'
    # Timer is start wenn Bewässerung eingeschaltet
    trigger:
      platform: state
      entity_id: input_boolean.man_duesen
      to: 'on'
    action:
      - service: timer.start
        entity_id: timer.duesen
      - service: switch.turn_on
        entity_id: switch.pumpe_bewasserung    
      - delay: 00:00:05
      - service: switch.turn_on
        entity_id: switch.dusen         
       
   
  - alias: Timerstop
    id: 'Timerstop_duesen'
    trigger:
      platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.duesen
    action:
      - service: switch.turn_off
        entity_id: switch.dusen
      - service: switch.turn_off
        entity_id: switch.pumpe_bewasserung  
      - service: input_boolean.turn_off
        data:
           entity_id: input_boolean.man_duesen   

Kommentare: 0