nanopi_m4:kiosk:software
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
nanopi_m4:kiosk:software [2020/11/10 00:27] – [Steuerung der Kiosk-Anzeige] andmin | nanopi_m4:kiosk:software [2021/04/16 21:06] – [Kiosk Ping] andmin | ||
---|---|---|---|
Zeile 29: | Zeile 29: | ||
* sudo apt upgrade | * sudo apt upgrade | ||
* sudo apt dist-upgrade | * sudo apt dist-upgrade | ||
- | * sudo apt install xorg xserver-xorg-legacy openbox chromium xdotool unclutter lighttpd twinkle swaks bluez php-cgi | + | * sudo apt install xorg xserver-xorg-legacy openbox chromium xdotool unclutter lighttpd twinkle swaks bluez php-cgi |
* sudo lighty-enable-mod fastcgi-php | * sudo lighty-enable-mod fastcgi-php | ||
* sudo nano -w / | * sudo nano -w / | ||
Zeile 39: | Zeile 39: | ||
< | < | ||
#!/bin/sh | #!/bin/sh | ||
- | if ! ps ax | grep [/]opt/kiosk.sh | + | touch /tmp/kiosk.status |
- | then | + | chmod 666 / |
- | | + | |
- | | + | |
- | | + | |
xset s noblank | xset s noblank | ||
xset s 300 | xset s 300 | ||
openbox-session & | openbox-session & | ||
- | unclutter & | + | unclutter |
if ! lsusb | grep " | if ! lsusb | grep " | ||
then | then | ||
startadresse=" | startadresse=" | ||
+ | echo 2 > / | ||
else | else | ||
- | | + | echo 1 > / |
+ | | ||
fi | fi | ||
- | chromium --no-first-run --kiosk --agc-startup-min-volume=255 --disable-pinch --overscroll-history-navigation=0 | + | chromium --no-first-run |
- | fi | + | |
</ | </ | ||
* sudo chmod 755 / | * sudo chmod 755 / | ||
Zeile 62: | Zeile 63: | ||
< | < | ||
[Unit] | [Unit] | ||
- | Description=Kiosk | + | Description=Starte Chromium |
[Service] | [Service] | ||
Type=oneshot | Type=oneshot | ||
- | User=USER | + | User=kiosk |
- | ExecStart=/ | + | ExecStart= / |
[Install] | [Install] | ||
Zeile 85: | Zeile 86: | ||
< | < | ||
- | var tasten=-1; | + | var intervalPing = setInterval(function(){ |
+ | var xhr = new XMLHttpRequest(); | ||
+ | xhr.onreadystatechange = function() {}; | ||
+ | xhr.open(' | ||
+ | xhr.send(); | ||
+ | }, 5000); | ||
+ | |||
+ | var tasten=[0,0,0]; | ||
function keys(key) { | function keys(key) { | ||
if (!key){ | if (!key){ | ||
key = event; | key = event; | ||
key.which = key.keyCode; | key.which = key.keyCode; | ||
- | } | + | } |
- | switch(key.which){ | + | |
+ | tasten[1]=tasten[2]; | ||
+ | tasten[2]=String.fromCharCode(key.which); | ||
+ | |||
+ | | ||
// Taste y: | // Taste y: | ||
- | case 89:tasten=0; break; | + | case " |
- | //taste 1: | + | case " |
- | case 49:if(tasten==0){ tasten=1;} break; | + | case " |
- | | + | case " |
- | case 50: | + | case " |
- | // Taste 3: | + | var path=window.location.pathname; |
- | case 51: | + | if (path=="/ |
- | // Taste 6: | + | { |
- | case 54: | + | |
- | if(tasten==1) {location.href = " | + | |
- | | + | |
- | | + | else |
- | var path=window.location.pathname; | + | { |
- | if(path=="/ | + | location.href = " |
- | { | + | |
- | | + | |
- | } | + | |
- | else | + | |
- | { | + | |
- | location.href = " | + | |
- | | + | |
} | } | ||
- | break; | ||
- | default: tasten=-1; | ||
} | } | ||
} | } | ||
Zeile 187: | Zeile 191: | ||
/ | / | ||
< | < | ||
- | ACTION==" | + | ACTION==" |
- | ACTION==" | + | ACTION==" |
</ | </ | ||
==== GPIO für Tasten ==== | ==== GPIO für Tasten ==== | ||
Zeile 195: | Zeile 199: | ||
Pullup 10k nach 3,3V Pin 1 Pinleiste GPIO1 | Pullup 10k nach 3,3V Pin 1 Pinleiste GPIO1 | ||
- | Zur Abfrage des Tasters läuft ein Programm (C) und ruft bei Flankenerkennung ein Bash-Script (/opt/switch_3.sh) auf. Dieses simuliert wiederum eine Tastatureingabe (y 3 6) im Browser. | + | Zur Abfrage des Tasters läuft ein Programm (C) und ruft bei Flankenerkennung ein Bash-Script (/opt/switch.sh 3) auf. Dieses simuliert wiederum eine Tastatureingabe (y 3 6) im Browser. |
==== Telefonfunktion ==== | ==== Telefonfunktion ==== | ||
Zeile 207: | Zeile 211: | ||
User=kiosk | User=kiosk | ||
ExecStartPre=sleep 10 | ExecStartPre=sleep 10 | ||
+ | ExecStartPre=pactl set-source-volume USB_in 100% | ||
+ | ExecStartPre=touch / | ||
+ | ExecStartPre=chmod 666 / | ||
ExecStart=screen -d -U -L -Logfile / | ExecStart=screen -d -U -L -Logfile / | ||
+ | ExecStop=screen -p 0 -X stuff " | ||
+ | RestartSec=15 | ||
+ | Restart=always | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
Zeile 214: | Zeile 224: | ||
==== Bluetooth LE Scan==== | ==== Bluetooth LE Scan==== | ||
Hier wird Bluetooth LE zur Anwesenheitserkennung z.B. zum Einschalten von Lampen genutzt. | Hier wird Bluetooth LE zur Anwesenheitserkennung z.B. zum Einschalten von Lampen genutzt. | ||
- | Start als systemd service | + | Start als systemd service |
+ | < | ||
+ | [Unit] | ||
+ | Description=Startet Scan nach Bluetooth LE Geräten | ||
+ | After=bluetooth.target | ||
+ | |||
+ | [Service] | ||
+ | Type=oneshot | ||
+ | ExecStart=/ | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | </ | ||
+ | |||
+ | ble_scan.c benötigt zum compilieren apt-get install libncurses5-dev libbluetooth-dev | ||
Zeile 221: | Zeile 246: | ||
==== Email ==== | ==== Email ==== | ||
swaks --to ZIELMAILADRESSE -s MAILSERVER: | swaks --to ZIELMAILADRESSE -s MAILSERVER: | ||
+ | |||
+ | Ist in ble_scan eincompiliert zur Benachrichtigung. | ||
==== GPIO Tasteneingabe ==== | ==== GPIO Tasteneingabe ==== | ||
- | Das Programm zum Überwachen der Tasten-GPIOs und das Ausschalten der blinkenden grünen LED geschieht | + | Das Programm zum Überwachen der Tasten-GPIOs und das Ausschalten der blinkenden grünen LED wird über / |
< | < | ||
Zeile 234: | Zeile 261: | ||
< | < | ||
+ | |||
+ | Während eines Anrufes soll das Display nicht abgeschalten werden. Ein Cronjob checkt regelmäßig welche Seite derzeit im Browser gezeigt wird und simuliert dann mit XDOtool eine Mausbewegung. | ||
==== Kiosk Ping==== | ==== Kiosk Ping==== | ||
Es kommt vor, dass für den Kiosk keine Internetverbindung besteht und Chromium dann eine Fehlermeldung zeigt. Um diesen Zustand zu beheben ruft auf allen Seiten ein Javascript alle 5 Sekunden ein Script auf. | Es kommt vor, dass für den Kiosk keine Internetverbindung besteht und Chromium dann eine Fehlermeldung zeigt. Um diesen Zustand zu beheben ruft auf allen Seiten ein Javascript alle 5 Sekunden ein Script auf. | ||
- | Bleibt dieser " | + | Bleibt dieser " |
- | + | ||
+ | ==== Benachrichtigung Ein- und Ausschalten ==== | ||
+ | |||
+ | < | ||
+ | Description=Sending Alert Emails on System shutdown. | ||
+ | Requires=network.target | ||
+ | Before=shutdown.target reboot.target | ||
+ | |||
+ | [Service] | ||
+ | Type=oneshot | ||
+ | User=kiosk | ||
+ | RemainAfterExit=true | ||
+ | ExecStart=/ | ||
+ | ExecStop=/ | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ |
nanopi_m4/kiosk/software.txt · Zuletzt geändert: 2024/03/01 21:09 von 127.0.0.1