Analoge Spannung mit DA-Wandler MCP4822
02.02.2025
Elektronik | Funk | Software
Der Technik-Blog
In letzter Zeit gab es vermehrt Anfragen zum TTGO & LILYGO ESP32 GPS-Board bezüglich eines nicht funktionierenden GPS-Moduls. Leider gibt es bei diesen Boards über die Jahre immer wieder Updates mit verschiedenen Änderungen an der Hardware oder am Pin-Mapping. So wurde das Projekt LoRaWAN GPS Tracker vor einem Jahr mit einem TTGO/LILYGO-Board Version T22_V1.1 20191212 entwickelt und getestet. Bei diversen Händlern wie Amazon etc. werden mittlerweile neuere Modelle mit z.B. der Versionsnummer T22_V1.1 20220222 ausgeliefert, wo offensichtlich das GPS-Modul auf den ersten Blick nicht richtig funktioniert.
LoRaWAN GPS Tracker - Teil 1: Inbetriebnahme NEO6 GPS
TTGO LoRaWAN GPS Board
Viele LoRaWAN GPS-Projekte mit dem TTGO T-BEAM & LILYGO-Board arbeiten mit NMEA-Datensätzen. Das NEO6 GPS-Modul sendet aktuelle Positionsdaten in einem bestimmten Intervall über eine serielle Schnittstelle im NMEA-Format aus. So enthält der GGA-Datensatz beispielsweise die aktuelle Position (Breitengrad & Längengrad), Höhe, Anzahl der GPS-Satelliten uvm. Anschließend wird dieser Datensatz von einem Mikrocontroller seriell empfangen und in einzelne Parameter zerlegt. Bei neueren NEO6 GPS-Modulen auf den TTGO-Boards wurde diese Datenübertragung vom Hersteller deaktiviert und muss ab sofort vom Anwender selbst wieder aktiviert werden.
Die Aktivierung erfolgt direkt über den Mikrocontroller selbst. Dazu wird über die Arduino-IDE ein kleiner Programmcode hochgeladen, der mittels einer Abfolge von seriellen Befehlen das NMEA-0183 Protokoll und somit den GGA-Datensatz wieder aktiviert. Diese Aktivierung muss in der Regel einmalig durchgeführt werden und bleibt anschließend im GPS-Modul dauerhaft gespeichert. Zusätzlich muss vor dem Programm-Upload noch folgende Bibliothek installiert werden: Sparkfun Ublox Arduino Library
Folgendes Codebeispiel aktiviert NMEA-0183 auf einem NEO6 GPS Modul:
//More information at: https://www.aeq-web.com #include <SparkFun_Ublox_Arduino_Library.h> #define SERIAL1_RX 34 // GPS_TX -> 34 #define SERIAL1_TX 12 // 12 -> GPS_RX SFE_UBLOX_GPS NEO6GPS; void setup() { Serial.begin(115200); while (!Serial); Serial.println("Serial is open now"); Serial1.begin(9600, SERIAL_8N1, SERIAL1_RX, SERIAL1_TX); delay(300); do { if (NEO6GPS.begin(Serial1)) { Serial.println("GPS connection ok"); NEO6GPS.setUART1Output(COM_TYPE_NMEA); NEO6GPS.saveConfiguration(); Serial.println("Enable NMEA"); NEO6GPS.disableNMEAMessage(UBX_NMEA_GLL, COM_PORT_UART1); NEO6GPS.disableNMEAMessage(UBX_NMEA_GSA, COM_PORT_UART1); NEO6GPS.disableNMEAMessage(UBX_NMEA_GSV, COM_PORT_UART1); NEO6GPS.disableNMEAMessage(UBX_NMEA_VTG, COM_PORT_UART1); NEO6GPS.disableNMEAMessage(UBX_NMEA_RMC, COM_PORT_UART1); NEO6GPS.enableNMEAMessage(UBX_NMEA_GGA, COM_PORT_UART1); NEO6GPS.saveConfiguration(); Serial.println("NMEA-GGA for AEQ-WEB GPS-Tracker enabled!"); break; } delay(1000); } while(1); } void loop() { if (Serial1.available()) { Serial.write(Serial1.read()); } }
Nachdem der Beispielcode erfolgreich auf das Board hochgeladen wurde, sollte im Serial-Monitor folgende Ausgabe angezeigt werden:
Dieses Beispiel deaktiviert einige NMEA-Datensätze und aktiviert lediglich GGA, welches für das Projekt TTGO/LILYGO LoRaWAN GPS Tracker notwendig ist.
Generell sollte zuvor überprüft werden, ob das GPS-Modul überhaupt mit Energie versorgt wird. Viele Boards verfügen über einen Power-Management-IC wie zum Beispiel den AXP192, wo die Energieversorgung softwareseitig erst freigeschaltet werden muss. Betreibt man das Board im Freien, so sollte nach rund 5 Minuten (in Ausnahmefällen auch 10 Minuten) die GPS-LED von NEO6 anfangen zu blinken. Ist dies nicht der Fall, muss zuerst die Energieversorgung vom GPS-Modul geprüft werden.
Im letzten Teil vom LoRaWAN GPS Tracker geht es um die Weiterleitung der Datensätze von TTS auf den eigenen Webserver und Darstellung auf einer Karte
WeiterlesenBei neueren Versionen von TTGO & LILYGO LoRaWAN GPS Boards gibt es Probleme mit der seriellen Auswertung von GPS-Daten. Ursache ist die deaktivierung von NMEA
WeiterlesenAEQ-WEB © 2015-2025 All Right Reserved