Add speed.sh
This commit is contained in:
parent
987d44190d
commit
f319563650
2 changed files with 56 additions and 0 deletions
25
README.md
25
README.md
|
@ -1,2 +1,27 @@
|
|||
# artnetonice
|
||||
Using an LED strip over Art-Net to display status information from the WifiOnICE API
|
||||
|
||||
## Requirements
|
||||
### Hardware
|
||||
* Arduino Nano oder Klon
|
||||
* Ethernet Shield mit ENC28J60. W5100 wäre noch viel besser, aber ich habe dafür kein einfach steckbares Shield gefunden.
|
||||
* 5V, GND und Datenpin auf Kontaktleiste oder per Kabel auf Buchse herausführen, um die LED-Strip verbinden zu können
|
||||
|
||||
Ich habe die Strip softwareseitig auf 300mA beschränkt (mit ENC und Atmega sollten es etwa 500mA sein, aber Achtung: Muss nicht funktionieren) und betreibe den Strip direkt am USB-Port bzw. über ein USB-Netzteil.
|
||||
|
||||
Wird der Strip nicht per Art-Net angesprochen, läuft eine Default-Animation. Für diesen Zweck wäre eine Alternative auch, den Strip per Seriell über USB anzusteuern, Art-Net war jedoch flexibler nutzbar.
|
||||
|
||||
### Software
|
||||
* jq
|
||||
* ola (muss auf Universe 0 erfolgreich ausgeben), ggf. über die GUI unter http://localhost:9090
|
||||
* Netzwerkverbindung zum ICE-WLAN mit erfolgter Authentisierung
|
||||
* Netzwerkverbindung zum Art-Net-Node
|
||||
#### speed.sh
|
||||
Dieses Script zeigt die aktuelle Geschwindigkeit des ICEs auf der LED-Strip an. Beim ICE 4 wurde die Api etwa alle 5 Sekunden aktualisiert, jedoch wohl die Geschwindigkeit lediglich anhand der GPS-Position ermittelt und nicht aus den Fahrzeugdaten ausgelesen, denn ohne GPS-Signal war die Geschwindigkeit=0.
|
||||
|
||||
|
||||
## Weitere Ideen
|
||||
* Anzeige der Unterwegsbahnhöfe
|
||||
* Anzeige der Verspätung
|
||||
* Anzeige der aktuellen Position
|
||||
* Überlagern der jeweiligen Anzeigen
|
31
speed.sh
Normal file
31
speed.sh
Normal file
|
@ -0,0 +1,31 @@
|
|||
speed=$(curl -s https://iceportal.de/api1/rs/status | jq -r .speed)
|
||||
maxspeed=250.0
|
||||
dots=60
|
||||
color="0,255,0"
|
||||
color_off="100,0,0"
|
||||
|
||||
result=$(echo "scale=2; $speed/$maxspeed*$dots" | bc | xargs printf %.0f)
|
||||
offdots=$(expr $dots - $result)
|
||||
|
||||
echo Speed: $speed
|
||||
echo Dots: $result
|
||||
echo OffDots: $offdots
|
||||
|
||||
|
||||
echo -n "">temp.dmx
|
||||
|
||||
while [ "$result" -gt 0 ]; do
|
||||
echo -n $color >>temp.dmx
|
||||
echo -n "," >>temp.dmx
|
||||
result=$(( result - 1 ))
|
||||
done
|
||||
|
||||
|
||||
while [ "$offdots" -gt 0 ]; do
|
||||
echo -n $color_off >>temp.dmx
|
||||
echo -n "," >>temp.dmx
|
||||
offdots=$(( offdots - 1 ))
|
||||
done
|
||||
|
||||
|
||||
exec ola_set_dmx -u 0 -d $(cat temp.dmx)
|
Loading…
Add table
Add a link
Reference in a new issue