Infodisplay: Unterschied zwischen den Versionen

Aus Stratum 0
Wechseln zu:Navigation, Suche
(+Infodisplay)
 
(Ausrollen von Änderungen dokumentiert)
 
(21 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
{{Projekt
 
{{Projekt
|kontakt=Kasa, larsan
+
|kontakt=drc
 
|status=aktiv
 
|status=aktiv
 
|beschreibung=S0 Infodisplay
 
|beschreibung=S0 Infodisplay
Zeile 6: Zeile 6:
 
|bildbeschreibung= Das Infodisplay im Flur des Spaces
 
|bildbeschreibung= Das Infodisplay im Flur des Spaces
 
|interessenten=
 
|interessenten=
|source=https://gitli.stratum0.org/kasalehlia/s0infodisplay/
+
|source=https://gitli.stratum0.org/drc/python-infodisplay
 
|lizenz=
 
|lizenz=
 
|download=
 
|download=
 
|version=
 
|version=
 
}}
 
}}
 +
[[Datei:Bewegungsmelder am Infodisplay-Pi.jpg|thumb|Bewegungsmelder]]
 +
 +
Im Flur hängt ein großer Fernseher, der ein paar Infos anzeigt, die im Vorbeigehen interessant sein könnten, wie z.B. das Wetter draußen, die nächsten Termine im Kalender und die aktuelle CO2-Konzentration.
 +
 +
Der Pi infodisplay.s0 am Display selbst zeigt dazu eine Webseite im Kioskmodus an. Die Webseite selbst ist auf http://ingodisplay.s0:8888/ gehostet.
 +
 +
Das Display wird von einem Bewegungsmelder aufgeweckt.
 +
 +
<pre>#!/usr/bin/env python3
 +
 +
import RPi.GPIO as GPIO
 +
import time
 +
from subprocess import call
 +
GPIO.setmode(GPIO.BCM)
  
Auf dem Serverschrank steht ein großer Full HD Fernseher, daran wurde eine Pi angeschlossen und ein bisschen [https://gitli.stratum0.org/kasalehlia/s0infodisplay/ Software] geschrieben. Zu guter letzt bekam der Pi einen Bewegungsmelder, sodass der Fernseher nicht 24/7 laufen muss.
+
GPIO.setup(4, GPIO.IN)
 +
#GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
 +
print("works so far")
  
Auf dem Infodisplay stehen relevante Informationen zur Verfügung:
+
pir = 4
* Uhrzeit und auf welche Entität der Space derzeit geöffnet ist
+
previous_state = 0
* [https://maurudor.de/ Katzenbilder]
+
current_state = 0
* Wetter
 
* Relative und absolute ÖPNV-Abfahrtszeiten von Haltestelle ''Hamburger Straße'', sowie ''Ludwigstraße''
 
* [[Kalender]]
 
* Visualisiert Stromverbrauch und Netzwerkdinge im Spacenetz
 
* IRC-Channel
 
  
Das ganze ist derzeit auf Full-HD optimiert. Da die Software auf einer Webseite basiert (im Fullscreen angezeigt), ist sie theoretisch auf auf mehreren Displays deploybar.
+
try:
 +
    while True:
 +
        time.sleep(0.1)
 +
        current_state = GPIO.input(pir)
 +
        if current_state == 1 and previous_state == 0:
 +
            print("GPIO pin %s is %s, turning screen on" % (pir, current_state))
 +
            call("echo on 0 | cec-client -s -d 1", shell=True)
 +
            previous_state = 1
 +
        elif current_state == 0 and previous_state == 1:
 +
            print("GPIO pin %s is %s, turning screen off" % (pir, current_state))
 +
            call("echo standby 0 | cec-client -s -d 1", shell=True)
 +
            previous_state = 0
 +
        time.sleep(0.01)
  
[[Datei:Bewegungsmelder am Infodisplay-Pi.jpg|thumb|Bewegungsmelder]]
+
except KeyboardInterrupt:
 +
    pass
 +
finally:
 +
    GPIO.cleanup()
 +
</pre>
 +
 
 +
 
 +
== Ausrollen von Änderungen aus dem git ==
 +
 
 +
* Login auf ingodisplay.s0: <code>ssh stratum0@ingodisplay.s0</code>
 +
* Auf Nutzer infodisplay wechseln: <code>sudo -iu infodisplay</code>
 +
* Ins Arbeitsverzeichnis wechseln: <code>cd /opt/infodisplay/python-infodisplay</code>
 +
* Aktualisierungen abrufen: <code>git pull</code>
 +
* Zurück zum Nutzer stratum0 wechseln: <code>exit</code>
 +
* Dienst neustarten: <code>sudo systemctl restart infodisplay.service</code>

Aktuelle Version vom 17. Dezember 2024, 16:26 Uhr

Infodisplay
Das Infodisplay im Flur des Spaces
Das Infodisplay im Flur des Spaces
Beschreibung: S0 Infodisplay
Kontakt: drc
Status: aktiv (Was heißt das?)
Quellcode: https://gitli.stratum0.org/drc/python-infodisplay
Bewegungsmelder

Im Flur hängt ein großer Fernseher, der ein paar Infos anzeigt, die im Vorbeigehen interessant sein könnten, wie z.B. das Wetter draußen, die nächsten Termine im Kalender und die aktuelle CO2-Konzentration.

Der Pi infodisplay.s0 am Display selbst zeigt dazu eine Webseite im Kioskmodus an. Die Webseite selbst ist auf http://ingodisplay.s0:8888/ gehostet.

Das Display wird von einem Bewegungsmelder aufgeweckt.

#!/usr/bin/env python3

import RPi.GPIO as GPIO
import time
from subprocess import call
GPIO.setmode(GPIO.BCM)

GPIO.setup(4, GPIO.IN)
#GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
print("works so far")

pir = 4
previous_state = 0
current_state = 0

try:
    while True:
        time.sleep(0.1)
        current_state = GPIO.input(pir)
        if current_state == 1 and previous_state == 0:
            print("GPIO pin %s is %s, turning screen on" % (pir, current_state))
            call("echo on 0 | cec-client -s -d 1", shell=True)
            previous_state = 1
        elif current_state == 0 and previous_state == 1:
            print("GPIO pin %s is %s, turning screen off" % (pir, current_state))
            call("echo standby 0 | cec-client -s -d 1", shell=True)
            previous_state = 0
        time.sleep(0.01)

except KeyboardInterrupt:
    pass
finally:
    GPIO.cleanup()


Ausrollen von Änderungen aus dem git

  • Login auf ingodisplay.s0: ssh stratum0@ingodisplay.s0
  • Auf Nutzer infodisplay wechseln: sudo -iu infodisplay
  • Ins Arbeitsverzeichnis wechseln: cd /opt/infodisplay/python-infodisplay
  • Aktualisierungen abrufen: git pull
  • Zurück zum Nutzer stratum0 wechseln: exit
  • Dienst neustarten: sudo systemctl restart infodisplay.service