APRS Telemeriedaten des RaspberryPi

In einem meiner Artikel („APRS-IS mit dem Raspberry Pi“ aus 2013) habe ich ja schon beschrieben wie man mit nc, einem Text-File und dem APRS-IS Netzwerk eine APRS-Bake abesetzen kann. In diesem Artikel möchte ich euch zeigen wie ich APRS Telemetriedaten des RaspberryPi Sende.

Das APRS Protokoll beinhaltet eine möglichkeit Telemetrie zu versenden eine Erklärung findet man im APRS Protocol Reference (pdf) Handbuch.

Hier sieht man die Temperaturkurve des Raspberry CPUs.

Für die Telemetrie gibt es im APRS folgende felder das T (Telemetry Report Format), die PARM. (Parameter Name Message), die UNIT. (Unit/Label Message), die EQNS. (Equation Coefficients Message) und die BITS. (Bit Sense/Project Name Message). Da ich mein Datenpakt mit nc an den APRS-IS Server sende, muss ich mir das Paket selbst zusammenbauen. Wenn das Paket fertig ist sieht es bei mit so aus:

DO7TC-1>APE001,WIDE1-1,TCPIP*:!5236.49N/01324.96EI Denis / http://www.do7tc.de / RaspberryPi TESTBETRIEB
DO7TC-1>APE001,WIDE1-1,TCPIP*:>Verbunden via HAMNET - Telemetrie zeigt System Status des RaspberryPi
DO7TC-1>APE001,WIDE1-1,TCPIP*::DO7TC    :UNIT.Gard C Temp,Voltage,Voltage,Off,kB
DO7TC-1>APE001,WIDE1-1,TCPIP*::DO7TC    :PARM.CPUCore Temp,V Core,V SDram,Off,FreeMem kB
DO7TC-1>APE001,WIDE1-1,TCPIP*::DO7TC    :BITS.00000000,RaspberryPi Status
DO7TC-1>APE001,WIDE1-1,TCPIP*:T#160,39.0,1.2000,1.2250,50,25092,000000

Wie erstelle ich nun das Paket, dazu ich habe mir eine Skript geschrieben – das wie folgt aussieht:

#!/bin/bash
echo "user DO7TC pass 17401
DO7TC-1>APE001,WIDE1-1,TCPIP*:!5236.49N/01324.96EI Denis / http://www.do7tc.de / RaspberryPi TESTBETRIEB
DO7TC-1>APE001,WIDE1-1,TCPIP*:>Verbunden via HAMNET - Telemetrie zeigt System Status des RaspberryPi
DO7TC-1>APE001,WIDE1-1,TCPIP*::DO7TC    :UNIT.Gard C Temp,Voltage,Voltage,Off,kB
DO7TC-1>APE001,WIDE1-1,TCPIP*::DO7TC    :PARM.CPUCore Temp,V Core,V SDram,Off,FreeMem kB
DO7TC-1>APE001,WIDE1-1,TCPIP*::DO7TC    :BITS.00000000,RaspberryPi Status
DO7TC-1>APE001,WIDE1-1,TCPIP*:T#"`cat /tmp/zahl.txt`\
","`vcgencmd measure_temp | awk -F'=' '{print $2}' | awk -F"'" '{print $1}'\
`","`vcgencmd measure_volts core | awk -F'=' '{print $2}' | awk -F'V' '{print $1}'`\
","`vcgencmd measure_volts sdram_p | awk -F'=' '{print $2}'| awk -F'V' '{print $1}'`\
",50"``\
","`free | grep Mem | awk '{print $3}'`\
",000000"``\ > /tmp/aprs-telemetrie.txt
quelle="$(cat /tmp/zahl.txt)"
wert=1
ziel="/tmp/zahl.txt"
zahlneu=$((quelle+wert))
echo $zahlneu > "$ziel"

In diesem Skript wird also das Telemetriepaket zusammen gebaut, (verzeiht mir bitte die Art und Weise – ich bin kein Entwickler, es hat so einfach funktioniert). Das Skript schreibt eine Datei nach /tmp/ diese übergebe ich dann nc und sende es an einen APRS-IS Server. In meinem fall direkt ins HAMNET mit

nc -w 5 44.225.73.2 14580 < /tmp/aprs-telemetrie.txt

So, dass soll es erst mal gewesen sein, schaut mal auf aprsdirekt oder aprs.fi. Anregungen, Verbesserungen und Fragen gern in die Kommentare.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.