Als mir mein Elektriker drei Leerdosen für die TFE an meiner Hauswand eingebaut hat, ahnte ich noch nicht, was das später mal bedeuten würde - und das ist nun schon mehr als 10 Jahre her
Nachdem mir die einzig passende Lösung dann aber einfach zu teuer war angesichts der gebotenen Leistung, hatte ich schon vor vielen Jahren die Idee einer eigenen Sprechanlage - irgendwas auf RS485-Basis. Nur fehlt mir das Wissen dazu.
Da kam mir DoorPi vor nun fast exakt drei (!) Jahren genau recht. Nur, dass sich mein Projekt dennoch so hinziehen würde, war so nicht absehbar.
Aber seit dem vergangenen Wochenende ist mein DoorPi nun auch im produktiven Einsatz und von ein paar Kinderkrankheiten abgesehen funktioniert alles sehr gut!!!
Da es bei mir keinen (nennenswerten) Vorgarten gibt und man direkt an der Haustüre steht, habe ich schon vor dem DoorPi damit begonnen eine Verbindung von der Türsprechstelle nach innen zum Flur herzustellen. Durch Zufall habe ich auch ein Verlängerungskabel für die RasPi Kamera entdeckt, das mit einem Flachbankkabel gut durch ein entsprechendes Loch durch die Wand (aber ohne Stecker) verlegt werden konnte.
Durch die drei UP-Dosen war der Einbauplatz an der Haustüre ja schon vordefiniert. Ich habe wegen der Verkabelung allerdings die Stege zwischen den Dosen herausgenommen, so dass man alles gut von vorne erreichen konnte. Auch was rein sollte stand eigentlich schon lage fest:
- Oben: Kamermodul
- Mitte: Sprecheinsatz
- Unten: Klingelstaster
Da Gira das einzige System war, dass m.W. in diese UP-Dose passte, habe ich mir also die entprechenden Einsätze/ Aufsätze besorgt. Es folgten viele Einzeltests und Rückschläge, in Komibation mit wenig Freizeit. Das ganze mit dem Erfolg, dass bereits funktionierende Ideen wieder über den Haufen geworfen wurden usw., wie zum Beispiel die Klingeltasterbeleuchtung mit weißen LEDs auf 5NeoPixel umzustellen usw. oder die Kommunikation von innen nach außen nicht mit den Kontakten und anolgen Audio, sondern direkt per USB zu machen usw.
Am Ende (und das ist nun auch die Version die verbaut ist), kam folgendes heraus:
- die drei Einsätze von Gira in Alufarben (hatte vorher weiß, aber da vergilbt mittlerweile alles was im freien angebracht ist)...
- Rasperry 3B (kostest nicht wesentlich mehr als die Vorgänger und hat noch Reserven...)
- Steckernetzteil 5V/3A
- USB-Soundkarte (kommt in die Außenstelle)
- UBS-Hub (klein, da erin die Außenstelle soll)
- Teensy 3.2 (kleiner Prozessor, ähnlich Arduino)
- Breakoutboard (kurz BoB für den Teensy, hier auch ein kleiner Audioverstärker für den Lautsprecher)
- PAM8403 Audio Verstärker (an der Unterseite vo BoB angebracht)
- Kamerahalterung als 3D-Druck gem. bgewehr von hier (Danke für die stl-Dateien - das hat mir viel Arbeit abgenommen)
- Klingeltaster als 3D-Druck (eigener Entwurf)
- TFT-2.8" für den Klingeltaster
- RDM630 RFID-Sensor zur Integration in den Klingeltaster
- ein Helligkeitssensor am Kameramodul liefert die Umgebungshelligkeit (um damit die Außenbeleuchtung oder den IR-LED-Ring an der Kamera schalten zu können).
Wenn man es gleich richtig kauft und nicht gefühlte 20xMal das Konzept ändert, dürften sich die Kosten bei etwa 250 € bewegen. Selbst wenn man meine Versuche einkalkliert bin ich wahrscheinlich bei etwa 40% der fertigen Gira-Lösung angekommen...
Ferner/ Optional:
Briefkasten/Zeitungsfach-Einwurferkennung
- erfordert einen (weiteren) Ardiuno Nano, der mit dem Teensy (s.o.) per I2C "redet"
- 3 Lichtschranken (LS)
- 2 Reed-Kontakte
- 2 Magnete
Das Modul wertet über zwei LS im Brieffach und eine LS am Zeitungfach aus, ob Briefe bzw. Zeitungen im Briefkasten liegen.
Das Öffnen der Briefkasteklappe wird über einen Reedkontakt ausgwertet. Die Info sammelt der Teensy ein und sendet sie dann weiter
in Richtung RasPi.
Bewegungsmelder (ist ein 4. UP-Einsatz unterhalb von meinem DoorPi)
- erfordert einen Ardiuno Nano, der mit dem Teensy (s.o.) per I2C "redet"
- und ein paar Widerstände, einen Spannungsregler (und für andere mgl. ärgerlicherweise 24V). Die 24V hatte ich zum Glück von meiner bestehenden Haussteuerung bereits in der Nähe...
Wenn es mir nicht so sehr aus ein einheitliches Erscheinungsbild angekommen wäre, hätte ich hier eher zu einem gewöhnlichen Bewegungsmelder gegriffen und den dann auch am Teensy angeschlossen.
Hier haben mir die Infos von hier: 24V_UP-Einsatz_für_Bewegungsmelder_von_Jung,_Berker_und_Gira geholfen. Das Programm habe ich anhand der Beschreibung auf dem Arduino nachempfunden, musste aber feststellen, dass sich mein Modul völlig anders verhalten hat, aber zumindest am Ende die Bewegung gut erkannt hat. Allerdings bin ich eher ein Anfänger was die hardwarenahe Programmierung angeht, zumindest wenn es um so timingkritische Dinge geht...
Auch hier liefert der Arduino die Daten per I2C an den Teensy, der sie wiederum an den RasPi weiterreicht.
bei beiden Modulen hätte man sich die Arduinos sparen können, weil der Teensy ausreichend Anschlüsse und Ressourcen gehabt hätte.
Aber so konnte ich die einzelnen Module für sich testen und später alles zusammenschalten. Einzig der Stromverbrauch ist sicher etwas höher.
Gemessen beträgt er derzeit im Standby rund 5,2W bei aktivem Gespräch rund 6,2W - das finde ich völlig OK.
Highlights:
- Der Teensy ist die zentrale zur Außenstelle und hängt via USB-Hub (ebenfalls außen angegbracht) an einem USB-Port vom Raspberry Pi, auf dem der DoorPi läuft.
- Mit einer Usb-Webcam käme man mit 4 Drähten aus, die sich theoretisch per USB-Extender verlängern lassen müsste:
5V, Masse, USB-Data-Plus, USB-Data-Minus. Bei mir kommt für diese Verbindung mit weniger als 1m Leitungslänge ein Telefonkabel zum Einsatz (ungeschirmt). Für die USB-Übertragung (seriell) mit 1MBit/s zwischen RasPi & Teensy reicht das vollkommen. - Das TFT-Display im Klingeltaster wird auch vom Teensy angesteuert: Grafiken sind auf einer SD-Karte (am Display) abgelegt. Über Steuerbefehle vom RasPi über USB kann ich Bilder austauschen oder auch auf diese SD-Karte hochladen usw.
- Das Klingeln wertet der Teensy aus und sendet ein Paket an den Raspberry, der das wiederum in ein Filesystem-Kommando für den DoorPi umwandelt.
- Der TFT-Klingeltaster besitzt (hinter dem Display) einen RFID-Sensor. Die IDs erfasst auch hier wieder der Teensy, der wiederum die Info an den RasPi sendet, dieser wertet die Berechtigung aus und gibt eine entsprechende Rückmeldung an den Teensy, der daraufhin Aktionen ausführt (über eine eigene "Skriptsprache").
- Damit ich bei SW-Änderungen nicht alles ausbauen muss, kann man den Teensy im eingebauten Zustand vom RaspberryPi aus flashen.
- Für einen hohen WAF habe ich einen parallelen Taster eingbaut, der die bisherige Funkklingel "drückt", so dass kein Besucher "verloren" geht, wenn das System mal nicht so will. Diese Funktion kann man über den PiFace dann über ein Relais auch ausschalten.
- Den zweiten Relaiskontakt verwende ich für einen harten Reset vom Teensy bzw. des Außenmoduls und kann es damit komplett stromlos machen...
- Für die Türe habe ich auch schon seit Ewigkeiten ein elektrisches Türschloss, dass ich direkt an die GPIOs des RasPi schalten konnte, damit wäre ich eigentlich auch ohne PiFace ausgekommen, so dass er oben auch nicht in der Liste steht...
Oben links im Bild der Teensy samt BoB, unten links der USB-Hub, darunter nur an den Klinkenbuchsen ansatzweise erkennbar die USB-Soundkarte rechts im Bild der TFT-Klingeltaster von hinten mit RFID-Sensor, unter der Lochrastterplatine sind zwei Mikrotaster angebracht. Das breite Flachbandkabel ist für das TFT-Display inkl. Touchsensor vom Display, das andere Kabel ist der serielle Anschluss vom RFID-Sensor. Das vierpolige Kabel ganz links im Bild geht zum Gira-Sprecheinsatz (Mikrofon/ Lautsprecher).
Hier ist die Kombi aus Soundkarte und USB-Hub noch mal besser zu sehen:
Offene Punkte:
- [tlw. gelöst, s.u.] derzeit ist die Kommunikation von den beiden Arduinos zum Teensy per I2C gestört. Ich vermute, dass der Bewegungsmelder-Arduino die Ursache ist. Hier hilft wohl nur aufschrauben und testen...
Hier habe ich vor dem Einbau schon etwa 3m Kabellänge (im eingebauten Zustand sind es weniger als 1m) erfolgreich bei einer Übertragungsgeschwindigkeit von 100Kbit/s getestet. Bei 400Kbit/s hatte ich Fehler... Also kann ich hier die Leitungslänge als Fehlerquelle wohl ausschließen... - [Gelöst, s.u.] Obwohl die Kamera in den vergangenen 6 Wochen auf meinem Sideboard im Wohnzimmer nur einmal ausgefallen ist, stürzt mir der mjpeg-Streamer seit dem EInbau spätestens alle 12 Stunden ab. Ich hoffe, dass es nicht an der etwa 50cm längeren Leitung liegt...
- Der LED-Ring, der bei Dunkelheit den Besucher anleuchten soll streut das Licht so ungünstig, dass ich nur die Kameraglasabdeckung im Bild habe. Das wurde hier schon im Forum auch schon diskutiert, z.B. hier.
Weiß aber noch nicht wie ich damit umgehe. Die einfachste Lösung ist wohl über den Bewegungsmelder das Außenlicht einzuschalten...
Viele Grüße,
Max
[Neue Features]
30.03.2018:
Bewegungsmelder abgeklemmt (s.u.), und der Briefkasten funktioniert jetzt:
- Einwurfklappe öffnen setzt einen Zähler höher (per Reedkontakt)
- Ein Brief wird durch eine der beiden Lichtschranken erkannt
- Eine Zeitung im Zeitungsfach wird zuverlässig erkannt
- Das Öffnen des Briefkastens setzt das Brief-Flag und den Zähler zurück...
27.03.2018:
Da das Display bei heller Umgebung fast zu lichtschwach ist, habe ich tagsüber ein Schwarz-Weiß-Namenschild als Bitmap hinterlegt. Das wird automatisch vom RasPi zum Sonnenaufgang eingspielt (per Copy-Befehl auf dem Teensy; in der SD-Karte) und die Helligkeit auf Maximum gestellt. Zum Sonnenuntergang stelle ich die TFT-Beleuchtung auf 10% zurück und habe eine weniger kontrastreiches Bild/ Foto als Hintergrund, dass man dann aber gut erkennen kann
[Nachtrag]
03.04.2018: Leider hat sich die Kamera mal wieder verabschiedet: Nachts shwarzes Bild wegen zu geringer Umgebungsbeleuchtung, tagsüber nur weiß... Ein Neustart von mjpg_streamer hat gereicht um die Kamera zu reaktivieren. Zur Not baue ich das in einen Cron-Job ein...
30.03.2018: Heute konnte ich mich endlich wieder mit der I2C-Anbindung von Briefkasten und Bewgungsmelder beschäftigen:
Tatsächlich ist zumindest der Arduino am Bewgungsmelder hin und hat den I2C-Bus so nachhaltig gestört, dass auch der Briefkasten keine Daten mehr gesendet (oder emfpangen?) hat. Dann ist mir doch auch zwischendrinn die Kommuniaktion zusammengebrochen, nachdem ich den Begeungsmelder abgeklemmt hatte. Daher habe ich die Datenrate auf 10KHz reduziert und funktioniert seitdem stabil.
Jetzt muss ich den Ardiuino (Nano) für den Bewgungsmelder tauschen und dann noch untersuchen, warum beim 5V Eingang nur 1,8V ankommen, die der Arduino auf der 24V Versorgung erhält...
Features, siehe oben...
27.03.2018: Kameraproblem gelöst durch Speichern eines Fotos alle 15min mit: