Unseren DIY Feuchtigkeitssensor zur Messung der Bodenfeuchtigkeit an bis zu 7 verschiedenen Messpositionen kennt ihr ja bereits. Diesen könnt Ihr wie gewohnt bei uns im smartkram Shop kaufen. Heute möchten wir euch nun ergänzend unsere DIY Ventilansteuerung vorstellen, mit welcher Ihr bis zu 4 elektrische Ventile zur Gartenbewässerung ansteuern könnt. Die Platine ist so ausgelegt, dass bis zu 4 24V DC Magnetventile darüber angesteuert werden können. Das Gerät wird nativ in der Homematic-Zentrale erkannt. Grundlage dafür ist AskSinPP.

Wer bereits elektrische Bodenventile zur Gartenbewässerung nutzt und den Einsatz selbiger optimieren möchte, sollte ab jetzt mitlesen :) Wir bieten euch ergänzend zu unserem DIY Bodenfeuchtigkeitssensor nun eine DIY Platine zur Ansteuerung eurer Ventile und damit eine Kombination zur optimalen Bewässerung. Die Platine und alle Bauteile sind bereits bei uns im Shop gelistet.

Überblick des Bausatzes

Zunächst sollt ihr natürlich wissen, was beim Aufbau auf euch zukommt. Die Bauteilliste umfasst dabei folgendes:

Aufbau der DIY Platine

Wir beginnen mit dem Auflöten des Funkmoduls. Legt dafür das CC1101 Modul genau auf die entsprechende Markierung auf der DIY Platine. Seid dabei sehr sorgfältig bei der Positionierung. Lötet nun am Besten zunächst nur ein einziges Lötauge von oben fest, legt einen Finger auf das Modul und erhitzt das Lötauge wieder. So könnt ihr die Platine optimal in Position bringen. (Achtung: Bitte nicht wundern, ich hab zunächst die drei PINS auf der rechten Seite zum Testen nicht verlötet… Bitte macht dieses gleich mit)

Im nächsten Schritt verlöten wir die Stiftleisten für die Montage des Arduinos. Hierfür einfach die Stiftleiste in die Lötaugen einlegen und von unten zunächst über ein Lötauge befestigen. Nun könnt ihr auch hier über Fingerauflegen (nicht den Pin berühren, den ihr gerade verlötet!) und gleichzeitigem Erhitzen die Position justieren.

Tipp: Achtet auch unbedingt auf die jeweils 2 Pins, die nicht in in den langen, seitlichen Reihen liegen.

Als nächstes widmen wir uns dem Taster. Diesen einfach in den vorbeschrifteten Bereich einlegen und von unten verlöten.

Da wir gerade in der Nähe sind, löten wir als nächstes den Festspannungsregler ein. Dieser wird auf die Platine auflegt und mit genügend Lötzinn von oben verlötet. Bitte, genau wie auf dem Bild erkennbar, verlöten, da dieser polungsrichtig aufgesetzt werden muss. Der Festspannungsregler sorgt dafür, dass ihr mit einem großen Eingangsspannungsbereich vom 6-24 Volt (bspw. von eurer vorhanden Ventilsteuerung) die DIY Platine und die darauf vorhanden Bauteile mit einer notwendigen Spannung von 5V betreiben könnt.

Nun löten wir den mitgelieferten Kondensator ein… Hier müsst ihr ebenfalls auf die Polung achten. Die „weiß“ markierte Seite auf der Platine muss mit der weißen Markierung auf dem Kondensator korrespondieren.

Widerstand R1 einlöten… 

… sowie die mitgelieferte Sicherung (4A/250V). Widerstand und Sicherung besitzen keine Polung und können nicht verkehrt herum eingelötet werden.

