Zum Hauptinhalt springen

Schnellstart

Schließen Sie die Platine über USB-C an, verbinden Sie die mitgelieferte FXUB1900-Antenne mit dem IPEX-Anschluss und folgen Sie dem Reiter für Ihre Plattform, um decodierte Flugzeugmeldungen vom integrierten TT-SC1-Empfänger anzuzeigen.

1. Plattform installieren​

Installieren Sie den offiziellen Espressif Arduino-Core für ESP32 über den Arduino IDE-Boards-Manager:

  1. Öffnen Sie die Arduino IDE.
  2. Gehen Sie zu Extras → Board → Boards-Manager.
  3. Suchen Sie nach ESP32.
  4. Suchen Sie ESP32 von Espressif Systems und klicken Sie auf Installieren.

2. Den CH340K-Treiber installieren​

Der CH340K-Chip des Boards übernimmt die USB-zu-Seriell-Kommunikation. Ohne dessen Treiber wird das Board nicht als serieller Anschluss angezeigt.

Unter Linux ist kein separater Treiber erforderlich: Der CH340 wird von Haus aus unterstützt.

Unter Windows laden Sie den Treiber von der WCH-Treiberseite herunter und führen Sie das Installationsprogramm aus. Unter macOS laden Sie den Treiber von der WCH-macOS-Treiberseite herunter, öffnen Sie die .zip-Datei und befolgen Sie die Installationsanweisungen.

3. Bibliothek installieren​

Laden Sie die Arduino-Bibliothek für den Soldered ADS-B-Empfänger im verifizierten Commit herunter:

Gehen Sie in der Arduino-IDE zu Sketch → Include Library → Add .ZIP Library... und wählen Sie das heruntergeladene Archiv aus.

4. Board auswählen​

Da für dieses Produkt noch kein board-spezifischer Eintrag zum Boards Manager-Paket hinzugefügt wurde, wählen Sie das am besten passende generische Ziel aus: Tools → Board → esp32 → ESP32S3 Dev Module.

5. Laden Sie Ihr erstes Programm hoch​

Dies ist das bibliotheksinterne Beispiel 1_ReadAircraftCSV. Die Standard-Verdrahtung der Bibliothek (UART1 an IO17/IO18, Reset an IO21) passt bereits zu diesem Board, daher benötigt der Konstruktor keine Argumente.

ESP32S3 Dev Module
1_ReadAircraftCSV.ino
#include "ADSB-Receiver-SOLDERED.h"

// Create an instance of the ADS-B object
// Using a different board? See example 7_CustomBoardWiring.
ADSBReceiver adsb;

// Called once per decoded aircraft update, with whichever fields the module had data for.
void onAircraft(const AdsbAircraft &ac)
{
Serial.print("ICAO ");
Serial.print(ac.icao);

if (ac.callsign.length())
{
Serial.print(" call=");
Serial.print(ac.callsign);
}
if (ac.hasPosition)
{
Serial.print(" lat=");
Serial.print(ac.lat, 5);
Serial.print(" lon=");
Serial.print(ac.lon, 5);
}
if (ac.hasAltBaro)
{
Serial.print(" altBaro=");
Serial.print(ac.altBaro);
Serial.print("ft");
}
if (ac.hasVelH)
{
Serial.print(" vel=");
Serial.print(ac.velH);
Serial.print("kt");
}
if (ac.squawk.length())
{
Serial.print(" squawk=");
Serial.print(ac.squawk);
}
Serial.print(" onGround=");
Serial.print(ac.onGround() ? "yes" : "no");
Serial.print(" crcValid=");
Serial.println(ac.crcValid ? "yes" : "no");
}

void setup()
{
// Start the USB serial monitor.
Serial.begin(115200);

// Open the UART link to the module at its factory-default RUN baud.
adsb.begin(115200);
// Register the function to call whenever a decoded aircraft report arrives.
adsb.onAircraft(onAircraft);

Serial.println("Waiting for ADS-B traffic...");
}

void loop()
{
// Reads incoming bytes and fires the registered callbacks. Must run every loop.
adsb.poll();
}

6. Was Sie erwarten können​

Öffnen Sie „Tools → Serial Monitor“, stellen Sie die Baudrate auf 115200 ein und setzen Sie das Board zurück. Der Empfänger sendet für jedes empfangene Flugzeug einen CSV-Bericht, etwa einmal pro Sekunde pro Flugzeug:

Serial MonitorAutoscrollShow timestampNewline115200 baud
Message (Enter to send message to the board)
Waiting for ADS-B traffic...
ICAO 4BB865 call=PGT2DY onGround=no crcValid=yes
ICAO 4CBEA5 onGround=no crcValid=yes
ICAO 0FFA8D onGround=no crcValid=yes
ICAO 3E7FBE onGround=no crcValid=yes
ICAO 4BB865 call=PGT2DY altBaro=36975ft squawk=7140 onGround=no crcValid=yes
ICAO 4CBEA5 onGround=no crcValid=yes
ICAO 0FFA8D onGround=no crcValid=yes
ICAO 44020A squawk=7102 onGround=no crcValid=yes
ICAO 4BB87A altBaro=37000ft vel=453.00kt squawk=3031 onGround=no crcValid=yes

Die Felder einer Zeile hängen davon ab, was das Modul für diese Aktualisierung tatsächlich decodiert hat; ein Feld, für das das Modul noch keine Daten hat, wird einfach weggelassen, weshalb einige der obigen Zeilen kürzer sind als andere.

Keine Ausgabe nach der ersten Zeile? Siehe Fehlerbehebung. Für den Empfang muss sich ein Flugzeug, das ADS-B sendet, in Reichweite und in Sichtlinie der Antenne befinden.

7. Fehlerbehebung​

Wenn das Board nicht erkannt wird oder der Upload fehlschlägt, fahren Sie mit Fehlerbehebung fort.