SPGPStrack - Lorawan GPS -Mapping
Dieses Programm ist ein Lorawan-GPS-Tracker für Mapping-Zwecke. Es wurde für Arduino Uno mit Dragino Lora/GPS-Schild und für ESP32 TTGO T-Beam (getestet mit T22_V07) entwickelt.
- als ABP konfiguriert, damit Sie das Gerät an Stellen anstellen können, an denen Sie keine Abdeckung haben
- überträgt den Ort alle x Meter
- Sie können das Nutzlastformat zwischen Cayennelpp und einer manuellen Nutzlast -Decoderfunktion auswählen
- Die Software unterstützt den bestätigten UPLINK und der Arduino wird pieps
- Sie können das GPS über die serielle Hardware- oder Software -Serie lesen. Es ist daher einfacher für die Entwicklung, wenn Sie sehen, was während des realen Betriebs vor sich geht
- Im Falle einer seriellen Hardware -Nutzung können Sie eine Software -Serie für das Debuggen aktivieren
Zu tun
- Timed -Getriebe, das auch ausgeführt wird, wenn sich der Tracker nicht bewegt. Zum Beispiel jede Stunde, um zu sehen, ob der Tracker noch lebt.
- Option mit geringer Leistung
ESP32 -Unterstützung [Staat: In der Arbeit siehe Branch Develop. Die SPI -Konfiguration erzeugt Backtraces] Hardware: ESP32 UNO, als WEMOS bezeichnet ESP32 bereits implementiert fot Ttgo T-Beam- Alternative WLAN -Position für ESP32
Schneller Start
- Erstellen Sie in der TTN -Konsole eine Anwendung, registrieren Sie ein neues Gerät (als ABP)
- Kopieren Sie die Informationen und Schlüssel von Lorawan Geräte in die Skizze
- Stapeln Sie die Boards und laden Sie die Skizze in Board hoch. Um die Skizze hochzuladen, müssen Sie die Reset -Taste auf dem Dragino gedrückt halten. (Wenn Sie ohne Drücken dieser Taste hochladen können, kann dies ein Zeichen dafür sein, dass Sie etwas in den Dragino -Springern oder in den seriellen Einstellungen Ihrer Skizze nicht haben.)
- Wenn Sie den Datenverkehr in der TTN -Konsole sehen, können Sie die Nutzlast -Decoder -Funktion konfigurieren.
- (Wenn Sie keinen Verkehr in der TTN -Konsole sehen, obwohl Sie sicher sind, dass Sie in gutem Abstand zu einem Gateway sind, überprüfen Sie den Rahmenschalter und die Dragino -Springer)
- Konfigurieren Sie die TTNMapper-Integration, geben Sie einen Experimentnamen für die Zeit des ersten Versuchs an (oder Sie werden Ihren Heimatort mit einer Cloud von erfolgreichen Connect-Punkten offenlegen).
- Sie sollten Ihr neues Experiment am Ende dieser Liste finden.
ESP32
Für T22_07 SPI -PIN -Einstellung, die noch in LMIC implementiert ist! -> Matthijskooijman/Arduino-Lmic#164
-> Ändern Sie die SPI -Stifte direkt in der Bibliothek
Aufmerksamkeit!!! Vergessen Sie nicht, dies zurückzusetzen, wenn Sie auch andere Hardware mit LMIC verwenden
Hal.cpp Line 79
static void hal_spi_init () {
//SPI.begin();
SPI . begin ( 5 , 19 , 27 );
}Abhängigkeiten
- Arduino lmic
- Tinygps ++
- Cayennelpp (optional) Installieren Sie vom Arduino Library Manager
Konfiguration:
- TXDIST - Definiert die Entfernung [in Metern], wonach die Position gesendet wird
- SF - Definieren Sie den Lorawan -Ausbreitungsfaktor (DR_SF7 - DR_SF12) 7 und 8 für die Zuordnung empfohlen
- Single_Channel - Verwenden Sie den Lorawan -Kanal 0 nur für einkanale Gateways
- Bestätigt - Aktiviert bestätigte Uplinks, nur aktivieren, wenn Sie einen Summer an Pin D5 verbinden! Ansonsten ist diese Funktion nutzlos
- Soft_Serial - Unterbringung zur Verwendung von Hardware -Serien, ansonsten wird Software -Serien verwendet. In diesem Fall verbinden Sie das GPS -Modul mit RXPin und TXPin
- DEBUG - Wenn Sie die Hardware -Serie verwenden, können Sie Debug aktivieren, um die Debug -Ausgabe auf einer Software -Serie zu erhalten. Lassen Sie deaktiviert, um die Software -Serie überhaupt nicht zu verwenden
- Cayennelpp - Wenn Sie Cayennelpp als Nutzlastformat verwenden möchten, verwenden Sie sonst die folgende Decoder -Nutzlastfunktion
Nutzlastfunktion
function Decoder ( bytes , port ) {
var decoded = { } ;
// if (port === 1) decoded.led = bytes[0];
decoded . latitude = ( ( bytes [ 0 ] << 16 ) >>> 0 ) + ( ( bytes [ 1 ] << 8 ) >>> 0 ) + bytes [ 2 ] ;
decoded . latitude = ( decoded . latitude / 16777215.0 * 180 ) - 90 ;
decoded . longitude = ( ( bytes [ 3 ] << 16 ) >>> 0 ) + ( ( bytes [ 4 ] << 8 ) >>> 0 ) + bytes [ 5 ] ;
decoded . longitude = ( decoded . longitude / 16777215.0 * 360 ) - 180 ;
var altValue = ( ( bytes [ 6 ] << 8 ) >>> 0 ) + bytes [ 7 ] ;
var sign = bytes [ 6 ] & ( 1 << 7 ) ;
if ( sign )
{
decoded . altitude = 0xFFFF0000 | altValue ;
}
else
{
decoded . altitude = altValue ;
}
decoded . hdop = bytes [ 8 ] / 10.0 ;
return decoded ;
}