Inhoudsopgave:

Arduino-project: testbereik LoRa-module RF1276 voor GPS-trackingoplossing - Ajarnpa
Arduino-project: testbereik LoRa-module RF1276 voor GPS-trackingoplossing - Ajarnpa

Video: Arduino-project: testbereik LoRa-module RF1276 voor GPS-trackingoplossing - Ajarnpa

Video: Arduino-project: testbereik LoRa-module RF1276 voor GPS-trackingoplossing - Ajarnpa
Video: Ordina Code & Comedy: LoRa (Long Range Low Power Communication) 2024, November
Anonim
Arduino-project: testbereik LoRa-module RF1276 voor GPS-trackingoplossing
Arduino-project: testbereik LoRa-module RF1276 voor GPS-trackingoplossing

Aansluiting: USB - Serieel

Nodig: Chrome-browser

Nodig: 1 X Arduino Mega

Nodig: 1 X GPS

Nodig: 1 X SD-kaart:

Behoefte: 2 X LoRa-modem RF1276

Functie: Arduino Stuur GPS-waarde naar hoofdbasis - Hoofdbasis slaat gegevens op in Dataino Server Lora Module: Ultra long range RF1276 van APPCONWIRELESS LoRa is een nieuwe, private en spread-spectrum modulatietechniek waarmee gegevens met extreem lage datasnelheden naar extreem lage lange afstanden. De lage datasnelheid (tot enkele bytes per seconde) en LoRa-modulatie leiden tot een zeer lage ontvangergevoeligheid, wat in deze test betekent meer dan 10 km.

Stap 1: Basisstation bouwen

Basisstation bouwen
Basisstation bouwen
Basisstation bouwen
Basisstation bouwen

Computerbrede internetverbinding en een LoRa-modem aangesloten op de USB-poort.

Arduino Carkit ·

Het metrische vak

Anduino Mega aangesloten op serieel 2 op GPS-ontvanger en serieel 1 op LoRa-modem. Voor het opslaan van gegevens wordt een SD-kaart gebruikt.

Stap 2: De eerste test

De eerste test
De eerste test

· 10,6 Km op een pad door stedelijke centra, galerijen en langs de kust gemaakt met lussen

De verhouding tussen ontvangst / verzending was 321/500TX punt

RX-punt

Stap 3: Maak de interface

Maak de interface
Maak de interface
Maak de interface
Maak de interface

1 - Een nieuw project LoRa. opzetten

Druk op het pictogram tandwiel om de projectconfiguratie te openen

Stap 4: Meter toevoegen

Meter toevoegen
Meter toevoegen

2) Open de meterschuif.

· 3) Scroll naar de GPS.

· 4) Voeg er een toe aan het bureau.

Stap 5: Sleep Gauge GPS en voeg OpenStreetMap toe

Sleep Gauge GPS en voeg OpenStreetMap toe
Sleep Gauge GPS en voeg OpenStreetMap toe
Sleep Gauge GPS en voeg OpenStreetMap toe
Sleep Gauge GPS en voeg OpenStreetMap toe

· 5) OpenStreetMap-kaart toevoegen aan bureau

Door de component GPS op de pictogramkaart te slepen, wordt de OpenStreet-kaart gegenereerd.

Maak de interface

· 6) Wijzig kaartvernieuwing

Wijzig de verversingstijd van de kaart van 5000 in 10000

Stap 6: GPS-meter slepen en tabellogboek toevoegen

Sleep GPS-meter en voeg tabellogboek toe
Sleep GPS-meter en voeg tabellogboek toe

· 7) Voeg een tabellogmeter toe.

Door de meter boven de GPS-pictogramtabel te slepen, wordt een metertabellogboek gemaakt

· 8) Wijzig tabel log verversen. Wijzig de verversingstijd van de kaart van 5000 in 10000

Pas de positie van de meters aan

· 9) Sleepmeters pas de positie van de meters aan door ze over het scherm te slepen.

· 10) Project opslaan

Stap 7: code ophalen

Code ophalen
Code ophalen

10) Activeer codecontainer

Knop op knop rechtsboven, alles selecteren en basiscode kopiëren.

Stap 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Plak code op Arduino IDE

· 12) Bewerk code Voeg deze regel toe aan de definitie

Stap 9: coderingsdetails

Voeg deze regel toe aan de definitie

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

//** BIBLIOTHEEK ** //***************************************** *******************************

#include // ++ GPS-bibliotheek

#include // ++ SPI-bibliotheek #include

// ++ SD-bibliotheek//

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

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

// * SD-kaart als volgt aangesloten op de SPI-bus:

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

// (CS-pin kan worden gewijzigd) en pin #10 (SS) moet een uitvoer zijn

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

// (CS-pin kan worden gewijzigd) en pin #52 (SS) moet een uitvoer zijn

// ** Leonardo: maak verbinding met hardware-SPI via de ICSP-header

// Pin 4 hier gebruikt voor consistentie met andere Arduino-voorbeelden const int chipSelect = 53;

// ++ SD-pinkiezer

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

//** GPS ** //***************************************** *******************************

TinyGPS-gps; // ++ GPS op Serial2

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

bool newdataGPS = false; // ++

Voeg deze regel toe in de setup()

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

//** Seriële GPS-setup ** //**************************************** *******************************

Serial2.begin (9600); // ++

vertraging (1000); // ++

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

//** SD-initialisatie ** //**************************************** ******************************

// zorg ervoor dat de standaard chipselectiepin is ingesteld op // ++

// output, zelfs als je het niet gebruikt: // ++

pinMode (SS, UITGANG); // ++

Serial.println(F("Initialiseren SD-kaart…")); // ++

// kijk of de kaart aanwezig is en kan worden geïnitialiseerd: // ++

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

Serial.println(F("Kaart mislukt, of niet aanwezig")); // ++

// doe niets meer: // ++

opbrengst; // ++

} anders { // ++

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

} // ++

Voeg deze regels toe in loop() void

seriëleEvent2(); // ++ bel GPS seriële gebeurtenis

SeriaEvent2-code toevoegen

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

//** GPS serialEvent ** //**************************************** *******************************

void serialEvent2() { // ++

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

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

//Serial.print(c); // uncomment om onbewerkte GPS-gegevens te zien // ++

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

nieuwedataGPS = waar; // ++

pauze; // uncomment om nieuwe gegevens onmiddellijk af te drukken! // ++

} // ++

} // ++

} // ++

GPS-dump toevoegen voud

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

//** gps-dump ** //**************************************** *******************************

//** Het geldige breedtegraadbereik in graden is -90 en +90. **

//** Lengtegraad ligt tussen -180 en +180 **

//** met vermelding van de oost-west positie **

//** "123456789 1234567890" **

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

void gpsdump (TinyGPS & gps) // ++

{ // ++

int jaar; // ++

byte maand, dag, uur, minuut, seconde, honderdsten; // ++

ongetekende lange leeftijd; // ++

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

gps.crack_datetime(&jaar, &maand, &dag, &uur, // ++

&minuut, &seconde, &honderdsten, &leeftijd); // ++

lange lat, lon; // ++

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

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

// ** maak een string voor het samenstellen van de gegevens om te loggen: **

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

String dataString = ""; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "/"; // ++

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

dataString += "/"; // ++

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

dataString += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

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

//** OPSLAAN NAAR SD ** //**************************************** ***********************************

// open het bestand. merk op dat er slechts één bestand tegelijk kan zijn geopend, **

// dus je moet deze sluiten voordat je een andere opent. ** //************************************************** **************************

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

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

// ** als het bestand beschikbaar is, schrijf ernaar: **

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

if (gegevensbestand) { // ++

dataFile.println(dataString); // ++

dataFile.close(); // ++

} anders { // ++

Serial.println(F("FOUT SD-schrijven")); // ++

} // ++

}

Ga naar deze pagina als je de code wilt downloaden.

Aanbevolen: