Infodisplay: Unterschied zwischen den Versionen
Aus Stratum 0
Larsan (Diskussion | Beiträge) (+Infodisplay) |
Drc (Diskussion | Beiträge) (Ausrollen von Änderungen dokumentiert) |
||
(21 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Projekt | {{Projekt | ||
− | |kontakt= | + | |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/ | + | |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) | ||
− | + | 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() | ||
+ | </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 | |
Beschreibung: | S0 Infodisplay |
Kontakt: | drc |
Status: | aktiv (Was heißt das?) |
Quellcode: | https://gitli.stratum0.org/drc/python-infodisplay |
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