Einfache Stand-Alone APRS-Funkbaken
auf Arduino-Basis
In Bearbeitung
Stand:  3. März 2019

NEU: Hinweis auf abweichende  I2C-Adressen  bei "BME280-Moduln"
NEU: Hinweis auf neuen Wettersensor "BME680" ( siehe weiter unten )

  automatic translation by GOOGLE:
https://translate.google.com/translate?sl=de&tl=en&js=y&prev=_t&hl=de&ie=UTF-8&u=http%3A%2F%2Fwww.kh-gps.de%2Faprs_bake.htm&edit-text=&act=url

Mit der Erzeugung von APRS-Signalen unter Verwendung von Arduino-Software hatte ich mich vor längerer Zeit schon einmal beschäftigt [1] und war dabei auf die sehr hilfreiche Library "QAPRS" von Lukasz Nidecki, SQ5RWU gestossen. Mit wenig Aufwand erlaubt sie das Generieren entsprechender AFSK-Signale. Was lag nun näher, als derart erzeugte Signale unter Verwendung der bekannnten Transceiverbausteine des Typs "DRA818V" [3] auf der Frequenz 144.8 MHz auszusenden und auf diese Weise zu einfachen kompakten APRS-Sendebaken zu kommen?


Abb.1   Schalbild der APRS-Bakenanordnungen

Abb.1 zeigt das Schaltbild der von mir gewählten Bauteileanordnung. Dabei geht es um je eine Version zur Aussendung von Wetterdaten und einer solchen für GPS-Standortdaten. Dazu wurde das weiter unten noch näher zu beschreibende Platinenlayout entworfen, welches je nach vorgesehener Nutzung entsprechend zusätzlich zu bestücken ist. 

Die Wetterbakenversion


Abb.2  Die Wetterdatenversion mit dem BME280-Modul von Fa. Watterott


Abb.3  Platinenunterseite mit Transceivermodul
( zum Thema "Tiefpassfilter" siehe Text weiter unten )


Um die Wetterdatenversion möglichst einfach zu halten, verwende ich an dieser Stelle einen BOSCH-Multisensorbaustein des Typs "BME280". Von Fa. Watterott [2] gibt es ihn verbaut auf einem kleinen sog. Breakout-Board, was seine Einsetzbarkeit stark vereinfacht. Via  I2C- oder SPI-Bus ( hier benutzt:  I2C-Bus ) sind von ihm die Daten von Temperatur, Luftdruck, Luftfeuchte und Höhe abrufbar. Ein ATMEL-Prozessor  des Typs "ProMini" in der 5V-Version verarbeitet sie und erzeugt daraus ein entsprechend der APRS-Regularien zusammengesetztes Wetterdatenprotokoll ( Abb.5 ).


Abb.4  Beispiel für Wetterdaten ( unter APRS:FI empfangen )


Abb.5  Beispiel für Wetterdaten ( Im Rohdatenmodus unter APRS.FI empfangen )

NEU: Version mit Multisensor "BME680"

Unlängst war mir aufgefallen, dass das für dieses Projekt ursprünglich verwendete Breakout-Board "BME280" [2] bei Fa. Watterott ( vorübergehend ? ) nicht verfügbar war. Neu im Programm war dagegen ein sehr ähnlicher Typ mit der Bezeichnung "BME680" [6]. Von seinem Vorgängertyp unterscheidet er sich vor allem dadurch, dass zu den bekannten Sensortypen auch noch ein GAS-Sensor zur Erfassung von "Indoor Air Quality" hinzugekommen ist. Zur Zeit bin ich mir noch nicht sicher, ob ich diese Daten auch in Verbindung mit der Wetterdatenbake verwenden werde, aber auf jeden Fall wurde für den "BME680" schon einmal eine Version erstellt, bei der wieder die bisher schon genutzten Daten von Temperatur, Luftfeuchte und Luftdruck Verwendung finden. Sie kann hier [7] heruntergeladen werden. Die hierbei benutzten Libraries sind über die BME680-Seiten von ADAFRUIT zu finden.

Die GPS-Bakenversion


Abb.6  GPS-Bakenversion

Alternativ zur Wetterdatenversion ist eine Bakenversion realisierbar, die der Aussendung von GPS-Standort- und Höhendaten dient ( Abb.6 ). Anstelle eines BME280-Moduls wird hierbei ein GPS-Empfängermodul verwendet. Infragekommen dabei Versionen, die serielle NMEA-Daten mit TTL-Pegel und üblicherweise 9600bps Datenrate bereitstellen.

WICHTIG: Die Verbindung zwischen GPS-Modul-Ausgang und UART-Eingang des Prozessors ( siehe Abb.1 ) ist für den Zeitpunkt des Hochladens des Betriebsprogrammes zu trennen ( Brücke "JP1" öffnen ) .

sonstige Funktionen

Dem analogen Prozessoreingang #A3 wird ein Teilwert der Versorgungsspannung zugeführt, was eine Fernübertragung und -auswertung der jeweiligen Spannungsverläufe ermöglicht.
Einige zusätzliche Betriebsfunktionen sind über die Porteingänge #A0 bis #A2 aufrufbar. Dabei ist es z.B. über den Gleichspannungswert an #A0 möglich, Sendeintervalle im Bereich von einer bis zu 15 Minuten auszuwählen. Wer auf diese Einstellmöglichkeit verzichten möchte, der kann natürlich auch einen Festwert an der entsprechenden Stelle im Quellcode eintragen.
Durch Masseverbindung von #A1 kann in den TESTMODUS geschaltet werden. Unabhängig von der Spannung an #A0 sind die Sendeintervalle dann auf 10 Sekunden fixiert.
Durch Masseverbindung von #A2 kann bei Bedarf auch eine alternative Betriebsfrequenz aufgerufen werden. Vorgesehen sind an dieser Stelle z.B. 145.200 MHz.
Anzumerken ist noch, dass Einstellungsänderungen an #A0-#A2 erst nach Programmneustart wirksam werden.


geplante Funktionen

* Vorgesehen ist eine Abschaltung des DRA818 während der Sendepausen ( Stromaufnahme im RX-Mode schlägt mit zusätzlich etwas 60mA zu Buche ).
* Pausenzeitverlängerung bei Erkennung von Frequenzbelegung.

Nachbau

Im Vergleich zu ursprünglichen QAPRS-Anwendungen und auch meiner in [1] beschriebenen Nutzung, arbeitet das vorliegende Konzept bei seinem R2R-Netzwerk ( siehe Abb.1 ) mit hiervon abweichenden Portanschlüssen. Das hat zur Folge, dass für die vorliegenden Bakenanwendungen nicht die Original-QAPRS-Library, sondern die im beigefügten ZIP-File enthaltene Version zu verwenden ist. Im gleichen File sind auch die beiden ARDUINO-Sketches der auf dieser Seite vorgestellten APRS-Bakenversionen enthalten [5].  


Abb.7  Platinenlayout ( vorläufige Version )

Bezeichung der aktuellen Platineversion: "DJ7OO_QAPRS_DRA818_2.LAY6" ( Anfertigung durch Dirk Ruffing, DH4YM )

WICHTIGER HINWEIS ZUR AKTUELLEN PLATINENVERSION:
Zur Reduzierung des Gesamtenergiebedarfs ist für zukünftige Softwareversionen auch eine Deaktivierbarkeit des DRA818V-Moduls in den Sendepausen
vorgesehen. Der hierfür zu benutzende Power-Down-Steuerpin Nr.6 ist deshalb nicht länger fest an die Versorgungsspannung gelegt, sondern frei
beschaltbar. Für den Normalbetrieb ist somit zumindest vorerst noch eine zusätzliche Drahtbrücke an "PD" einzufügen.


Zum Thema: Tiefpassfilter im Antennenweg

Messungen verschiedenster Stellen ergaben, dass der Oberwellenanteil der Sender-Ausgangssignale bei den DRA818V unzureichend hoch ist und somit zusätzliche Unterdrückung erfordert. Aus diesem Grunde hatte ich im Schaltbild Abb.1 auch eine entsprechende zusätzliche Tiefpassfilteranordnung ( vorerst ohne Bemaßung ) vorgesehen und zudem auch das Platinenlayout gem. Abb.7 entsprechend ausgelegt.
Bei meinen bisherigen Musteraufbauten wurden stattdessen allerdings nur fertig erhältliche Tiefpassfilter gem. Abb.8 provisorisch verbaut. Sie stammen von der Firma "MCL" und sind unter der Bezeichnung "LFCN-120" z.B. hier [4] erhältlich.
Die aktuelle Platinenversion wurde dafür aber bereits vorbereitet.
Anm.: Vom gleichen Hersteller und Lieferanten werden auch Tiefpassfilter mit der Bezeichnung "LFCN-160" angeboten. Nach Datenvergleich speziell bezüglich ihrer Werte für Oberwellenunterdrückung sind sie für unsere Anwendung allerdings kaum geeignet.     



Abb.8   Filter "LFCN-120" im Einsatz



Hinweis zu BME280-Moduln von EBAY

Wie mir berichtet wurde, gibt es die für unsere Wetterbake verwendbaren BME280-Moduln auch sehr preiswert z.B. bei EBAY. Im Lieferzustand müssen diese aber offenbar mit der von meinem Sketch abweichenden I2C-Adresse "0x76" angesprochen werden. Somit sind sie also entweder ( durch Drahtbrücke ? ) auf die Adresse "0x77" umzustellen, oder es ist die im Arduino-Sketch zu findende I2C-Adresse entsprechend abzuändern.    
PS: Da ich selbst ein entsprechendes BME280-Modul nicht getestet habe, gebe ich das hier nur als nicht verifizierte Information weiter.

Linkliste

[1] http://www.kh-gps.de/qaprs.htm
[2] http://www.watterott.com/de/BME280-Breakout-Luftfeuchtigkeits-Druck-Tempertursensor
[3] http://www.box73.de/product_info.php?products_id=3425
[4] http://www.box73.de/product_info.php?products_id=3439
[5] http://www.kh-gps.de/qaprs_baken_2.zip
[6] http://www.watterott.com/de/BME680-Breakout
[7] http://www.kh-gps.de/qaprs_wx_680_3.zip

E-Mail contact via: