NEWS
Projekt Touchscreen auf Raspi
-
Hier eine Zusammenfassung mit Tipps zum Aufsetzen einer Visu basierend auf einem Raspi, der ein 14" Touchscreen "betreibt".
Zunächst wie sieht das Ganze aus:
Folgende Komponenten wurden verwendet:
Raspberry Pi5 mit 4GB RAM
RPI5 CASE ALU03, Gehäuse für Raspberry Pi 5, Alu, schwarz, integrierter Kühlkörper
14" Touchscreen Monitor (https://www.amazon.de/gp/product/B0CC1BRMJ9/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1)
Raspi Netzteil sowie HDMI auf Micro HDMI KabelZum Setup:
Standard Raspberry OS (https://www.raspberrypi.com/software/) Ich empfehle den Orginal Installer zu verwenden, dort lässt sich gleich WLAN und der SHH Zugang einstellen, so dass der Raspi direkt nach dem ersten Start per SSH konfiguriert werden kann.
Raspi-config: Ich habe direkt auf X-Server umgestellt und den Standard VNC Zugang deaktiviert. Wer VNC verwenden will, sollte X11vnc installieren (https://www.elektronik-kompendium.de/sites/raspberry-pi/2011121.htm) Ich habe die LXDE Autostart Variante gewählt, aber dazu später mehr-
Display Ausrichtung/Einrichtung: Der Touchscreen sollte automatisch erkannt werden und wenn die Stadardausrichtung passt, braucht nichts eingerichtet zu werden. Bei einer Drehung wie bei mir kann die Bildschirmausrichtung mit Boardmitteln des Desktop eingestellt werden (Preferences -> Screen COnfiguration):
Was in dem Fall jedoch angepasst werden muss ist die Ausrichtung des Toucscreens. Die Konfig ist in /usr/share/X11/xorg.conf.d/40-libinput.conf einzutragen und zwar im Bereich für den Touchscreen:Section "InputClass" Identifier "libinput touchscreen catchall" MatchIsTouchscreen "on" Option "TransformationMatrix" "0 -1 1 1 0 0 0 0 1" MatchDevicePath "/dev/input/event*" Driver "libinput" EndSection
90° = Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1"
180° = Option "TransformationMatrix" "-1 0 1 0 -1 1 0 0 1"
270° = Option "TransformationMatrix" "0 -1 1 1 0 0 0 0 1"Den Chromium Browser starte ich per Autostart in der Datei ~/.config/lxsession/LXDE-pi/autostart
Falls die nicht vorhanden ist, einfach anlegen. Der Inhalt sieht bei mir so aus:@lxpanel --profile LXDE-pi @pcmanfm --desktop --profile LXDE-pi @xset s on @xset s 0 0 @xset s blank @xset s expose @xset dpms 900 0 0 @xset +dpms @chromium-browser --start-fullscreen http://xxxURL zur Vis @unclutter -idle 1
Hier ist wird noch unclutter gestartet, damit der Mauszeiger nicht dauernd angezeigt wird (sudo apt install unclutter usw)
Ausserdem setze ich den screensaver auf 0 und den Timeout auf 900. Aufgeweckt wird bei mir der Touchscreen per Bewegungsmelder über die Homematic CCU (Raspberrymatic). Die Ansteuerung über die CCU ist mit dem Tip aus dem Homematic Forum sehr einfach und kann auch von aussen per virtuellem Taster einfach umgesetzt werden.
https://homematic-forum.de/forum/viewtopic.php?f=31&t=68177&p=666698
Der eigentliche Befehl kann dann einfach als HM Programm gestartet werden:system.Exec("ssh xxxusername@xxxIP-des-Raspi xset -display :0 dpms force on")
Als Beispiel zum Einschalten des Displays.
Der Chromium Browser funktioniert mit den Standardeinstellung recht gut, ich habe allerdings noch die virtuelle Tastatur über die Extensions eingebunden:
Zu guter Letzt noch die Schriftarten installieren um Verdana z.B. anzuzeigen und fertig ist das Setup:sudo apt install ttf-mscorefonts-installer
-
@frederik-buss, was hat der Spaß zusammen gekostet?
-
@maxtor62 Das Teuerste war der Touchscreen mit 160€ (Derzeit bei Amazon bei 200€..), Der Raspi 5 67€, das Gehäuse 10€, und das HDMI Kabel 8€. Das Netzteil hatte ich noch vom Raspi4, wenn man das kaufen muss kostet das nochmal 12€ ..
Generell geht auch ein Raspi 4, wenn man den noch rumfliegen hat, ich empfehle aus Perfomancegründen den 5er. -
Hallo Frederik,
Du schreibstRaspi-config: Ich habe direkt auf X-Server umgestellt
Kannst Du mir kurz den Grund nennen?
Also hat das was mit Vorlieben oder Performance zu tun?VG
-
@woupi Hauptsächlich wegen VNC, aber ich meine auch dass der Touchscreen rumgezickt hat, bzw. die Drehung ein Problem war. Jedenfalls habe ich unter Wayland keine VNC Verbindung hinbekommen. Mit Real VNC, Tight VNC und wie die alle heissen auch nicht wirklich auf dem :0 Display, aber X11VNC funktioniert einwandfrei wenn alle anderen VNC Server vorher deinstalliert wurden und auf X-Server umgestellt wurde. Edit: WayVNC hatte ich auch (erfolglos) probiert, aber das ist wohl eher im Alpha Stadium, wenn man den Linux Foren glauben schenken kann...
-
@frederik-buss
Ah, ok. Danke.
Ich denke ich brauche kein VNC, wüsste gerade nicht wofür.
Raspberry ist da und auf SSD installiert.
Gerade ist noch der Bewegungsmelder gekommen, da kann ich mich dann morgen mit beschäftigen. -
@woupi Cool, sag mal Bescheid wie es gelaufen ist, wenn alles soweit steht
-
Den Bewegungsmelder bekomme ich so schnell nicht ans laufen.
Die Anleitung (Link den du eingestellt hast) und das "Skript" bezieht sich auf RPi.GPIO, dass gibt es, soweit ich das jetzt rausgefunden habe, beim Raspberry pi 5 nicht mehr.
Wurde durch gpiozero ersetzt.
Ich suche noch das passende.Der Rest läuft aber schon soweit ganz gut.
-
@frederik-buss
Super Umsetzung!
Hattest du zufällig noch einen kleineren Monitor in der Auswahl? Und hat der, für den du dich entschieden hast, einen Akku verbaut?Danke!
-
@azrael42 sagte in Projekt Touchscreen auf Raspi:
Und hat der, für den du dich entschieden hast, einen Akku verbaut?
wofür braucht ein reiner Monitor einen Akku?
-
wofür braucht ein reiner Monitor einen Akku?
Genau! Der Monitor sollte keinen verbaut haben. Viele der "Portablen" Monitore wie der aus dem Link haben einen Akku verbaut und für mich ist das ein Ausschlusskriterium.
-
@azrael42 sagte in Projekt Touchscreen auf Raspi:
Viele der "Portablen" Monitore wie der aus dem Link
der hat doch keinen Akku!
diejenigen mit Akku sind Tablets mit Android. Die können nicht als Monitor verwendet werden.
-
@homoran
Ja Du hast natürlich recht, er hat keinen Akku. -
@azrael42 Nein, der 14" war eher an der unteren Grenze. Und wie woupi schon geschrieben hat, der hat keinen Akku. Wenn man mit einer kleineren Größe klar kommt würde ich auch eher die Tablets empfehlen, das ist weniger Linux Bastelei und auch nicht teurer.
-
Ich bekomme es nicht hin, dass das python skript für den Bewegungsmelder automatsch gestartet wird.
Führe ich das skript über das Terminal mit sudo python pir.py aus, funktioniert es wie es soll.
Ich habe systemctl, rc.local und crontab versucht, beides ohne Erfolg. Der Bewegungsmelder macht nichts. Das skript muss allerdings laufen, denn wenn ich es dann zusätzlich über das Terminal starte kommen Fehlermeldungen die darauf hin deuten, dass die GPIO bereits verwendet werden.
Bin gerade etwas am verzweifeln.
Zwischen durch habe ich den Raspberry nochmal komplett neu aufgesetzt, da ich offensichtlich was verbockt habe und den Desktop nicht mehr starten konnte.Hast Du zufällig eine Idee?
Das Problem scheint am 5er bzw. der 5er Software zu liegen. Alle Anleitungen die ich finde beziehen sich auf ältere Raspberry. -
@woupi Hm, mein erster Gedanke wäre dass die Rechte nicht passen. Muss das denn unbedingt mit root ausgeführt werden? Nächster Gedanke: das muss nicht unbedingt unter x/Wayland laufen oder? Eigentlich sollte zum automatischen ausführen keinen Unterschied machen welche Raspi Version Du hast, sofern es manuell gestartet das tut was es soll... Was Du schon tun kannst ist das Ganze in die x-Autostart zu legen, allerdings weiss ich nicht, wie Wayland sich hier verhält. Du kannst auf jeden Fall versuchen die LXDE-pi/autostart bzw. LXDE/autostart mit dem Befehl zu ergänzen. Die werden bei Pi 5 wohl nicht mehr automatisch angelegt (wegen Wayland?), es geht aber trotzdem wenn Du die selbst anlegst. Also Verzeichnis und Datei per nano. Ich bin kein Linux Experte, hatte aber auch Probleme mit dem X Desktop und musste neben der im ersten Beitrag beschriebenen LXDE-pi/autostart auch die LXDE/autostart anlegen mit folgendem Eintrag:
@lxpanel --profile LXDE @pcmanfm --desktop --profile LXDE
Such mal nach LXDE und Phyton und autostart, da kommen einige Ergebnisse, vielleicht ist da ja was dabei was Deinem Problem ähnelt. Da gibt es z.B. den Ansatz in der LXDE-pi Autostart:
@lxterminal -e /usr/bin/python3 /.../xxx.py
Good luck!
-
@frederik-buss sagte in Projekt Touchscreen auf Raspi:
LXDE-pi/autostart
Danke erstmal.
Also ich habe auch schon von Wayland auf x11 umgestellt.
LXDE-pi/autostart anlegen hat alles gut mit deinen Hinweisen funktioniert.
Screen geht nach 15min aus, Mauszeiger ist aus usw.
Nur das mit dem PIR will nicht, aber ich versuche es auch mal im autostart.
Danke für den Hinweis.Achso, root rechte braucht das skript nicht, läuft auch mit python3 pir.py. Habe ich gerade versucht.
Rechte auf das skript habe ich aber auch schon auf 755 gesetzt. -
@woupi Was macht denn das script überhaupt? Wenn Du irgendetwas mit xset machen willst, dann muss es m.E. in den X Autostart, also LXDE-pi/autostart. Darüber setze ich auch beim Neustart die xset Parameter für den Desktop/Display:0 neu.
-
Ah, ok.
Ja xset nutze ichfrom gpiozero import MotionSensor import subprocess import time # GPIO-Pin für den Bewegungssensor MOTION_SENSOR_PIN = 23 # Befehl zum Einschalten des Touchscreen-Monitors TURN_ON_COMMAND = "xset -display :0 dpms force on" # Initialisierung des Bewegungssensors motion_sensor = MotionSensor(MOTION_SENSOR_PIN) # Funktion zum Einschalten des Touchscreen-Monitors def turn_on_screen(): subprocess.run(TURN_ON_COMMAND, shell=True) # Hauptfunktion def main(): try: while True: # Ueberprüfe auf Bewegung if motion_sensor.motion_detected: turn_on_screen() print("Bewegung erkannt! Bildschirm eingeschaltet.") # Warte eine Weile, bevor du erneut nach Bewegung suchst time.sleep(10) else: # Warte kurz, um die CPU nicht zu belasten time.sleep(0.1) except KeyboardInterrupt: print("Programm beendet.") if __name__ == "__main__": main()
Dann werde ich das morgen früh mal probieren.
Für Heute bin ich durch.PS.:
Ich habe mich doch noch kurz dran gegeben und was soll ich sagen, es läuft.
Vielen Dank, das war's. -
Zu früh gefreut.
Gestern Abend aus gemacht heute Morgen wieder eingeschaltet (Raspberry war Stromlos).
Warum auch immer wird heute morgen dann pir.py doch wieder nicht nach dem booten ausgeführt.
pgrep -f pir.py gibt nichts zurück. Erst wenn ich es manuell ausführe, funktioniert es.
Kann es sein, dass immer noch zu früh versucht wird, dass skript auszuführen?PS:
Ich hatte die Systemweite Autostart Datei benutzt, da ich es nicht hinbekommen habe die user Autostart zu erstellen. Nach langem suchen habe ich heute morgen die Dokumentation dazu gefunden. In dieser wird beschrieben wie man die user Datei erstellt.
Das habe ich nun gemacht und die Systemweite wieder auf den Ursprung zurück gesetzt.
Anschließend neu gebootet. Da wurde die pir.py ausgeführt.
Ich werde nun aber morgen Früh nochmal testen, den gestern hat es mit der Systemweiten ja auch mehrmals funktioniert.PS 2:
Ich habe heute den ganzen Tag getestet. Das python skript schaltet aus irgend welchen Gründen ab, egal ob direkt aus dem Terminal gestartet oder im Autostart.
Ich habe jetzt im Skript mal eine Ausgabe mit eingebaut um die Startzeit, die Laufzeit des skriptes und die CPU Temperatur auszugeben.
Die CPU läuft schon nach kurzer Zeit auf 79°-80°. Ich werde also definitiv noch den originalen Lüfter verbauen.Was aber auch noch merkwürdig ist, ist das nach ca. 10-15min die VIS (Website) nicht mehr angezeigt wird. Da steht dann "Oh nein! Fehler beim Anzeigen dieser Webseite Fehlercode: 9".
@Frederik-Buss ist das bei dir auch so?