Indholdsfortegnelse:

Arduino -projekt: Test Range LoRa -modul RF1276 til GPS -sporingsløsning: 9 trin (med billeder)
Arduino -projekt: Test Range LoRa -modul RF1276 til GPS -sporingsløsning: 9 trin (med billeder)

Video: Arduino -projekt: Test Range LoRa -modul RF1276 til GPS -sporingsløsning: 9 trin (med billeder)

Video: Arduino -projekt: Test Range LoRa -modul RF1276 til GPS -sporingsløsning: 9 trin (med billeder)
Video: 💦 Medidor de nivel de agua remoto con módulos lora DRF1276DM/DRF1278DM y Arduino - PCBWay.es 2024, December
Anonim
Arduino Project: Test Range LoRa -modul RF1276 til GPS Tracking Solution
Arduino Project: Test Range LoRa -modul RF1276 til GPS Tracking Solution

Forbindelse: USB - Seriel

Behov: Chrome Browser

Behov: 1 X Arduino Mega

Behov: 1 x GPS

Behov: 1 X SD -kort

Behov: 2 X LoRa -modem RF1276

Funktion: Arduino Send GPS-værdi til hovedbasen-Hovedbase lagrer data i Dataino Server Lora Modul: Ultra long range RF1276 fra APPCONWIRELESS LoRa er en ny, privat og spredt spektrum moduleringsteknik, der gør det muligt at sende data ved ekstremt lave datahastigheder til ekstremt ekstreme lange afstande. Den lave datahastighed (ned til få bytes pr. Sekund) og LoRa-modulering fører til meget lav modtagerfølsomhed, hvilket betyder, at denne test betyder mere end 10 km.

Trin 1: Bygning af basestation

Bygning af basestation
Bygning af basestation
Bygning af basestation
Bygning af basestation

Computerbredde internetforbindelse og et LoRa -modem tilsluttet USB -port.

Arduino bilsæt ·

Den metriske boks

Anduino Mega tilsluttet seriel 2 til GPS -modtager og Serial 1 til LoRa -modem. Et SD -kort bruges til lagringsdata.

Trin 2: Den første test

Den første test
Den første test

· 10,6 km på en sti gennem bycentre, gallerier og langs kysten lavet med sløjfer

Forholdet mellem modtagelse /transmission har været på 321 /500TX punkt

RX -punkt

Trin 3: Opret grænsefladen

Opret grænsefladen
Opret grænsefladen
Opret grænsefladen
Opret grænsefladen

1 - Opret et nyt projekt LoRa

Tryk på ikonet for at åbne projektkonfiguration

Trin 4: Tilføj måler

Tilføj måler
Tilføj måler

2) Åbn målerens skyder.

· 3) Rul til GPS'en.

· 4) Føj en til skrivebordet.

Trin 5: Træk Gauge GPS og tilføj OpenStreetMap

Træk Gauge GPS og tilføj OpenStreetMap
Træk Gauge GPS og tilføj OpenStreetMap
Træk Gauge GPS og tilføj OpenStreetMap
Træk Gauge GPS og tilføj OpenStreetMap

· 5) Tilføj OpenStreetMap -kort til skrivebordet

Ved at trække komponent -GPS'en på ikonkortet genereres OpenStreet -kort.

Opret grænsefladen

· 6) Skift kortopdatering

Skift kortopdateringstid fra 5000 til 10000

Trin 6: Træk GPS -måler og tilføj tabellog

Træk GPS -måler og tilføj tabellog
Træk GPS -måler og tilføj tabellog

· 7) Tilføj en tabellog -måler.

Ved at trække måleren over GPS -ikonetabellen oprettes målertabelloggen

· 8) Skift tabellogopdatering. Skift kortopdateringstid fra 5000 til 10000

Juster målernes position

· 9) Trækmålere justerer målernes position ved at trække dem hen over skærmen.

· 10) Gem projekt

Trin 7: Hent kode

Få kode
Få kode

10) Aktiver kodebeholder

Knap øverst til højre, vælg alle og kopier basiskoden.

Trin 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Indsæt kode på Arduino IDE

· 12) Rediger kode Tilføj denne linje i definitionen

Trin 9: Kodningsoplysninger

Tilføj denne linje i definitionen

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

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

#include // ++ GPS -bibliotek

#include // ++ SPI -bibliotek #include

// ++ SD -bibliotek //

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

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

// * SD -kort knyttet til SPI -bus som følger:

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

// (CS -pin kan ændres) og pin #10 (SS) skal være en output

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

// (CS -pin kan ændres) og pin #52 (SS) skal være en output

// ** Leonardo: Opret forbindelse til hardware SPI via ICSP -overskriften

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

// ++ SD pin -vælger

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

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

TinyGPS gps; // ++ GPS på Serial2

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

bool newdataGPS = falsk; // ++

Tilføj denne linje i opsætningen ()

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

// ** Seriel GPS -opsætning ** // *************************************** ********************************

Serial2.begyndt (9600); // ++

forsinkelse (1000); // ++

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

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

// sørg for, at standardchip -valgnålen er indstillet til // ++

// output, selvom du ikke bruger det: // ++

pinMode (SS, OUTPUT); // ++

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

// se om kortet er til stede og kan initialiseres: // ++

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

Serial.println (F ("Kort mislykkedes eller findes ikke")); // ++

// ikke gør noget mere: // ++

Vend tilbage; // ++

} andet {// ++

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

} // ++

Tilføj disse linjer i loop () void

serialEvent2 (); // ++ opkald GPS seriel begivenhed

Tilføj SeriaEvent2 -kode

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

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

void serialEvent2 () {// ++

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

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

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

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

newdataGPS = true; // ++

pause; // kommenter ikke om at udskrive nye data med det samme! // ++

} // ++

} // ++

} // ++

Tilføj GPS dump voud

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

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

// ** Det gyldige breddegrad i grader er -90 og +90. **

// ** Længdegrad er i området -180 og +180 **

// ** angivelse af øst-vest-position **

//** "123456789 1234567890" **

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

void gpsdump (TinyGPS & gps) // ++

{ // ++

int år; // ++

byte måned, dag, time, minut, sekund, hundrededele; // ++

usigneret lang alder; // ++

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

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

& minut, & andet, & hundrededele, & alder); // ++

lang lat, lon; // ++

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

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

// ** lav en streng til samling af data til log: **

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

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 (minut)); // ++

dataString += ":"; // ++

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

// ** GEM TIL SD ** // *************************************** **********************************

// Åbn filen. Bemærk, at kun en fil kan være åben ad gangen, **

// så du skal lukke denne, før du åbner en anden. ** // ********************************************** ****************************

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

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

// ** hvis filen er tilgængelig, skal du skrive til den: **

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

hvis (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} andet {// ++

Serial.println (F ("FEJL SD -skrivning")); // ++

} // ++

}

Hvis du vil downloade koden, kan du besøge denne side.

Anbefalede: