Türglockenverstärker
Ich gehöre zu den anonymen Amazonikern. Etwa zwei- bis dreimal pro Woche stehen die Kollegen von DHL & Co. vor der Tür und spielen das beliebte Ist-jemand-zuhause-Roulette. Oft höre ich die Türklingel nicht, weil ich im Garten bin. Manchmal höre ich die Klingel nach dem siebten Läuten (unser Zusteller gibt nicht so schnell auf) und darf mich dann fragen lassen, ob ich gerade im Südflügel war.
Um das zu verhindern, möchte ich einen Raspberry Pi einsetzen, der erkennt, wenn die Türglocke läutet. Die üblichen Klingeltrafos arbeiten mit 8 bis 12 V Wechselstrom, was für dem Raspberry Pi recht unhandlich ist. Um das Schließen des Wechselstromkreises direkt als Eingang zu benutzen, müsste man die Wechselspannung erst gleichrichten und dann auf eine Spannung herunterdrosseln, die der Raspi verarbeiten kann. Das geht alles, ist aber aufwändig und erfordert auch mehr Verdrahtung, als in das Türglockengehäuse passt.
Ich habe deshalb einen anderen Weg gewählt und einfach einen Geräuschsensor an den Raspberry Pi angeschlossen. So sieht er aus:
Wenn ein Geräusch ertönt, das die eingestellte Lautstärkeschwelle überschreitet, gibt der Sensor eine definierte Spannung auf den „Out“-Pin. Dieses Signal kann der Raspberry auswerten und „weiß“ dann, dass es an der Tür geklingelt hat. Zum Einsatz kommt der noch recht junge Raspberry Pi Zero. Er ist etwa so lang wie mein kleiner Finger, kostet 5 Euro und ist ein vollständiger PC, auch wenn man von der Rechenleistung keine Wunder erwarten sollte. Das ist er:
Der Anschluss des Geräuschsensors an den Raspberry Pi ist denkbar einfach. Neben der Versorgungsspannung muss der Sensor nur an einen freien GPIO-Pin angeschlossen werden. Ich habe GPIO 21 (= physisch Pin 40) gewählt. Über den Drehpoti im blauen Gehäuse wird seine Empfindlichkeit gesteuert. Sie möchten natürlich nicht ständig benachrichtigt werden, wenn in der Nähe der Glocke irgendwelcher Lärm herrscht (laute Stimmen, fallender Gegenstand, bellender Hund…). Das können Sie weitgehend verhindern, indem Sie den Sensor möglichst nah an den Klangkörper der Glocke montieren. Dann können Sie die Empfindlichkeit so einregeln, dass nur das laute Signal direkt daneben zum Auslösen führt. Ich habe den Sensor dazu in das Gehäuse der Türglocke eingeführt:
Wenn es nun an der Tür klingelt, lasse ich im Haus und im Garten einige Lampen blinken. Wie man Lampen und andere Geräte automatisch ein- und ausschalten kann, können Sie im Artikel „Automatisches Gartenlicht“ nachlesen. Außerdem wird eine Nachricht per Twitter verschickt:
Der Programmcode, der für das Auslesen des Geräuschsensors benötigt wird, ist erfreulich kurz:
#!/usr/bin/env python3 from gpiozero import Button from signal import pause import os def hat_geklingelt(): #hier können beliebige Aktionen #ausgeloest werden, wenn es an #der Tuer geklingelt hat os.system("/usr/local/shellscripts/klingel.sh") button = Button(21, bounce_time=2) button.when_pressed = hat_geklingelt pause()
Für das Auslesen des Signals habe ich die gpiozero-Bibliothek verwendet. Sie hat zwar keine vorgefertigte Klasse für einen Geräuschsensor, aber das muss sie auch nicht – für die Software ist es egal, ob das Signal von einem Sensor oder einem gedrückten Schaltknopf stammt, also habe ich die „Button“-Klasse genommen.
Wichtig ist hier der Parameter „bounce_time=2“ in der button-Definition, denn das Klingelsignal „prellt“. Das heißt, es wird häufig nacheinander ausgelöst, wenn der Geräuschsensor anschlägt. Der Parameter bewirkt, dass alle eingehenden Signale innerhalb einer Zeitspanne von 2 Sekunden zu einem Signal zusammengefasst werden. Wenn Ihre Türglocke länger als 2 Sekunden läutet, sollten Sie diesen Wert noch erhöhen, sonst wird die eingestelle Aktion mehrfach ausgelöst.
Kokok
30. Jun. 2016 @ 12:53:18
G E N I A L !