In Nähe der Sicherung findet ihr zudem die Vorbereitung für den Anschluss der 868 MHz Antenne. Hier einfach alle 5 Lötaugen (4x Masse, 1x Signal) auf der Unterseite verlöten. Um Sicherzustellen, dass es am Ende keinen Kurzschluss zwischen Signal und Masse gibt, könnt ihr mit einem handelsüblichen Multimeter einmal zwischen dem mittleren Kontakt und den äußeren Kontakten auf Durchgang prüfen. Es darf dabei keine Kontaktierung feststellbar sein.

Jetzt löten wir noch eine 6-polige Stiftleiste sowie die LED1 auf. 

Auch die Anschlussklemmen (5x) können nun aufgesetzt werden. An diesen hier sichtbaren Anschlüssen GND werden später die Massen der Bewässerungsventile angeschlossen. Die VCC Klemmen bleiben vorerst noch frei; es erfolgt hier zudem NICHT der „+“-Anschluss der Versorgungsspannung der Bewässerungsventile!

Zum Schluß wird der Arduino auf die zuvor angebrachten Stiftleisten aufgelötet. Die PINS A4,A5 und A7 werden dabei gerne vergessen, müssen aber natürlich ebenfalls verlötet werden. Auch die Antenne könnt ihr nun an der Antennenbuchse befestigen.

Einbau in die Hensel-Dose

Die Hensel-Dose müsst ihr mit einer Kabeleinführung vorbereiten. Schneidet dafür die Dichtung an der rechten, unteren Seite der Hensel-Box heraus. Nutzt unbedingt diese Seite, da die Platine eine entsprechende Aussparung an dieser Montageseite besitzt.

Nun setzt ihr die Kabeleinführung ein und verschraubt diese in der Hensel-Dose. Am Besten positioniert und fixiert ihr hierfür im inneren Bereich der Hensel-Dose die Mutter und verschraubt von Außen die Kabeleinführung in die innenliegende Mutter.

Abschließend können wir die vorbereitete Platine in die Hesel-Dose einbauen und mit 2 Schrauben befestigen.

Jetzt geht es „Huckepack“ weiter! Das bereits fertig aufgebaute Relaismodul wird über 4 Abstandshalter direkt auf der DIY Platine befestigt und über eine 6 polige Leitung miteinander verbunden. Bitte die Anschlüsse dabei nicht vertauschen! Info: Damit ihr es besser erkennen könnt, habe ich ein Bild ausserhalb der Hensel-Dose gemacht.

Ebenso müssen die Ausgänge (VCC) auf der DIY Platine mit den jeweiligen Relais-Eingängen verbunden werden. Bereitet ruhig alle 4 Ausgänge vor, auch wenn ihr weniger Ausgänge zur Ventilsteuerung nutzen solltet.

Elektrischer Anschluss eurer Ventile

Schließt nun eure Spannungsversorgung der elektrischen Ventile (6V-26V) an die vorbereite Buchse V(in) der DIY Platine an. 

Auch die elektrischen Ventile können nun an die Buchsen angeschlossen werden. Hierfür schließt ihr die Masse (GND) an den Buchsen der DIY Platine (GND) an.

Die „+“-Seite der Ventilversorgung wird an die Relaisausgänge des Relaisboards angeschlossen.

Führt die Leitungen über den mitgelieferten Einsatz der Kabeldurchführung von Innen nach Außen, damit keine Feuchtigkeit eindringen kann.

Welche Magnetventile können verwendet werden?

Es kann jedes Magnetventil verwendet werden, das mit 24V DC arbeitet. Es gibt auch Magnetventiule von Gardena die mit 24V AC arbeiten. Diese können auch verwendet werden, hier wird die Lebensdauer der Spule aber deutlich verkürzt, dazu gibt es bereits einige Einträge im Netz. Schaut einfach mal bei Amazon vorbei. Hier gibt es günstige Ventile von Solid und von Hunter.

Programmierung Arduino

Nachdem wir den Aufbau abgeschlossen haben. müssen wir noch einen Sketch auf den Arduino laden. Wir nutzen hierfür den Sketch HB-UNI-SenAct-4-4 von Jérôme Pech.

