Sommario:

Progetto Arduino: Modulo LoRa per test range RF1276 per soluzione di localizzazione GPS: 9 passaggi (con immagini)
Progetto Arduino: Modulo LoRa per test range RF1276 per soluzione di localizzazione GPS: 9 passaggi (con immagini)

Video: Progetto Arduino: Modulo LoRa per test range RF1276 per soluzione di localizzazione GPS: 9 passaggi (con immagini)

Video: Progetto Arduino: Modulo LoRa per test range RF1276 per soluzione di localizzazione GPS: 9 passaggi (con immagini)
Video: How to use LoRa Module with Arduino - Range Test - RYLR406 15KM 2024, Luglio
Anonim
Progetto Arduino: modulo LoRa RF1276 della gamma di test per la soluzione di localizzazione GPS
Progetto Arduino: modulo LoRa RF1276 della gamma di test per la soluzione di localizzazione GPS

Connessione: USB - Seriale

Necessità: browser Chrome

Necessità: 1 X Arduino Mega

Necessità: 1 X GPS

Necessità: 1 X scheda SD

Necessità: 2 X LoRa Modem RF1276

Funzione: Arduino Invia il valore GPS alla base principale - Dati di archiviazione della base principale in Dataino Server Modulo Lora: Ultra long range RF1276 di APPCONWIRELESS LoRa è una nuova tecnica di modulazione privata e a spettro esteso che consente di inviare dati a velocità estremamente basse a estremamente lunghe distanze. Il basso data rate (fino a pochi byte al secondo) e la modulazione LoRa portano a una sensibilità del ricevitore molto bassa, significa in questo test significa più di 10 km.

Passaggio 1: costruzione della stazione base

Costruzione della stazione base
Costruzione della stazione base
Costruzione della stazione base
Costruzione della stazione base

Connessione Internet a larghezza di computer e un modem LoRa collegato alla porta USB.

Kit per auto Arduino ·

La casella metrica

Anduino Mega collegato alla seriale 2 al ricevitore GPS e alla seriale 1 al modem LoRa. Una scheda SD viene utilizzata per memorizzare i dati.

Passaggio 2: Il primo test

Il primo test
Il primo test

· 10,6 Km su un percorso attraverso centri urbani, gallerie e lungo la costa realizzato ad anse

Il rapporto ricezione/trasmissione è stato di 321/500 punti TX

punto RX

Passaggio 3: creare l'interfaccia

Crea l'interfaccia
Crea l'interfaccia
Crea l'interfaccia
Crea l'interfaccia

1 - Imposta un nuovo progetto LoRa

Premi l'icona ingranaggio per aprire la configurazione del progetto

Passaggio 4: aggiungi indicatore

Aggiungi indicatore
Aggiungi indicatore

2) Aprire il cursore del manometro.

· 3) Scorrere fino al GPS.

· 4) Aggiungere uno alla scrivania.

Passaggio 5: trascinare Gauge GPS e aggiungere OpenStreetMap

Trascina GPS Gauge e aggiungi OpenStreetMap
Trascina GPS Gauge e aggiungi OpenStreetMap
Trascina GPS Gauge e aggiungi OpenStreetMap
Trascina GPS Gauge e aggiungi OpenStreetMap

· 5) Aggiungi la mappa OpenStreetMap alla scrivania

Trascinando il componente GPS sulla mappa delle icone, viene generata la mappa di OpenStreet.

Crea l'interfaccia

· 6) Cambia aggiornamento mappa

Modifica il tempo di aggiornamento della mappa da 5000 a 10000

Passaggio 6: trascina l'indicatore GPS e aggiungi registro tabella

Trascina l'indicatore GPS e aggiungi registro tabella
Trascina l'indicatore GPS e aggiungi registro tabella

· 7) Aggiungere un indicatore di registro tabella.

Trascinando l'indicatore sopra la tabella delle icone GPS viene creato il registro della tabella dell'indicatore

· 8) Modificare l'aggiornamento del registro della tabella. Modifica il tempo di aggiornamento della mappa da 5000 a 10000

Regolare la posizione degli indicatori

· 9) Gli indicatori di trascinamento regolano la posizione degli indicatori trascinandoli sullo schermo.

· 10) Salva progetto

Passaggio 7: ottieni il codice

Ottenere il codice
Ottenere il codice

10) Attiva contenitore codice

Pulsante in alto a destra, seleziona tutto e copia il codice base.

Passaggio 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Incolla il codice su Arduino IDE

· 12) Modifica codice Aggiungi questa riga nella definizione

Passaggio 9: dettagli di codifica

Aggiungi questa riga nella definizione

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

//** BIBLIOTECA ** //***************************************** ******************************

#include // ++ Libreria GPS

#include // ++ Libreria SPI #include

// ++ Libreria SD//

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

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

// * Scheda SD collegata al bus SPI come segue:

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

// (il pin CS può essere cambiato) e il pin #10 (SS) deve essere un'uscita

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

// (il pin CS può essere cambiato) e il pin #52 (SS) deve essere un'uscita

// ** Leonardo: Connetti all'hardware SPI tramite l'intestazione ICSP

// Pin 4 usato qui per coerenza con altri esempi di Arduino const int chipSelect = 53;

// ++ Selettore pin SD

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

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

Piccolo GPS GPS; // ++ GPS su Serial2

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

bool newdataGPS = false; // ++

Aggiungi questa riga in setup()

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

//** Configurazione seriale GPS ** //**************************************** ******************************

Serial2.begin(9600); // ++

ritardo(1000); // ++

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

//** Inizializzazione SD ** //**************************************** ******************************

// assicurati che il pin di selezione del chip predefinito sia impostato su // ++

// output, anche se non lo usi: // ++

pinMode(SS, USCITA); // ++

Serial.println(F("Inizializzazione scheda SD…")); // ++

// verifica se la scheda è presente e può essere inizializzata: // ++

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

Serial.println(F("Scheda non riuscita o non presente")); // ++

// non fare altro: // ++

Restituzione; // ++

} else { // ++

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

} // ++

Aggiungi queste righe in loop() void

serialEvent2(); // ++ chiama evento seriale GPS

Aggiungi il codice SeriaEvent2

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

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

void serialEvent2() { // ++

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

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

//Serial.print(c); // togli il commento per vedere i dati GPS grezzi // ++

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

newdataGPS = vero; // ++

rottura; // togli il commento per stampare i nuovi dati immediatamente! // ++

} // ++

} // ++

} // ++

Aggiungi vuoto dump GPS

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

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

//** L'intervallo valido di latitudine in gradi è -90 e +90. **

//** La longitudine è compresa tra -180 e +180 **

//** specificando la posizione est-ovest **

//** "123456789 1234567890" **

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

void gpsdump(TinyGPS e gps) // ++

{ // ++

int anno; // ++

byte mese, giorno, ora, minuto, secondo, centesimi; // ++

lunga età non firmata; // ++

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

gps.crack_datetime(&anno, &mese, &giorno, &ora, // ++

&minuto, &secondo, &centesimi, &età); // ++

lungo lat, lon; // ++

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

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

// ** crea una stringa per assemblare i dati da registrare: **

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

String dataString = ""; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "/"; // ++

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

dataString += "/"; // ++

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

dataString += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

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

//** SALVA SU SD ** //**************************************** ***********************************

//apro il file. nota che può essere aperto solo un file alla volta, **

// quindi devi chiudere questo prima di aprirne un altro. ** //********************************************* *************************

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

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

// ** se il file è disponibile, scrivici: **

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

if (dataFile) { // ++

dataFile.println(dataString); // ++

dataFile.close(); // ++

} else { // ++

Serial.println(F("Scrittura SD ERRORE")); // ++

} // ++

}

Se vuoi scaricare il codice, visita questa pagina.

Consigliato: