Infodisplay: Unterschied zwischen den Versionen
Aus Stratum 0
Larsan (Diskussion | Beiträge) K (→Setup: +libudev-dev) |
Drc (Diskussion | Beiträge) (Ausrollen von Änderungen dokumentiert) |
||
(3 dazwischenliegende Versionen von 2 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= | ||
Zeile 13: | Zeile 13: | ||
[[Datei:Bewegungsmelder am Infodisplay-Pi.jpg|thumb|Bewegungsmelder]] | [[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 | + | 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