DoorPi (GaragePi) von SammyDK

  • Hallo hier alle im Forum,
    ich bin neu hier und habe mit Begeisterung dieses Projekt gefunden, da ich schon lange zwei RPi’s hier rumliegen hatte und immer nach einer Verwendung gesucht habe. DoorPi ist schon mal sehr gelungen, Super Leistung.
    Ich habe vor mit dem Pi nicht direkt eine Gegensprechanlage zu realisieren, dennoch ist das Projekt genau richtige Projekt für das, was ich vorhabe. Ich möchte mein Garagentor über DECT oder IPPhone über die Fritzbox öffnen, anhalten und auch schließen, als Torantrieb habe ich einen SOMFY Keasy L.
    Der RPi soll den Tasterkontakt des Antriebs bedienen.
    Ich habe das Projekt auf einem RPi2 mit PiFace erst mal für meine Belange getestet und soweit konfiguriert.
    Dann habe ich mir gedacht, der RPi 2 ist eigentlich zu schade für diese Aufgabe, da ich kein Video oder sonstige schöne Funktionen des DoorPi benutze, sondern nur den DoorPi von zugelassenen Telefonnummern anrufe und per Code dann das Tor bediene. Dann habe ich meinen RPi B, da dieser diese Aufgabe auch mit Bravur lösen kann, dazu ausgewählt und damit begannen auch die Probleme.


    Beim PiFace mit RPi2 bleiben die Relais (auchbeim starten des Pi’s )ruhig und werden erst mit der Doorpi Software bedient, das ist bei meinem RPi B direkt über die GPIO nicht so. Beim starten des Pi’s zieht das Relais an, kommt die Doorpi Software zum Laufen, geht es in den Ruhezustand, so wie es eigentlich sein soll.
    So ist das aber für mich aber nicht zu gebrauchen, da nach einem Stromausfall und Stromwiederkehr, das Garagentor durch diesen Zustand alleine aufgehen würde.
    Softwaretechnisch habe ich leider keine Lösung gefunden, aber auch im Forum hierzu nichts gefunden, oder nicht die richtigen Keywords benutzt, vielleicht habe ich ja auch nur das Problem.


    Lösung:
    Gelöst habe ich es durch eine zusätzliche Logik mit XOR und Inverter mit OK (open collector)
    Ich bediene mich hier eines zweiten GPIO Ausgang GPIO24, der nicht geschaltet wird aber in der DoorPi .ini nicht auskommentiert ist in den Outputs.
    Das XOR funktioniert so, ist GPIO 23 +24 Low = Ausgang XOR = Low, ist GPIO 23 + 24 High = Ausgang XOR = Low, ist GPIO 23 High und GPIO 24 Low = Ausgang XOR = High.
    Ich hoffe ich habe mich hier verständlich ausgedrückt.
    Hier mal kurz die Logiktabelle eines 7486 der insgesamt 4 XOR’s hat von dem ich aber nur eins benutze.
    E1|E2|A3
    0 |0 |0
    1 |0 |1
    0 |1 |1
    1 |1 | 0
    Damit kann der Zustand beim Einschalten und wenn Doorpi in RUN Mode gehen einen x-beliebigen Wert annehmen der aber bei beiden benutzten GPIO gleich ist und mein Relais bleibt stumm. Wenn jetzt im RUN Mode GPIO 23 den Status ändert wird der Ausgang auch geändert, somit funktioniert das Schalten dann über den Pi im Anschluss ohne Probleme. Den Inverter habe ich dahinter geschaltet, damit ich:
    1. Das Signal invertieren konnte dort wo ich es brauche
    2. Der 7406 hat OK (Open Kollektor) dient also auch gelichzeitig als Treiber.
    Wenn jetzt jemand sagt, dass hätte man doch auch per SW lösen können, kann er gerne meine Doorpi.ini bearbeiten, meine Lösung funktioniert und ich möchte meine Erfahrungen auch hier nur weitergeben, vielleicht hat ja noch jemand das Problem mit dem anziehenden Relais beim Starten des RPi’s.
    Anhang:
    DoorPi.ini
    Schaltplan der Relaisplatine für ein Relais
    Schaltplan meines XOR's & Treiber
    Bild meiner DoorPi