LoRa Packet Forwarder JSON Daten
25.12.2024
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.
The Things Network kümmert sich lediglich um den Transport von LoRaWAN-Paketen, jedoch nicht um die Speicherung. Hier geht es um die Entwicklung einer Webapp.
WeiterlesenAEQ-WEB © 2015-2024 All Right Reserved