Taula de continguts:

Projecte Arduino: Prova del mòdul LoRa RF1276 per al seguiment GPS Solució: 9 passos (amb imatges)
Projecte Arduino: Prova del mòdul LoRa RF1276 per al seguiment GPS Solució: 9 passos (amb imatges)

Vídeo: Projecte Arduino: Prova del mòdul LoRa RF1276 per al seguiment GPS Solució: 9 passos (amb imatges)

Vídeo: Projecte Arduino: Prova del mòdul LoRa RF1276 per al seguiment GPS Solució: 9 passos (amb imatges)
Vídeo: CS50 2015 - Week 4 2024, Desembre
Anonim
Projecte Arduino: Prova del mòdul LoRa RF1276 per a la solució de seguiment GPS
Projecte Arduino: Prova del mòdul LoRa RF1276 per a la solució de seguiment GPS

Connexió: USB - sèrie

Necessitat: navegador Chrome

Necessitat: 1 X Arduino Mega

Necessitat: 1 X GPS

Necessitat: 1 targeta SD X.

Necessitat: 2 X mòdem LoRa RF1276

Funció: Arduino Enviar valor GPS a la base principal: dades principals del magatzem de la base en el mòdul Lora del servidor Dataino: RF1276 d’alt abast RF1276 d’APPCONWIRELESS LoRa és una nova tècnica de modulació d’espectre privat i privat que permet enviar dades a velocitats de dades extremadament baixes. de llarg abast. La baixa velocitat de dades (fins a pocs bytes per segon) i la modulació LoRa condueixen a una sensibilitat del receptor molt baixa, cosa que significa que en aquesta prova es supera els 10 km.

Pas 1: Construir l'estació base

Edifici Estació Base
Edifici Estació Base
Edifici Estació Base
Edifici Estació Base

Connexió a Internet d’amplada de l’ordinador i un mòdem LoRa connectat al port USB.

Kit de cotxes Arduino ·

La caixa mètrica

Anduino Mega connectat a la sèrie 2 al receptor GPS, i la sèrie 1 al mòdem LoRa. S'utilitza una targeta SD per a les dades de la botiga.

Pas 2: la primera prova

La primera prova
La primera prova

· 10,6 Km per un camí a través de nuclis urbans, galeries i al llarg de la costa feta amb bucles

La proporció de recepció / transmissió ha estat de 321 / 500TX punt

Punt RX

Pas 3: creeu la interfície

Creeu la interfície
Creeu la interfície
Creeu la interfície
Creeu la interfície

1 - Configureu un nou projecte LoRa

Premeu la icona d'engranatge per obrir la configuració del projecte

Pas 4: afegiu un indicador

Afegiu un indicador
Afegiu un indicador

2) Obriu el control lliscant de l'indicador.

· 3) Desplaceu-vos fins al GPS.

· 4) Afegiu-ne un a l'escriptori.

Pas 5: arrossegueu el GPS Gauge i afegiu OpenStreetMap

Arrossegueu el GPS Gauge i afegiu OpenStreetMap
Arrossegueu el GPS Gauge i afegiu OpenStreetMap
Arrossegueu el GPS Gauge i afegiu OpenStreetMap
Arrossegueu el GPS Gauge i afegiu OpenStreetMap

· 5) Afegiu el mapa OpenStreetMap al taulell

En arrossegar el component GPS al mapa d’icones, es genera un mapa d’OpenStreet.

Creeu la interfície

· 6) Canviar l'actualització del mapa

Canvieu el temps d’actualització del mapa de 5000 a 10000

Pas 6: arrossegueu l'indicador GPS i afegiu el registre de la taula

Arrossegueu l'indicador GPS i afegiu el registre de la taula
Arrossegueu l'indicador GPS i afegiu el registre de la taula

· 7) Afegiu un indicador de registre de taula.

En arrossegar l’indicador per sobre de la taula d’icones GPS es crea el registre de la taula d’indicadors

· 8) Canvieu l'actualització del registre de la taula. Canvieu el temps d’actualització del mapa de 5000 a 10000

Ajusteu la posició dels indicadors

· 9) Els indicadors d'arrossegament ajusten la posició dels indicadors arrossegant-los per la pantalla.

· 10) Desa el projecte

Pas 7: Obteniu el codi

Obtenir el codi
Obtenir el codi

10) Activeu el contenidor de codi

Feu clic al botó superior dret, seleccioneu-ho tot i copieu el codi base.

Pas 8: Arduino IDE

IDE Arduino
IDE Arduino

· 11) Enganxa el codi a Arduino IDE

· 12) Edita el codi Afegiu aquesta línia a la definició

Pas 9: detalls de codificació

Afegiu aquesta línia a la definició

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

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

#include // ++ Biblioteca GPS

#include // ++ Biblioteca SPI #include

// ++ biblioteca SD //

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

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

// * Targeta SD connectada al bus SPI de la següent manera:

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

// (el pin CS es pot canviar) i el pin # 10 (SS) ha de ser una sortida

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

// (el PIN CS es pot canviar) i el PIN # 52 (SS) ha de ser una sortida

// ** Leonardo: connecteu-vos al maquinari SPI mitjançant la capçalera ICSP

// Pin 4 utilitzat aquí per a la coherència amb altres exemples d'Arduino const int chipSelect = 53;

// ++ Selector de pin SD

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

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

TinyGPS gps; // ++ GPS a Serial2

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

bool newdataGPS = false; // ++

Afegiu aquesta línia a la configuració ()

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

// ** Configuració sèrie GPS ** // **************************************** *********************************

Serial2.begin (9600); // ++

retard (1000); // ++

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

// ** Inicialització SD ** // ***************************************** ********************************

// assegureu-vos que el pin de selecció de xip per defecte estigui definit a // ++

// sortida, encara que no l'utilitzeu: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("Inicialització de la targeta SD …")); // ++

// veure si la targeta és present i es pot inicialitzar: // ++

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

Serial.println (F ( La targeta ha fallat o no està present))); // ++

// no facis res més: // ++

tornar; // ++

} else {// ++

Serial.println (F ("La targeta SD està bé")); // ++

} // ++

Afegiu aquestes línies a bucle () void

serialEvent2 (); // + + Esdeveniment serial GPS de trucades

Afegiu el codi SeriaEvent2

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

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

void serialEvent2 () {// ++

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

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

//Serial.print(c); // descomenta per veure dades GPS crues // ++

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

newdataGPS = true; // ++

trencar; // descomenta per imprimir dades noves immediatament. // ++

} // ++

} // ++

} // ++

Afegiu el buidatge GPS voud

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

// ** abocament de gps ** // ***************************************** **********************************

// ** L'interval de latitud vàlid en graus és -90 i +90. **

// ** La longitud es troba entre -180 i +180 **

// ** especificant la posició est-oest **

//** "123456789 1234567890" **

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

void gpsdump (TinyGPS i gps) // ++

{ // ++

int any; // ++

bytes mes, dia, hora, minut, segon, centèsimes; // ++

llarga edat sense signar; // ++

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

gps.crack_datetime (& any, & mes, & day, & hour, // ++

& minute, & second, & centèsimes, & age); // ++

llarg lat, lon; // ++

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

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

// ** fes una cadena per reunir les dades al registre: **

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

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

dataString + = "/"; // ++

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

dataString + = "/"; // ++

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

dataString + = ";"; // ++

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

dataString + = ":"; // ++

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

dataString + = ":"; // ++

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

// ** DESA A SD ** // **************************************** ***********************************

// obriu el fitxer. Tingueu en compte que només es pot obrir un fitxer alhora, **

// per tant, heu de tancar-la abans d’obrir-ne una altra. ** // *********************************************** ***************************

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

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

// ** si el fitxer està disponible, escriviu-hi: **

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

if (fitxer de dades) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} else {// ++

Serial.println (F ("ERROR SD Write")); // ++

} // ++

}

Si voleu descarregar el codi, visiteu aquesta pàgina.

Recomanat: