Inhaltsverzeichnis:

Arduino-Projekt: Testbereich LoRa-Modul RF1276 für GPS-Tracking-Lösung - Gunook
Arduino-Projekt: Testbereich LoRa-Modul RF1276 für GPS-Tracking-Lösung - Gunook

Video: Arduino-Projekt: Testbereich LoRa-Modul RF1276 für GPS-Tracking-Lösung - Gunook

Video: Arduino-Projekt: Testbereich LoRa-Modul RF1276 für GPS-Tracking-Lösung - Gunook
Video: How to use LoRa Module with Arduino - Range Test - RYLR406 15KM 2024, November
Anonim
Arduino-Projekt: Testbereich LoRa-Modul RF1276 für GPS-Tracking-Lösung
Arduino-Projekt: Testbereich LoRa-Modul RF1276 für GPS-Tracking-Lösung

Verbindung: USB - Seriell

Benötigen: Chrome-Browser

Benötigen: 1 X Arduino Mega

Benötigen: 1 X GPS

Benötigen: 1 X SD-Karte

Benötigen: 2 X LoRa-Modem RF1276

Funktion: Arduino GPS-Wert an Hauptbasis senden - Hauptbasis speichert Daten im Dataino Server Lora-Modul: Ultra Long Range RF1276 von APPCONWIRELESS LoRa ist eine neue, private und Spread-Spectrum-Modulationstechnik, die das Senden von Daten mit extrem niedrigen Datenraten an extrem lange Reichweiten. Die geringe Datenrate (bis zu wenigen Bytes pro Sekunde) und die LoRa-Modulation führen zu einer sehr geringen Empfängerempfindlichkeit, bedeutet in diesem Test mehr als 10km.

Schritt 1: Basisstation bauen

Basisstation bauen
Basisstation bauen
Basisstation bauen
Basisstation bauen

Computerbreite Internetverbindung und ein LoRa-Modem, das an den USB-Port angeschlossen ist.

Arduino-Auto-Kit ·

Die metrische Box

Anduino Mega ist mit Seriell 2 zum GPS-Empfänger und Seriell 1 zum LoRa-Modem verbunden. Zum Speichern von Daten wird eine SD-Karte verwendet.

Schritt 2: Der erste Test

Der erste Test
Der erste Test

· 10,6 km auf einem mit Schleifen durchzogenen Weg durch Stadtzentren, Galerien und entlang der Küste

Das Verhältnis von Empfang / Übertragung war 321/500TX-Punkt

RX-Punkt

Schritt 3: Erstellen Sie die Schnittstelle

Erstellen Sie die Schnittstelle
Erstellen Sie die Schnittstelle
Erstellen Sie die Schnittstelle
Erstellen Sie die Schnittstelle

1 - Erstellen Sie ein neues Projekt LoRa

Drücken Sie das Zahnradsymbol, um die Projektkonfiguration zu öffnen

Schritt 4: Messgerät hinzufügen

Messgerät hinzufügen
Messgerät hinzufügen

2) Öffnen Sie den Schieberegler.

· 3) Blättern Sie zu GPS.

· 4) Fügen Sie einen zum Schreibtisch hinzu.

Schritt 5: Ziehen Sie das GPS-Messgerät und fügen Sie OpenStreetMap hinzu

Ziehen Sie das GPS-Messgerät und fügen Sie OpenStreetMap hinzu
Ziehen Sie das GPS-Messgerät und fügen Sie OpenStreetMap hinzu
Ziehen Sie das GPS-Messgerät und fügen Sie OpenStreetMap hinzu
Ziehen Sie das GPS-Messgerät und fügen Sie OpenStreetMap hinzu

· 5) OpenStreetMap-Karte zum Schreibtisch hinzufügen

Durch Ziehen der Komponente GPS auf die Symbolkarte wird die OpenStreet-Karte generiert.

Erstellen Sie die Schnittstelle

· 6) Kartenaktualisierung ändern

Ändern Sie die Aktualisierungszeit der Karte von 5000 auf 10000

Schritt 6: Ziehen Sie die GPS-Anzeige und fügen Sie das Tabellenprotokoll hinzu

Ziehen Sie die GPS-Anzeige und fügen Sie das Tabellenprotokoll hinzu
Ziehen Sie die GPS-Anzeige und fügen Sie das Tabellenprotokoll hinzu

· 7) Fügen Sie ein Tabellenprotokoll-Messgerät hinzu.

Durch Ziehen des Messgeräts über die GPS-Symboltabelle wird das Messgerätetabellenprotokoll erstellt

· 8) Aktualisierung des Tabellenprotokolls ändern. Ändern Sie die Kartenaktualisierungszeit von 5000 auf 10000

Passen Sie die Position der Anzeigen an

· 9) Ziehen-Anzeigen passen die Position der Anzeigen an, indem Sie sie über den Bildschirm ziehen.

· 10) Projekt speichern

Schritt 7: Code abrufen

Code abrufen
Code abrufen

10) Codecontainer aktivieren

Schaltfläche auf der oberen rechten Schaltfläche, wählen Sie alle aus und kopieren Sie den Basiscode.

Schritt 8: Arduino-IDE

Arduino-IDE
Arduino-IDE

· 11) Code in Arduino IDE einfügen

· 12) Code bearbeiten Fügen Sie diese Zeile in die Definition ein

Schritt 9: Codierungsdetails

Fügen Sie diese Zeile in die Definition ein

//*************************************************************************

//** BÜCHEREI ** //***************************************** ********************************

#include // ++ GPS-Bibliothek

#include // ++ SPI-Bibliothek #include

// ++ SD-Bibliothek//

*************************************************************************

//** SD ** //******************************************** ********************************

// * SD-Karte wie folgt an SPI-Bus angeschlossen:

// ** UNO: MOSI - Pin 11, MISO - Pin 12, CLK - Pin 13, CS - Pin 4

// (CS-Pin kann geändert werden) und Pin #10 (SS) müssen ein Ausgang sein

// ** Mega: MOSI - Pin 51, MISO - Pin 50, CLK - Pin 52, CS - Pin 53

// (CS-Pin kann geändert werden) und Pin # 52 (SS) müssen ein Ausgang sein

// ** Leonardo: Verbindung mit Hardware-SPI über den ICSP-Header

// Pin 4 wird hier aus Gründen der Konsistenz mit anderen Arduino-Beispielen verwendet const int chipSelect = 53;

// ++ SD-Pin-Selektor

//*************************************************************************

//** GEOGRAPHISCHES POSITIONIERUNGS SYSTEM ** //***************************************** ********************************

TinyGPS-GPS; // ++ GPS auf Serial2

void gpsdump(TinyGPS &gps); // ++

bool newdataGPS = false; // ++

Fügen Sie diese Zeile im setup() hinzu

//***********************************************************************

//** GPS serielles Setup ** //**************************************** ********************************

Serial2.begin (9600); // ++

Verzögerung (1000); // ++

//***********************************************************************

//** SD-Initialisierung ** //**************************************** ******************************

// Stellen Sie sicher, dass der Standard-Chipauswahl-Pin auf // ++. eingestellt ist

// Ausgabe, auch wenn Sie sie nicht verwenden: // ++

PinMode (SS, AUSGANG); // ++

Serial.println (F ("SD-Karte wird initialisiert …")); // ++

// prüfen, ob die Karte vorhanden ist und initialisiert werden kann: // ++

if (!SD.begin(chipSelect)) { // ++

Serial.println (F ("Karte fehlgeschlagen oder nicht vorhanden")); // ++

// mach nichts mehr: // ++

Rückkehr; // ++

} sonst { // ++

Serial.println (F ("SD-Karte OK")); // ++

} // ++

Füge diese Zeilen in loop() ein void

serialEvent2(); // ++ serielles GPS-Ereignis aufrufen

SeriaEvent2-Code hinzufügen

//*************************************************************************

//** GPS-Serienereignis ** //**************************************** ********************************

void serialEvent2() { // ++

while (Serial2.available()) { // ++

Zeichen c = Serial2.read (); // ++

//Seriendruck (c); // Kommentar entfernen, um GPS-Rohdaten anzuzeigen // ++

if (gps.encode(c)) { // ++

newdataGPS = wahr; // ++

brechen; // entkommentieren, um sofort neue Daten zu drucken! // ++

} // ++

} // ++

} // ++

GPS-Dump-Voud hinzufügen

//*************************************************************************

//** GPS-Dump ** //**************************************** ********************************

//** Der gültige Breitengradbereich in Grad ist -90 und +90. **

//** Längengrad liegt im Bereich -180 und +180 **

//** Angabe der Ost-West-Position **

//** "123456789 1234567890" **

//** "000.00000;0000.00000" ** //*************************************************************************

void gpsdump(TinyGPS & gps) // ++

{ // ++

int Jahr; // ++

Byte Monat, Tag, Stunde, Minute, Sekunde, Hundertstel; // ++

unsigniertes langes Alter; // ++

gps.f_get_position(&LATGP00, &LONGP00, &age); // ++

gps.crack_datetime(&Jahr, &Monat, &Tag, &Stunde, // ++

&Minute, &Sekunde, &Hundertstel, &Alter); // ++

langes lat, langes; // ++

gps.get_position(&lat, &lon, &age); // ++

// *********************************************************************

// ** erzeuge einen String zum Zusammensetzen der zu loggenden Daten: **

// *********************************************************************

String dataString = ""; // ++

dataString += (lat / 100000); // ++

Datenzeichenfolge += "."; // ++

dataString += lat - (lat / 100000) * 100000; // ++

Datenzeichenfolge += ";"; // ++

dataString += (lon / 100000); // ++

Datenzeichenfolge += "."; // ++

dataString += lon - (lon / 100000) * 100000; // ++

Datenzeichenfolge += ";"; // ++

dataString += String(static_cast(day)); // ++

Datenzeichenfolge += "/"; // ++

dataString += String(static_cast(Monat)); // ++

Datenzeichenfolge += "/"; // ++

dataString += String(Jahr); // ++

Datenzeichenfolge += ";"; // ++

dataString += String(static_cast(hour)); // ++

dataString += ":"; // ++

dataString += String(static_cast(Minute)); // ++

dataString += ":"; // ++

dataString += String(static_cast(second)); // ++ //******************************************** ****************************

//** AUF SD SPEICHERN ** //**************************************** *********************************

// öffne die Datei. Beachten Sie, dass jeweils nur eine Datei geöffnet sein kann, **

// Sie müssen diese also schließen, bevor Sie eine andere öffnen. ** //************************************************ **************************

Datei dataFile = SD.open("gps00.txt", FILE_WRITE); // ++

// ***********************************************************************

// ** Wenn die Datei verfügbar ist, schreibe hinein: **

// ***********************************************************************

if (dataFile) { // ++

dataFile.println (dataString); // ++

dataFile.close(); // ++

} sonst { // ++

Serial.println (F ("FEHLER SD-Schreiben")); // ++

} // ++

}

Wenn Sie den Code herunterladen möchten, besuchen Sie bitte diese Seite.

Empfohlen: