Raspberry Pi Touchscreen Panel bei Näherung aktivieren

Der Raspberry Pi 7″ Touchscreen eignet sich hervorragend als Panel für die Hausautomatisierung. Hierbei können Bedienelemente einfach platziert und zugänglich gemacht werden. Damit der Bildschirm allerdings nicht 24 Stunden am Tag hell leuchtet und nur dann aktiviert wird, wenn er wirklich gebraucht wird, müssen wir ihn so konfigurieren. Hierbei nutzen wir einen Bewegungs- und Abstandssensor, um den Bildschirm zu aktivieren, sobald sich jemand nähert.

Mit Hilfe dieser Sensoren erstellen wir ein Skript, welches automatisch erkennt, ob jemand den Touchscreen nutzen will oder nicht und ihn ggf. danach ausschaltet.

Gerade nachts ist es störend, wenn dauerhaft eine Lichtquelle aktiv ist, weshalb dieses Tutorial den Komfort um einiges erhöht. Und ganz nebenbei wird ein wenig Strom gespart. Dieses Projekt kann mit kleineren Anpassungen übrigens auch wunderbar mit einem Magic Mirror genutzt werden, sodass der Bildschirm erst angeht, wenn jemand in der Nähe davor steht.

 

Zubehör

Folgendes Zubehör wirst du für die Schritte dieses Tutorials benötigen:

Theoretisch würde eine Erkennung auch mit nur einem der beiden Sensoren – entweder dem PIR Bewegungsmelder oder dem Abstandssensor – funktionieren, allerdings ist die Methode mit beiden komfortabler. Wer dennoch nur einen Sensor nutzen möchte, muss den Code für seine Zwecke modifizieren.

Viele weitere hilfreiche Tipps & Tricks zum offiziellen Touchscreen Modul findest du übrigens in diesem Artikel.

 

Aufbau

Bevor wir starten verkabeln wir den HC-SR04 Ultraschallsensor sowie den PIR-Bewegungsmelder. Wie in den beiden Tutorials schließen wir die Pins an unsere GPIOs (falls du andere verwendest, muss du diese später im Skript anpassen). Für den Ultraschallsensor:

  • VCC an Pin 2 (VCC)
  • GND an Pin 6 (GND)
  • TRIG an Pin 12 (GPIO18)
  • an ECHO wird der 330Ω Widerstand angeschlossen.  An dessen Ende geht eine Verbindung zu Pin 18 (GPIO24) und über den 10kΩ Widerstand eine Verbindung zu Pin6 (GND). Somit stellen wir sicher, dass immer eine Spannung (ggf. LOW) anliegt. Der Vorwiderstand ist zum schonen der GPIOs, da diese bei 5V Spannung kaputt gehen könnten.

Der PIR Bewegungssensor wird an 5V (VCC, rot), GND (GND, schwarz) und OUT/DATA an Pin 16 des Raspberry Pi’s, was GPIO 24 ist angeschlossen.

Schematisch sieht es folgendermaßen aus:

Raspberry Pi Touchscreen Panel bei Näherung aktivieren Steckplatine

Die beiden Sensoren können oberhalb oder unterhalb des Displays platziert und befestigt werden. Diese sollten geradeaus auf den bedienenden Nutzer zeigen.
Falls der Bewegungssensor zu sensibel eingestellt ist, kannst du ihn durch die Drehregler auch justieren:

PIR Bewegungssensor

 

Vorbereitung

Zunächst einmal aktualisieren wir das Betriebssystem und aktivieren den Bildschirm per SSH :

sudo apt-get update
sudo rpi-update 
sudo reboot

Nach dem Neustart rufen wir dies auf:

sudo raspi-config

Unter „Boot Options“ stellen wir sicher, dass direkt in den Desktop / CLI gestartet wird.

Bevor wir schon mit den eigentlichen Skripten beginnen, müssen wir den automatischen Screensaver (Bildschirmschoner) deaktivieren, damit wir dies selbst in der Hand haben. Dazu installieren zunächst folgendes Paket:

sudo apt-get install xscreensaver

Anschließend gehen wir entweder über den Touchscreen oder über eine Remotedesktopverbindung auf Preferences -> Sceensaver.

Raspberry Pi Screensaver deaktivieren

Hier können wir den Bildschirmschoner ganz einfach deaktivieren (Disable Screen Saver):

Raspberry Pi Screensaver deaktivieren 2

Damit wir die Helligkeit gleich per Skript steuern können, müssen wir noch Rechte über die Shell / SSH verteilen (Wichtig: Der Bildschirm muss angeschlossen sein!):

sudo chmod 777 /sys/class/backlight/rpi_backlight/bl_power

 

Skript zum Aktivieren des Touchpanels

Kommen wir nun zum eigentlichen Teil, dem Skript, welches für die Steuerung zuständig ist. Wir erstellen nun ein neues Skript im Homeordner:

sudo nano ~/displaystandby.py

Hier kommt folgender Inhalt hinein:

Vergiss nicht die GPIOs ggf, anzupassen und ebenso die Standardwerte (Entfernung, Timeout Zeit) anzupassen, sofern nötig.

Du kannst es bereits testen mit:

sudo python ~/displaystandby.py

 

Autostart des Skripts

Als letztes wollen wir noch, dass auch beim Neustart dieses Skript automatisch startet. Dazu nutzen wir crontab:

sudo crontab -e

Ans Ende fügen wir folgende Zeilen:

@reboot /usr/bin/sudo /bin/chmod 777 /sys/class/backlight/rpi_backlight/bl_power
@reboot /usr/bin/sudo /usr/bin/python /home/pi/standpyscreen.py

Da das Tutorial auf verschiedenen Raspbian Betriebssystemen lauffähig ist und der Homepfad oft unterschiedlich ist, kannst du mit cd ~; pwd; den absoluten Pfad herausfinden. Diesen wirst du gleich brauchen und anpassen müssen (bei mir ist es /home/pi/).

Nach dem Neustart startet es nun automatisch:

sudo reboot

3 Kommentare

  1. Interessant und nutzvoll…dieses wir ich implementieren.

    Ich suche ein geeignete spritzwasserfest Gehäuse für ein RPi3+ plus 2 zusätzliche boards, ein HAT und die Screen mit genug Abstand/platz für Schalter…kann einer mir Hilfen?

    Antworten
  2. Sehr gut aber im prinzip könnte man aber auch einfach ein Tablet aus china bestellen wäre halt kompakter aber man hat halt keinen bastell spaß aber sehr gut geschrieben werde ich demnächst ma ausprobieren

    Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!