Aus Linux-Magazin 04/2016

Aus dem Alltag eines Sysadmin: Charlys Klingel-Pi

Wenn Charly zu Hause seine Kopfhörer überstülpt, überhört er oft die Türklingel. Um das Verhältnis zu Nachbarn in Not und Paketboten in Eile nicht zu belasten, hat er die folgende Lösung mit Raspberry Pi Zero, einem Geräuschsensor sowie einer LAN-geschalteten Steckdosenleiste ersonnen.

Gelegentlich sitze ich im Arbeitszimmer, trage ein Headset und spüle die Ohren mit Stromgitarren-basierter Musik durch oder nehme an einer Telefonkonferenz teil, was weniger groovt. Als Folge meines akustischen Eskapismus höre ich das Läuten von Paketboten & Co. nicht.

Die kleinste Version des Raspberry Pi, der Zero, soll meine soziale Präsenz wieder herstellen. Der müsste ermitteln, wann sich der Klingelstromkreis schließt, und mich optisch informieren. Allerdings arbeiten übliche Türbimmeln an 8 bis 12 Volt Wechselspannung. Die gleichzurichten und Pi-verträglich zu drosseln wäre zwar machbar, aber mit viel Draht im Gehäuse der Türglocke verbunden.

Ich will es mit einem Geräuschsensor versuchen. Die Dinger sind sehr einfach aufgebaut, brauchen eine Versorgungsspannung von 5 Volt und signalisieren an ihrem Output-Pin, dass ein Geräusch ertönt [1]. Wo die Lautstärkeschwelle liegen soll, stelle ich an dem blauen Drehpoti ein. Sensor und Raspberry Pi haben im Gehäuse der Türglocke Platz (Abbildung 1). Wegen der akustischen Nähe zum Ereignis kann ich die Schaltschwelle des Sensors robust einstellen – er löst also nicht gleich aus, wenn im Flur die Kinder oder der Hund durchdrehen.

Abbildung 1: Geräuschsensor (rechts) und Raspberry Pi (links) finden im Gehäuse der Türglocke Platz.

Abbildung 1: Geräuschsensor (rechts) und Raspberry Pi (links) finden im Gehäuse der Türglocke Platz.

Leuchten und zwitschern

Das kleine, in Dauerschleife laufende Python-Programm in Listing 1 wertet das Signal aus. Die GPIO-Zero-Bibliothek [2], die ich hier benutze, kennt zwar keine Geräuschsensoren, ihre »Button()« -Funktion aber reicht, um den kurzen Spannungsimpuls des Sensors auswerten. Sie ist praktischerweise auch gleich entprellt: »bounce_time=2« fasst alle Signale, die der Raspberry innerhalb von zwei Sekunden erkannt hat, zusammen.

Wenn nun der Paketbote läutet, startet das Shellskript »klingel.sh« . Das steuert im LAN eine Steckdosenleiste an, die eine Lampe im Arbeitszimmer anknipst. Zeitgleich schickt mir das Skript eine Twitter-Nachricht. Ich weiß: Im Baumarkt gibt’s Funk-Türglocken zu kaufen. Der Klingel-Pi passt aber besser zur mir. (jk)

Listing 1

Klingel-Skript

01 #!/usr/bin/env python3
02 from gpiozero import Button
03 from signal import pause
04 import os
05
06 def hat_geklingelt():
07  os.system("/usr/local/shellscripts/klingel.sh")
08
09 button = Button(21, bounce_time=2)
10 button.when_pressed = hat_geklingelt
11 pause()

Infos

  1. Bezugsquelle des Geräuschsensors:: http://www.amazon.de/gp/product/B00N1TSM7K
  2. GPIO Zero: http://gpiozero.readthedocs.org

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben