Infodisplay: Unterschied zwischen den Versionen
Aus Stratum 0
Larsan (Diskussion | Beiträge) K (umstortiert) |
Dadada (Diskussion | Beiträge) |
||
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> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Version vom 15. Dezember 2024, 22:16 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()