Innholdsfortegnelse:

Arduino Project: Test Range LoRa -modul RF1276 for GPS -sporing: 9 trinn (med bilder)
Arduino Project: Test Range LoRa -modul RF1276 for GPS -sporing: 9 trinn (med bilder)

Video: Arduino Project: Test Range LoRa -modul RF1276 for GPS -sporing: 9 trinn (med bilder)

Video: Arduino Project: Test Range LoRa -modul RF1276 for GPS -sporing: 9 trinn (med bilder)
Video: DIY IoT Conexión LoRa RF1276 DICIS UG 2024, November
Anonim
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Solution
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Solution

Tilkobling: USB - Seriell

Behov: Chrome -nettleser

Behov: 1 X Arduino Mega

Trenger: 1 X GPS

Trenger: 1 X SD -kort

Behov: 2 X LoRa -modem RF1276

Funksjon: Arduino Send GPS-verdi til hovedbasen-Hovedbase lagrer data i Dataino Server Lora Module: Ultra lang rekkevidde RF1276 fra APPCONWIRELESS LoRa er en ny, privat og spredt spektrum modulasjonsteknikk som gjør det mulig å sende data med ekstremt lave datahastigheter til ekstremt lange avstander. Den lave datahastigheten (ned til få byte per sekund) og LoRa-modulering fører til svært lav mottakerfølsomhet, betyr i denne testen mer enn 10 km.

Trinn 1: Bygg basestasjon

Bygger basestasjon
Bygger basestasjon
Bygger basestasjon
Bygger basestasjon

Datamaskinbredde Internett -tilkobling og et LoRa -modem koblet til USB -port.

Arduino bilmonteringssett ·

Den metriske boksen

Anduino Mega koblet til seriell 2 til GPS -mottaker, og serie 1 til LoRa -modem. Et SD -kort brukes til lagringsdata.

Trinn 2: Den første testen

Den første testen
Den første testen

· 10,6 km på en sti gjennom bysentre, gallerier og langs kysten laget med løkker

Forholdet mellom mottak /overføring har vært på 321 /500TX punkt

RX -punkt

Trinn 3: Lag grensesnittet

Lag grensesnittet
Lag grensesnittet
Lag grensesnittet
Lag grensesnittet

1 - Sett opp et nytt prosjekt LoRa

Trykk på ikonet for å åpne prosjektkonfigurasjonen

Trinn 4: Legg til måler

Legg til måler
Legg til måler

2) Åpne målerens glidebryter.

· 3) Bla til GPS -en.

· 4) Legg en til skrivebordet.

Trinn 5: Dra Gauge GPS og legg til OpenStreetMap

Dra Gauge GPS og legg til OpenStreetMap
Dra Gauge GPS og legg til OpenStreetMap
Dra Gauge GPS og legg til OpenStreetMap
Dra Gauge GPS og legg til OpenStreetMap

· 5) Legg til OpenStreetMap -kartet på skrivebordet

Når du drar komponent -GPS -en på ikonet, genereres OpenStreet -kart.

Lag grensesnittet

· 6) Endre kartoppdatering

Endre kartoppdateringstiden fra 5000 til 10000

Trinn 6: Dra GPS -måler og Legg til tabelllogg

Dra GPS -måler og Legg til tabelllogg
Dra GPS -måler og Legg til tabelllogg

· 7) Legg til en tabellloggmåler.

Ved å dra måleren over GPS -ikonet tabellen opprettes målertabelloggen

· 8) Endre tabellloggoppdatering. Endre kartoppdateringstiden fra 5000 til 10000

Juster posisjonen til målerne

· 9) Dragmålere justerer posisjonen til målerne ved å dra dem over skjermen.

· 10) Lagre prosjekt

Trinn 7: Få kode

Få kode
Få kode

10) Aktiver kodebeholder

Knapp øverst til høyre, velg alle og kopier grunnkoden.

Trinn 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Lim inn koden på Arduino IDE

· 12) Rediger kode Legg til denne linjen i definisjonen

Trinn 9: Kodingsdetaljer

Legg til denne linjen i definisjonen

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

// ** BIBLIOTEK ** // ***************************************** ********************************

#inkludere // ++ GPS -bibliotek

#include // ++ SPI -bibliotek #include

// ++ SD -bibliotek //

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

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

// * SD -kort festet til SPI -bussen som følger:

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

// (CS -pin kan endres) og pin #10 (SS) må være en utgang

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

// (CS -pin kan endres) og pin #52 (SS) må være en utgang

// ** Leonardo: Koble til maskinvare -SPI via ICSP -toppteksten

// Pin 4 brukt her for konsistens med andre Arduino -eksempler const int chipSelect = 53;

// ++ SD -pinvelger

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

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

TinyGPS gps; // ++ GPS på Serial2

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

bool newdataGPS = false; // ++

Legg til denne linjen i oppsettet ()

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

// ** GPS -seriell oppsett ** // *************************************** ********************************

Serial2.begin (9600); // ++

forsinkelse (1000); // ++

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

// ** SD -initialisering ** // **************************************** *******************************

// sørg for at standard chip -valgnål er satt til // ++

// output, selv om du ikke bruker den: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("Initialiserer SD -kort …")); // ++

// se om kortet er tilstede og kan initialiseres: // ++

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

Serial.println (F ("Kort mislyktes, eller finnes ikke")); // ++

// ikke gjør noe mer: // ++

komme tilbake; // ++

} annet {// ++

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

} // ++

Legg til disse linjene i loop () void

serialEvent2 (); // ++ ring GPS -seriell hendelse

Legg til SeriaEvent2 -kode

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

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

void serialEvent2 () {// ++

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

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

//Serial.print(c); // uncomment for å se rå GPS -data // ++

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

newdataGPS = true; // ++

gå i stykker; // kommenterer ikke å skrive ut nye data umiddelbart! // ++

} // ++

} // ++

} // ++

Legg til GPS dump voud

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

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

// ** Gyldig breddegrad i grader er -90 og +90. **

// ** Lengdegrad er i området -180 og +180 **

// ** spesifiserer øst-vest-posisjon **

//** "123456789 1234567890" **

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

void gpsdump (TinyGPS & gps) // ++

{ // ++

int år; // ++

byte måned, dag, time, minutt, sekund, hundredeler; // ++

usignert lang alder; // ++

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

gps.crack_datetime (& år, & måned, & dag, & time, // ++

& minutt, & andre, & hundredeler, & alder); // ++

lang lat, lon; // ++

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

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

// ** lag en streng for å samle data til logg: **

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

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 (måned)); // ++

dataString += "/"; // ++

dataString += String (år); // ++

dataString += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

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

// ** LAGRE TIL SD ** // *************************************** *********************************

// åpne filen. Vær oppmerksom på at bare en fil kan være åpen om gangen, **

// så du må lukke denne før du åpner en annen. ** // ********************************************** ****************************

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

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

// ** hvis filen er tilgjengelig, skriv til den: **

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

if (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} annet {// ++

Serial.println (F ("FEIL SD -skrive")); // ++

} // ++

}

Hvis du vil laste ned koden, kan du gå til denne siden.

Anbefalt: