Amateurfunk-Homepage von Andy  DL1AKP

APRS-Internet-Gateway und Voice-Decoder 

(Verbindet das APRS-System mit dem Internet und spricht auf Wunsch das Rufzeichen von Stationen in der Nähe)

1.Teil  Internet   Gateway

APRS ist ein interessantes Gebiet im Amateurfunk. Man kann hiermit seine geographische Position, Geschwindigkeit, Telemetrie, ja sogar Wetterdaten ins weltweite APRS-Netz einspeisen. Funkamateure übertragen hiermit Ihre Position aus dem Auto, dem Motorrad, Fahrrad, oder während dem Laufen, Klettern usw. Diese kann man dann im Netz auf einer Karte darstellen, im Auto in geeigneten Geräten die in der Nähe befindlichen Stationen sehen. Ich experimentiere auch schon längere Zeit damit herum, die Sache mit den Wetterdaten steht aber noch aus. Es gibt wirklich viel zu entdecken und zu machen auf diesem Gebiet und es ist gar nicht so schwer.

 

Wenn allerdings der nächste APRS-Umsetzer zu weit weg ist, oder ungünstig gelegen ist, kann es schwierig werden, die eigenen Positionen aus dem Auto oder Fahrrad zu übertragen. Hier kann mit kleinen, dezentralen, sogenannten “Gateways” (Übergängen) ins Internet Abhilfe geschaffen werden.

    

Ein solcher Übergang ins Internet wird hier beschrieben. Dieser arbeitet mit einem ARDUINO, die Software, Programmierumgebung etc. ist frei. Jeder kann sich hier also austoben.

    

Eine Erweiterung dieses Gateways ist der mit der Unterstützung von DJ7OO entstandene “APRS-Voice-Decoder” Dies ist die originale Bezeichnung von DJ7OO, deshalb übernehme ich sie hier mal.   Für meine bevorzugte Sprache deutsch könnte man es etwa “APRS Sprachansage von Stationen in der Nähe” bezeichnen. Das trifft es eigentlich auch perfekt.   Zu finden ist es auf der Seite “APRS-Voice-Decoder”.

Der Gateway empfängt die Daten auf der APRS-Frequenz 144,800 MHz und überträgt die empfangenen Daten ins weltweite APRS-Netz des Internets. Die hier vorgestellte Lösung basiert auf einem ARDUINO-Mikrocontroller samt Software, einen Networkshield für ARDUINO als Verbindung zum Internet und dem RADIOSHIELD der Firma Argentdata (USA), und einem 2m-Amateufunkgerät als Empfänger sowie natürlich einem Internetanschluss mittels LAN-Kabel am Router.

Im folgenden einige nützliche Links, auf welchen dieser Artikel basiert:

Was ist APRS? 

APRS in Deutschland 

Ein von mir im Fahrzeug benutzter APRS-Tracker 

Marcus, DL8RDS, hat mich mit seiner Internetseite auf die Idee gebracht. Vielen Dank. Hierauf bezieht sich dieser Beitrag.

RADIOSHIELD für ARDUINO UNO von Argentdata 

Was ist ein ARDUINO? 

So, genug der Links und Informationen. Wer will, kann (oder sollte) sich da die wichtigsten Informationen anlesen. Hier mal ein paar Fotos meines Experimentier-Aufbaus im Funkraum. Das Gerät läuft sporadisch im Testbetrieb (Stand: März 2015). Es mangelt an einem Gehäuse. Das tut der Funktion aber keinen Abbruch.

Oben sieht man die drei Komponenenten des Systems: Ganz unten der ARDUINO Uno, darüber das Network-Shield, dann ganz oben das Radioshield. Rechts im Bild ein Ausschnitt des Programms, welches auf dem ARDUINO läuft. Hier vielen Dank an Marcus, DL8RDS.

Was wir alles brauchen.... 

1. Einen ARDUINO UNO. Bezug über Internet, je nach Version (original oder Clone) zwischen 10€ und 35€. Ich habe einen billigen Clone benutzt.

2. Das RADIOSHIELD von Argentdata. Zu beziehen bei www.argentdata.com direkt aus den USA. Keine Angst, das geht ganz unkompliziert, sicher und kommt ohne Zoll direkt zu Hause an.

3. ein ARDUINO-Ethernet-Shield. Bezug über Internet, je nach Version (original oder Clone) zwischen 10€ und 35€. Ich habe einen billigen Clone benutzt.

4. Ein altes Amateurfunk-2m-Funkgerät, einen 2m-FM-Empfänger, oder 2m-Handfunkgerät, idealerweise mit guter Außenantenne.

5. Gegebenenfalls 12V-Netzteil, falls nicht schon vorhanden.

6. Netzwerkkabel entsprechender Länge wie benötigt wird.

7. Router mit freiem LAN-Anschluss.

Weiteres....

Auf unserem Rechner (Linux, Mac, Windows) brauchen wir noch die ARDUINO-IDE. Diese kann von arduino.cc geladen werden.

 

Weiterhin noch die Files, welche in den ARDUINO programmiert werden. Diese laden wir bei DL8RDS herunter.

 

Copyright-Probleme gibt es nicht - es ist alles frei verfügbar zur privaten Nutzung.

 

Zum Programmieren der Software muss das RADIOSHIELD vom Arduino getrennt werden!! Sonst geht es nicht!

Wenn man das ZIP-File mit der ARDUINO-Software geladen hat, sind dort 4 Unterverzeichnisse. Darin befinden sich verschiedene Versionen der Software mit unterschiedlichen Funktionen, z.B. farbiges LCD-Display. Ich habe mich auf die einfachste Version entschieden, der Name des Unterverzeichnisses lautet Airgate_TCP. Wenn man das mit der ARDUINO-IDE öffnet, dann öffnen sich zwei Dateien: Airgate_TCP und config.h. Wir beschränken uns auf config.h. Hier werden unsere persönlichen Daten angepasst. Die andere Datei lassen wir unangetastet!

 

Es ist folgendes anzupassen: 

    

// Set your callsign-SSID:

#define CALLSIGN "DL0XXX-10"      // SSID für Internet, Igate                                Hier eigenes Rufzeichen eintragen.

    

// Set your APRS passcode code:

// Contact local APRS hams to find out your passcode, or ask on the book forum site.

#define PASSCODE "99999"                                                                                              

 

Hier Passcode mit eigenem Rufzeichen erzeugen: http://apps.magicbug.co.uk/passcode/ und anstatt der “99999” eingeben. 

    

// Define the latitude and longitude of your AirGate:

#define LATITUDE "5051.72N"    

#define LONGITUDE "01120.97E"

 

Hier sind die eigenen Koordinaten einzutragen. Das Format ist etwas seltsam, also aufpassen! Es ist Grad und Dezimalminuten.  Verwirrend? Dann bei mir melden. 

    

// PHG gives information about the station capabilities.  

// PHG01000 describes an RX-only beacon 20ft AGL with a 0db gain "discone" antenna.

// PHG01600 is the same with a 6dB gain (J-Pole) antenna

// PGO02600 is the J-Pole up 30ft.

// Calculate yours at http://www.aprsfl.net/phgr.php

#define PHG "PHG01000"

 

Hier wird die Stationsausrüstung der IGate-Konfiguration eingegeben. Dazu auf die Seite http://www.aprsfl.net/phgr.php gehen. Damit kann im Internet Deine Empfangsreichweite des IGate berechnet werden. Dieses stammt, wie alles bei APRS aus den USA. Ob das in Deutschland nützlich ist, kann ich nicht beurteilen. Es erklärt sich auf der Seite von selbst, allerdings in Englisch. Bei Fragen einfach mailen. Oder den Standardwert belassen...

    

// IP address of the APRS-IS backbone gateway in your country:

//IPAddress aprsgate(198, 137, 202, 21);    //sjc.aprs2.net

IPAddress aprsgate(195, 70, 59, 244);    //euro.aprs2.net

 

Hier wird die IP-Adresse des APRS-Servers im Internet eingetragen. Ich benutze den unteren, er geht sehr gut und zuverlässig. Möglicherweise benutzt ihr einen anderen, dann im Internet die IP-Adresse finden und eintragen.

    

// Enter the MAC address Arduino Ethernet:

// Find it on the board or the box it came in.   

byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x75, 0xCA };

 

Wenn auf dem Ethernet-Shield eine MAC-Adresse draufsteht, dann diese hier eintragen. Wenn nicht, egal. Es geht auch mit irgendeiner... Einfach diese hier belassen, habe ich auch so gemacht.

    

// If use you DHCP, define this:

#define USE_DHCP 1

// Otherwise, comment it out and instead specify your IP address, gateway, and subnet manually:

// IPAddress ip(192, 168, 178, 177);

// byte gateway[] = { 192, 168, 178, 1 };

// byte subnet[] = { 255, 255, 255, 0 };

 

Wenn euer Router DHCP macht (ist eigentlich meistens der Fall), dann alles so lassen. Ansonsten die gewünschte lokale IP-Adresse in eurem Netz in die unteren Zeilen eingeben. Das sollte dann so aussehen:

 

// If use you DHCP, define this:

//#define USE_DHCP 1

// Otherwise, comment it out and instead specify your IP address, gateway, and subnet manually:

IPAddress ip(192, 168, 178, 177);

byte gateway[] = { 192, 168, 178, 1 };

byte subnet[] = { 255, 255, 255, 0 };

    

// TCP port of APRS-IS service:

int aprsport = 14580;                                                                                Einfach so belassen, das ist schon OK....

    

// Software version information, for login and position packet.

#define VERSION "Arduino_AirGate_TCP (dl8rds,2012-05-30)"

#define INFO "Arduino IGATE at home OM Andy X19"

 

Hier könnt ihr eure Info eintragen. Als Beispiel mal meine....

    

// APRS destination, which indicates the APRS device being used:

// This APOTW01 identifies Argent Data Open Tracker V1.

#define DESTINATION "APRS"                                                      Einfach so belassen, das ist schon OK....                      

        

Wichtige Info zur Arduino-Programm:

 

Der Sketch (Programm-Quelltext) kann per E-Mail gerne bei mir angefordert werden, das Anpassen ist sehr einfach. Auch habe ich alle englischen Erklärungen in verständliches Deutsch übersetzt. Auch ist mein Programm erweitert worden, um die folgenden zwei Funktionen:

 

1. Aussendung des Bakentextes alle 2 Stunden. (vorher nur einmal beim Start des Airgates)

 

2. Sollte die Verbindung nicht wieder von selbst hergestellt werden (War bei mir der Fall nach der Zwangstrennung der Telekom in der Nacht.), dann wird nach 10maligen Versuchen der ARDUINO per Software zurückgesetzt. Das funktioniert zuverlässig und das Problem ist beseitigt.

So, das war’s schon. Nun muss der “Sketch” (so heißt der Programm-Quelltext in der ARDUINO-Sprache) nur hochgeladen werden. Fertig!

 

Naja, fast...

 

Noch ein paar wichtige Worte zur Verschaltung, Einstellung etc. 

Zum verwendeten 2m-Gerät:

 

Hier eignen sich offensichtlich nicht alle Geräte. Warum, kann ich nicht genau sagen, es muss wohl an der Audio-Bandbreite liegen. Ich habe hier aktuell einen ALINCO DR-112 als Empfänger im Einsatz. Ein 2m-Handfunkgerät aus Anfang der 90er Jahre ging fast gar nicht - es wurden nur etwa 10% der ankommenden Daten richtig empfangen. Ein YAESU FT-470 Handfunkgerät dagegen geht wieder sehr gut, und braucht gut nur etwa 40% des Stromes, was der ALINCO braucht. Dieses ist also zu bevorzugen

 

Hier ist etwas Probieren angesagt, auch was die Höhe des Audiopegels angeht. Ich habe das Airgate an der Busche für den externen Lautsprecher angeschlossen. Hier musste ich den Pegel auf ca. 75% einstellen. Also sehr laut, wenn es ein Lautsprecher wäre. Das ist zu beachten, damit alles gut geht.

 

Hilfreich ist es hier, in der Erprobungsphase den ARDUINO mit dem USB-Kabel am Rechner zu belassen und über den seriellen Monitor zu beobachten, wie die Daten empfangen werden. Als weiteren Hinweis dienen die beiden LED’s am Radioshield: rot und grün. Sie zeigen jeweils empfangene und gesendete Daten an. das ist ebenfalls sehr zuverlässig.

    

Audiofilter-Zusatzschaltung:

 

Es ist angebracht, diese einfach Filterschaltung vor den NF-Eingang des Radioshields zu schalten. Es ist ein aktiver Filter mit der entsprechenden Bandbreite für das APRS-Signal mit seinen 1200 Baud. Nun kann der Rauschsperrenregler des empfangenen Funkgerätes (oder Scanner, Empfänger...) aufgelassen werden. Nur so funktioniert alles wie es soll!

 

Anbei ist das Schaltbild des Zusatzfilters. Dieses ist schnell auf der Lochfläche des Radioshields verdrahtet und funktioniert auf Anhieb. ALS Operationsverstärker gehen auch viele anderen Typen, die mit einer einfachen Betriebsspannung arbeiten können. Ich habe den 4558 verwendet.

So, das war es im wesentlichen. Damit bekommt man das Airgate spielend zum Laufen. Wenn jemand damit Probleme hat, bitte E-Mail an die angegebene Adresse im Impressum. Ich antworte sicher! Oft bin ich aber etwas schreibfaul, also bitte mit Telefonnummer. Sprechen ist einfach komfortabler...

2.Teil  Voice   Decoder

Dank der Unterstützung durch OM Klaus, DJ7OO und Anpassung des ARDUINO-Code konnte ich mein APRS-Internet-Gateway mit einer Sprachausgabe versehen. Dadurch ist es möglich, Stationen, welche über die Hochfrequenz auf dem APRS-Kanal 144,800 MHz an meiner Station empfangen und decodiert werden, entsprechend der Entfernung anzusagen und auf einem LCD anzuzeigen.

 

Im Gerät befindet sich das ARDUINO-Airgate sowie zwei weitere ARDUINO’s. Einer dient als Modem, der andere steuert die Sprachausgabe (über ein MP3-Modul) und die LCD-Anzeige. Die Stromversorgung erfolgt durch 12V DC und ist dadurch auch mit Batterie oder im Notfall benutzbar. Aufgebaut habe ich das der Einfachheit halber auf Streifenraster-Platine. Die beiden Module zur Stromversorgung mit 5V DC und 7,2V DC (Handfunkgerät) erfolgen durch kommerzielle Schaltregel-Module. Der Preis dieser Module rechtfertigt keinen Selbstbau, sie sind günstig für einen Euro über das Internet zu beschaffen.

 

Das funktioniert erstaunlich gut, wenn es auch ab und an ein paar Fehl-Interpretationen gibt. Am Gerät kann man die Sprachausgabe mit einem Schalter abschalten.

 

Die Entfernung ist mit einem Poti und durch Drücken der Taste “Config” einstellbar zwischen den Werten 1, 3, 5, 10, 25, 50, 75, 100 und 1000km. Das hat sich für mich als praktisch heraus gestellt.

 

Es ist sehr interessant zu sehen, wie viele Stationen doch in APRS mobil QRV sind, darunter auch viele LKW-Fahrer, welche Funkamateure sind.

 

Hier noch zwei Bilder des fertigen Gerätes. Fragen beantworte ich gern per Mail, an meine E-Mail-Adresse.