Listing 6
[Unit] Description=RTSP-Server After=multi-user.target [Service] Type=simple ExecStart=/usr/local/bin/h264_v4l2_rtspserver -H 400 -W 600 -F 25 -C 1 -a S16_LE /dev/video0,default [Install] WantedBy=basic.target
Zertifikate
Der RasPi 3 dient auch als Steuerzentrale und führt deshalb über das Netz Kommandos auf dem Pi Zero aus. Damit das ohne Abfrage von Passwörtern funktioniert, richten Sie für den User pi ein SSH-Zertifikat ein. Es besteht aus einem privaten und öffentlichen Teil; Letzteren transferieren Sie an den Pi Zero. Er verifiziert damit den privaten Teil, den der RasPi 3 den Remote-Kommandos mitgibt. Zuerst erstellen Sie das Schlüsselpaar mit dem Befehl aus der ersten Zeile von Listing 7. Die folgenden Abfragen bestätigen Sie jeweils durch einen Druck auf die Eingabetaste (Speicherort, keine Passphrase).
Danach finden Sie im Ordner .ssh/ die zwei Dateien id_rsa und id_rsa.pub mit dem privaten und dem öffentlichen Schlüssel. Letzteren kopieren Sie mit auf den Pi Zero (Listing 7, zweite Zeile). Um den passwortlosen Zugang zu testen, lassen Sie sich nun probehalber eine Datei auf dem Pi Zero anzeigen. Das Beispiel aus der dritten Zeile liefert diverse Infos zur CPU des Remote-Rechners.
Listing 7
$ ssh-keygen -t rsa $ ssh-copy-id -i .ssh/id_rsa.pub Pi0 $ ssh Pi0 "cat /proc/cpuinfo"
Sprechanlage starten
Auf dem RasPi 3 befinden sich nach der Installation des Github-Projekts drei Skripte, die das Steuern der Wechselsprechanlage übernehmen. Dabei aktiviert wsa_start.sh die Videoübertragung auf dem Pi Zero und startet auf dem RasPi 3 den Omxplayer (Abbildung 7).
Das Skript, das Sie im Verzeichnis /usr/local/sbin/ finden, müssen Sie an die lokalen Gegebenheiten anpassen. Insbesondere gilt es, den Hostnamen Ihres Pi Zero einzutragen. Falls Sie das Skript nicht GPIO-gesteuert starten möchten, entfernen Sie zusätzlich noch die beiden Abschnitte Sicherheitsabfragen und Wiederholzeit abfragen, die nur im Kontext des automatischen Starts eine Rolle spielen. So verhindert die Prüfung der Wiederholzeit, dass ein stürmisch klingelnder Besucher die Wechselsprechanlage mehrfach startet.
Da der Omxplayer seine Ausgabe direkt in der GPU rendert, sehen Sie lediglich ein rahmenloses Bild ohne jegliche Dekoration und Bedienelemente. Damit versagen auch die normalen Screenshot-Tools wie etwa Scrot. Falls Sie die Ausgabe trotzdem festhalten möchten, nutzen Sie dazu beispielsweise das Programm Kano-Screenshot [5], das Sie jedoch selbst kompilieren müssen.
Wechselsprechen
Der RTSP-Server organisiert die Medienübertragung von der Tür zur Wohnung. Da die Wohnungsseite zur Klingel lediglich Sprache überträgt, genügt hier eine schlankere Lösung.
Dazu verwenden Sie das Aufnahmeprogramm Arecord und auf der Seite des Pi Zero das Abspielprogramm Aplay. Bei beiden handelt es sich um Bestandteile der Alsa-Installation, die sich im Raspbian-Repository finden. Die Programme dienen üblicherweise zwar nur zum Testen der Soundkonfiguration, für unsere Zwecke genügen sie aber.
Auf der RasPi-3-Seite nimmt Arecord per Mikrofon auf und sendet die Daten dann an den Pi Zero. Dort greift Aplay die Daten ab und gibt sie wieder. Arecord verwendet auch das virtuelle Stereomikrofon, da Aplay mit Monosound nicht umgehen kann. Technisch wäre ein Full-Duplex-Betrieb möglich, also gleichzeitiges Sprechen in beide Richtungen. Allerdings birgt das die Gefahr von Rückkoppelungen, weshalb das Umschaltskript /usr/local/bin/wsa_mic.sh das gleichzeitige Sprechen in beide Richtungen verhindert.
Es startet und stoppt nicht nur die Arecord/Aplay-Pipeline, sondern schaltet auch die Mikrofone wechselseitig stumm. In diesem Skript müssen Sie wieder den Hostnamen des Pi Zero entsprechend den lokalen Gegebenheiten anpassen.
Zu guter Letzt bleibt noch das Abschalten der Bildübertragung mit dem Skript /usr/local/bin/wsa_stop.sh. Es stoppt eine eventuell laufende Übertragung von Wohnung zu Tür und setzt die Mikrofone zurück in den Ausgangszustand.
Tastatursteuerung
Drei kleine Skripte erledigen entsprechend die komplette Steuerung. Sie könnten sie auch manuell ausführen, das wäre aber wenig komfortabel. Zum Glück bietet hier der Pixel-Desktop eine einfache Lösung für das Problem.






