Open Source im professionellen Einsatz
Linux-Magazin 01/2014
© Mike Zakharov, 123RF.com

© Mike Zakharov, 123RF.com

Ein Türöffner im Eigenbau

Sesam öffne dich!

,

Ein Optokoppler, ein Mosfet, ein Raspberry Pi, ein Webserver mit SQL-Datenbank und ein wenig Skript-Magie reichen aus, um einen Haustüröffner zu bauen. Der öffnet vom Smartphone aus die Tür oder spielt sogar je nach Gast andere Klingeltöne ab.

573

Ein großer Teil des Erfolgs des Raspberry Pi liegt in seinen praktischen und handlichen GPIO-Pins, die auf dem Board verlötet sind. Das Beispiel in diesem Artikel nutzt sie, um zwei Türöffner und die Klingel der Schließ- und Gegensprechanlage an den Platinenrechner zu koppeln. Der Anschluss zum Schalter in der zentralen Schließanlage ist hinter einem Optokoppler direkt auf den Türöffner der Haustür gelötet, parallel zur eingebauten Aufsperren-Taste.

GPIO-Pins, Optokoppler und ein Mosfet

Auch an der Wohnungstür ist nun ein elektrischer Türöffner verbaut. Den schaltet ein etwas größerer Mosfet vom zweiten GPIO-Pin des Raspi aus. Zusätzlich prüft ein Sensor, ob die Tür offen ist. Alles, was nicht im Pi integriert ist, bringt der Bastler in einem eigenen Gehäuse (Abbildung 1) unter, zum Beispiel auch einen Lautsprecher.

Abbildung 1: Von oben nach unten: Raspi, separates Gehäuse und Türöffner.

Der Webserver läuft über HTTPS, kann per VPN oder WLAN, NAT und lokale IPs gesichert sein. Eine von PHP generierte Webseite stellt das Anmeldeformular bereit. Das ist betont simpel gehalten (Abbildung 2), bietet aber bereits eine kleine User-Verwaltung mit Einträgen in einer SQL-Datenbank, die es gestatten, jeden Eingelassenen mit einem eigenen Klingelton zu versehen. Die dem User zugeordnete Datei liegt in einer SQL-Tabelle, der Raspi spielt sie ab, sobald der User die Tür öffnet.

Abbildung 2: Grüner Hintergrund, das bedeutet: Die Tür ist zu.

Dank des erwähnten Lautsprechers ist im Normalfall der Klang also in der Wohnung zu hören, aber den Aktionen sind hier keine Grenzen gesetzt. In Zeile 38 des »index.php« -Beispiels (siehe weiter unten) spielt Splay ein Audiofile ab:

$command = "screen -dm aplay /var/www/sesame/".$array['sound'];

Denkbar ist es aber auch, über Skripte oder SSH-Befehle etwa im Büro oder am Laptop einen Ton abzuspielen, wenn zu Hause jemand klingelt, oder gar die Sprechanlage weiterzuleiten. Das Standard-Linux auf dem Raspi eröffnet hier alle Möglichkeiten.

Root-Probleme

Die einzigen Probleme in der Konfiguration macht die Tatsache, dass im Raspberry (mindestens auf Debian Wheezy) nur Root den GPIO nutzen darf. Deshalb führt ein Wrapper die Python-Skripte als Root aus. Listing 1open.py« , öffnet beide Türen ), Listing 2open_down.py« , öffne unten) und Listing 3open_up.py« , öffne unten) zeigen, wie Python die GPIO-Pins adressiert, während Listing 4sensor.py« ) den Status der Wohnungstür abfragt.

Listing 1

open.py

01 #!/usr/bin/python2.7
02 import RPi.GPIO as GPIO
03 import time
04 GPIO.setwarnings(False)
05 GPIO.setmode(GPIO.BOARD)
06 GPIO.setup(7,GPIO.OUT)
07 GPIO.output(7,GPIO.HIGH)
08 time.sleep(5)
09 GPIO.output(7,GPIO.LOW)
10 time.sleep(12)
11 GPIO.setup(11,GPIO.OUT)
12 GPIO.output(11,GPIO.HIGH)
13 time.sleep(35)
14 GPIO.output(11,GPIO.LOW)

Listing 2

open_down.py

01 #!/usr/bin/python2.7
02 import RPi.GPIO as GPIO
03 import time
04 GPIO.setwarnings(False)
05 GPIO.setmode(GPIO.BOARD)
06 GPIO.setup(7,GPIO.OUT)
07 GPIO.output(7,GPIO.HIGH)
08 time.sleep(5)
09 GPIO.output(7,GPIO.LOW)

Listing 3

open_up.py

01 #!/usr/bin/python2.7
02 import RPi.GPIO as GPIO
03 import time
04 GPIO.setwarnings(False)
05 GPIO.setmode(GPIO.BOARD)
06 GPIO.setup(11,GPIO.OUT)
07 GPIO.output(11,GPIO.HIGH)
08 time.sleep(5)
09 GPIO.output(11,GPIO.LOW)

Listing 4

sensor.py

01 #!/usr/bin/python2.7
02 import RPi.GPIO as GPIO
03 import time
04 GPIO.setwarnings(False)
05 GPIO.setmode(GPIO.BOARD)
06 GPIO.setup(13,GPIO.IN)
07 if (GPIO.input(13)):
08         print("GREEN")
09 else:
10         print("RED")

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 2 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Fremdsprachen lernen mit dem Raspberry Pi
  • Raspi-Monitor

    Manchmal wäre es gut, wenn der Raspberry über einen ständig angeschlossenen Bildschirm verfügte und trotzdem portabel bliebe. Ein seit einiger Zeit erhältlicher 2,8 Zoll großer Touchscreen passt perfekt zu diesem Anwendungsfall. Das Linux-Magazin hat sich dieses Modell genauer angesehen.

  • Raspi-USV

    Unter den unzähligen Einsatzmöglichkeiten eines Raspberry Pi finden sich durchaus auch solche, bei denen ein Stromausfall kritisch wäre. Deshalb gibt es für den kleinen ARM-Rechner sogar eine regelrechte unterbrechungsfreie Stromversorgung (USV). Linux-Magazin-Autor Udo Seidel war elektrisiert.

  • Kern-Technik

    Der Linux-Kernel abstrahiert und verwaltet die Zugriffe auf GPIOs, also jene Ein- und Ausgabekanäle, die beispielsweise auf dem Raspberry Pi zu finden sind. Wer sich mit einem eigenen Treiber dort einklinkt, kann mit erheblich schnelleren Peripheriezugriffen rechnen.

  • Gnublin

    Dass Embedded Linux kein Hexenwerk sein muss, zeigt das Gnublin-Board der Hochschule Augsburg. Wer lernen will, wie er auf einem ARM-Linux Sensoren ausliest, Schalter benutzt und LEDs schaltet, ist bei dem kleinen Rechner richtig. Gegen Aufpreis gibt es eine stattliche Liste an Zubehör.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.