Ihr könnt diesen hier in der jeweils aktuellen Version herunterladen: Link („Clone or Download“ anklicken)

Wie dieser Sketch auf den Arduino zu übertragen und was dabei zu beachten ist (bspw. Installation von Bibliotheken) könnt ihr in unserem Bericht zum DIY-Bodenfeuchtesensor nachlesen.

Anlernen an eine CCU

Da es sich hierbei um ein AskSinPP Projekt handelt, benötigt ihr auf der CCU ein entsprechendes Add-On, durch welches das Anlernen von Selbstbausensoren und -aktoren ermöglicht wird. Hierfür bietet Jérôme Pech ebenfalls das passende Add-On zum Download an. Genauere Infos zur Installation könnt ihr erneut unserem Bericht zum DIY Bodenfeuchtesensor entnehmen.

Klickt nach der Installation einfach auf „Homematic Gerät anlernen“ in der CCU und drückt danach einmal den Taster auf eurem soeben fertiggestellten Aktor zur Ventilansteuerung. Das Gerät wird danach in der Zentrale angelernt und meldet sich mit den folgenden Kanälen:

Ihr könnt nun, wie bereits erwähnt, über die Kanäle 1-4 die Relais unseres fertiggestellten Bausatzes zur Ventilansteuerung eurer Gartenbewässerung nutzen.

Fazit

Demnächst möchten wir euch in einem weiteren Bericht zeigen, wie ihr den Bodenfeuchtesensor sowie die Ventilansteuerung kombinieren könnt, um eine optimale Gartenbewässerung sicherzustellen.

Ihr könnt den hier vorgestellten Bausatz wie üblich bei Smartkram.de im DIY-Bausatz-Bereich bestellen.

19 Kommentare
  1. Avatar
    Thorsten sagte:

    HB-UNI-SenAct-4-4 von Jérôme Pech konnte ich nicht fehlerfrei auf einer CCU2 installieren. Ich habe deshalb HM-LC-SWX-SM wie folgt modfiziert und verwendet. Dann ich ist auch keine Add-On Installation notwendig. Berücksichtigt ist auch die von Thomas benannte Relaisumkehr:

    //- ———————————————————————————————————————–
    // AskSin++
    // 2016-10-31 papa Creative Commons – http://creativecommons.org/licenses/by-nc-sa/3.0/de/
    //- ———————————————————————————————————————–

    // define this to read the device id, serial and device type from bootloader section
    // #define USE_OTA_BOOTLOADER

    // modified for DIY Gartenbewaesserung: 4-fach see cr012020

    // number of relays by defining the device
    #define HM_LC_SW1_SM 0x00,0x02
    #define HM_LC_SW2_SM 0x00,0x0a
    #define HM_LC_SW4_SM 0x00,0x03

    #define CFG_LOWACTIVE_BYTE 0x00
    #define CFG_LOWACTIVE_ON 0x01
    #define CFG_LOWACTIVE_OFF 0x00

    #define DEVICE_CONFIG CFG_LOWACTIVE_OFF

    //#define HM_SENSOR_RELAY

    #define EI_NOTEXTERNAL
    #include
    #include
    #include

    #include

    // we use a Pro Mini
    // Arduino pin for the LED
    // D4 == PIN 4 on Pro Mini
    #define LED_PIN 4
    // Arduino pin for the config button
    // B0 == PIN 8 on Pro Mini
    #define CONFIG_BUTTON_PIN 8

    #ifdef HM_SENSOR_RELAY
    // relay pins for the HMSensor Relay Board
    #define RELAY1_PIN 17
    #define RELAY2_PIN 16
    #define RELAY3_PIN 15
    #define RELAY4_PIN 14
    #define BUTTON1_PIN 6
    #define BUTTON2_PIN 3
    #define BUTTON3_PIN 19
    #define BUTTON4_PIN 18
    #else
    // relay output pins compatible to the HM_Relay project
    // cr012020
    #define RELAY1_PIN 14
    #define RELAY2_PIN 15
    #define RELAY3_PIN 16
    #define RELAY4_PIN 17
    #endif

    // number of available peers per channel
    #define PEERS_PER_CHANNEL 8

    // all library classes are placed in the namespace ‚as‘
    using namespace as;

    // define all device properties
    const struct DeviceInfo PROGMEM devinfo = {
    {0x12,0x34,0x56}, // Device ID
    „HM_0020001“, // Device Serial
    {HM_LC_SW4_SM}, // Device Model
    0x16, // Firmware Version
    as::DeviceType::Switch, // Device Type
    {0x01,0x00} // Info Bytes
    };

    /**
    * Configure the used hardware
    */
    typedef AvrSPI RadioSPI;
    typedef AskSin<StatusLed,NoBattery,Radio > Hal;

    // setup the device with channel type and number of channels
    typedef MultiChannelDevice<Hal,SwitchChannel,4> SwitchType;

    Hal hal;
    SwitchType sdev(devinfo,0x20);
    #ifdef HM_SENSOR_RELAY
    ConfigButton cfgBtn(sdev);
    InternalButton btn1(sdev,1);
    InternalButton btn2(sdev,2);
    InternalButton btn3(sdev,3);
    InternalButton btn4(sdev,4);
    #else
    // cr012020
    ConfigButton cfgBtn(sdev);
    #endif

    // if A0 and A1 connected
    // we use LOW for ON and HIGH for OFF
    bool checkLowActive () {
    pinMode(14,OUTPUT); // A0
    pinMode(15,INPUT_PULLUP); // A1
    digitalWrite(15,HIGH);
    digitalWrite(14,LOW);
    bool result = digitalRead(15) == LOW;
    digitalWrite(14,HIGH);
    return result;
    }

    void initPeerings (bool first) {
    // create internal peerings – CCU2 needs this
    if( first == true ) {
    HMID devid;
    sdev.getDeviceID(devid);
    for( uint8_t i=1; i<=sdev.channels(); ++i ) {
    Peer ipeer(devid,i);
    sdev.channel(i).peer(ipeer);
    }
    }
    }

    void initModelType () {
    uint8_t model[2];
    sdev.getDeviceModel(model);
    if( model[1] == 0x02 ) {
    sdev.channels(1);
    DPRINTLN(F("HM-LC-SW1-SM"));
    }
    else if( model[1] == 0x0a ) {
    sdev.channels(2);
    DPRINTLN(F("HM-LC-SW2-SM"));
    }
    else {
    DPRINTLN(F("HM-LC-SW4-SM"));
    }
    }

    void setup () {
    DINIT(57600,ASKSIN_PLUS_PLUS_IDENTIFIER);
    bool first = sdev.init(hal);
    #ifdef HM_SENSOR_RELAY
    bool low = false;
    #else
    // cr012020
    bool low = (sdev.getConfigByte(CFG_LOWACTIVE_BYTE) == CFG_LOWACTIVE_OFF);
    #endif
    DPRINT("Invert ");low ? DPRINTLN("active") : DPRINTLN("disabled");
    sdev.channel(1).init(RELAY1_PIN,low);
    sdev.channel(2).init(RELAY2_PIN,low);
    sdev.channel(3).init(RELAY3_PIN,low);
    sdev.channel(4).init(RELAY4_PIN,low);

    buttonISR(cfgBtn,CONFIG_BUTTON_PIN);
    #ifdef HM_SENSOR_RELAY
    buttonISR(btn1,BUTTON1_PIN);
    buttonISR(btn2,BUTTON2_PIN);
    buttonISR(btn3,BUTTON3_PIN);
    buttonISR(btn4,BUTTON4_PIN);
    #endif
    initModelType();
    initPeerings(first);
    sdev.initDone();
    }

    void loop() {
    bool worked = hal.runready();
    bool poll = sdev.pollRadio();
    if( worked == false && poll == false ) {
    hal.activity.savePower<Idle >(hal);
    }
    }

    Antworten
    • Avatar
      Andre sagte:

      Hi thorsten,

      wenn ich deine Zeilen oben in Arduino. kopiere kommt immer folgende Fehlermeldung.
      Arduino: 1.8.11 (Mac OS X), Board: „Arduino Pro or Pro Mini, ATmega328P (3.3V, 8 MHz)“

      sketch_feb13e:34:9: error: #include expects „FILENAME“ or
      #include
      ^
      sketch_feb13e:35:9: error: #include expects „FILENAME“ or
      #include
      ^
      sketch_feb13e:36:9: error: #include expects „FILENAME“ or
      #include
      ^
      sketch_feb13e:38:9: error: #include expects „FILENAME“ or
      #include
      ^
      exit status 1
      #include expects „FILENAME“ or

      Ach, ich absoluter Anfänger auf dem Gebiet….

      Kannst du evtl die fertige Datei irgendwo hochladen? Ich bekomme es auch nicht an die CCU angemeldet.

      Danke

      Gruß

      André

      Antworten
  2. Avatar
    Martin sagte:

    Hallo,
    ich habe eine Frage zum verwendeten Antennenanschluss.
    Auf den Fotos wird ein RP-SMA Winkel gezeigt, welcher dann auf SMA adaptiert wird.
    Ist dies aus platzgründen (in Bezug auf die 2 pol. V(in) Anschlussklemme neben dem Antennenanschluss) von Nöten oder kann ich mir gleich einen SMA-Winkel kaufen?

    Gruß,
    Martin

    Antworten
  3. Avatar
    Martin sagte:

    Hallo
    Habe mir den Bausatz beschafft, nun hätte ich noch eine Frage zum Arduino.
    Durch was unterscheiden sich die die Projekte.
    Welches Projekt ist für die Magnetventilsteuerung das Richtige.
    Projekt-Datei HB-UNI-SenAct-4-4-RC herunterladen.
    Projekt-Datei HB-UNI-SenAct-4-4-SC herunterladen.

    Vorab besten Dank für eine Rückmeldung.

    Antworten
    • Avatar
      Manfred sagte:

      Hallo Martin,

      soweit ich das verstehe, ist das glaube ich egal. Bei einem sind es vier Schalter und bei dem anderen sind es vier Taster. Da sie aber nicht benötigt werden ist es egal.

      Ich habe diesen Sketch genommen. HM-LC-SWX-SM. Das sind vier Schaltaktoren und fertig. Ich habe nicht so gerne Schalter und Taster usw. auf meiner CCU die dann doch nicht benötigt werden. Aber daran denken, das bei dem HM-LC-SWX-SM der Setup-Taster ca. 3 Sekunden gedrückt werden muß, damit er angelernt wird.

      Grüße
      Manfred

      Antworten
  4. Avatar
    Tobias sagte:

    Hallo Michael,

    du schreibst in der Überschrift von 12 bzw. 24 Volt Gardena Ventilen. Ich habe jetzt intensiv danach gesucht und habe nur 9 bzw. 24 Volt Ventile von Gardena gefunden. Was mich aber noch viel mehr verunsichert ist die Tatsache das alle gefundenen Gardena Ventile AC und nicht DC tauglich sind.
    Hast du dich vertan oder habe ich irgend etwas übersehen?

    Danke
    Tobias

    Antworten
    • Sebastian
      Sebastian sagte:

      ..es geht nicht nur um Gardena Ventile – es können auch alle anderen Fabrikate verwendet werden, die 12V oder 24V DC sind. AC Ventile gehen auch, die Lebensdauer der Spule wird aber vermindert, wenn diese mit DC anstatt AC betrieben werden.

      Antworten
  5. Avatar
    Thomas sagte:

    Hallo,

    nachdem ich den Bausatz in betrieb nahm, waren alle vier Relais beim Einschalten eingeschaltet und die vier LEDs leuchteten. In der Homematic waren diese aber auf AUS und bei EIN waren die Relais aus.
    Nach Studium des Sketches habe ich in der Setup-Routine die vier Kanäle von false auf true verändert:

    void setup () {
    DINIT(57600, ASKSIN_PLUS_PLUS_IDENTIFIER);
    bool first = sdev.init(hal);
    sdev.switchChannel(1).init(RELAY_PIN_1, true);<-
    sdev.switchChannel(2).init(RELAY_PIN_2, true);<-
    sdev.switchChannel(3).init(RELAY_PIN_3, true);<-
    sdev.switchChannel(4).init(RELAY_PIN_4, true);<-

    Mit dieser Änderung funktionieren die Relais wie geplant.
    Außerdem muss die Versorgungsspannung (Vcc) für die Ventile am mittleren Pin (COM) und nicht am rechten Pin (NC) werden.
    Mit diesen beiden Änderungen funktioniert dieser tolle Bausatz perfekt.

    Mit besten Grüßen
    Thomas

    Antworten
  6. Avatar
    J sagte:

    Was ist Arduino Pin A8?
    Reicht für dieses Projekt nicht der HM-LC-SWX-SM als einfacher 4fach Schaltaktor? Oder werden die 4 Schließerkontakte benötigt?

    Antworten
    • Avatar
      Michael sagte:

      Hallo J,

      entschuldige, PIN A8 gibt es natürlich nicht… Hat sich beim Schreiben ein Fehler eingeschlichen und wurde soeben korrigiert.

      Danke und Gruß Michael

      Antworten
    • Sebastian
      Sebastian sagte:

      Moin,

      ja, würde auch reichen, ich hatte mal überlegt, auch die Rückmeldung der MAVs abzufragen, habe bisher aber noch keinen gut gangbaren Weg dafür gefunden, die Pins hatte ich erstmal mit auf die Platine geplant. Das Layout stelle ich in den nächsten Tage auch wieder zur Verfügung.

      Antworten
      • Avatar
        Manfred sagte:

        Hallo,
        eine Frage zum „HM-LC-SWX-SM“. Wenn ich das so wie es bei github liegt auf den Arduino lade, bekomme ich es nicht angelernt.
        Muß im Sketch noch etwas eingestellt werden?

        Grüße
        Manfred

        Antworten
    • Sebastian
      Sebastian sagte:

      …sorry ganz vergessen! Klar! Die Eingangsspannung kann 12V oder 24V sein. Der Festspannungsregler macht dann 5V für den Arduino daraus. Ihr könnt also 12/24V DC MAVs nutzen

      Antworten
  7. Avatar
    Heiko sagte:

    Hallo !
    Prima Projekt, den Feuchtesensor hab ich bereits gekauft, er wartet auf meine Zeit zum Zusammenbau, irgendwann nach dem Urlaub :-)

    Ich habe schon lange die Gardena Steuerung mit 6 Ventilen am Laufen und plane für deren Anbindung an die homematic eigentlich, die Magnetventile schlicht über ein potentialfreies Relais wie HM-LC-Sw4-DR (den dann zweimal) anzusteuern.
    Was ist der Grund dafür, dass ihr für diesen Zweck eine eigene Platine entwickelt ? Beste Grüße Heiko

    Antworten
    • Sebastian
      Sebastian sagte:

      …nicht jeder hat Hm-wired ;-) Außerdem ist die Variante ja auch günstiger und kann direkt per Funk angebunden werden. Auch ist das ganze ine iner Dose von Hensel verpackt, sodass es IP67 geschützt ist.

      Antworten
      • Avatar
        Heiko sagte:

        ok, danke ! Der von mir geplante Aktor ist nicht wired, den hab ich schon für Garagentor, Velux-Jalousien etc im Einsatz.
        Spritzschutz und Kosten sind natürlich gutes Argument :-)

        Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

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