Kazalo:

Arduino projekt: Testni razpon LoRa modul RF1276 za rešitev GPS sledenja: 9 korakov (s slikami)
Arduino projekt: Testni razpon LoRa modul RF1276 za rešitev GPS sledenja: 9 korakov (s slikami)

Video: Arduino projekt: Testni razpon LoRa modul RF1276 za rešitev GPS sledenja: 9 korakov (s slikami)

Video: Arduino projekt: Testni razpon LoRa modul RF1276 za rešitev GPS sledenja: 9 korakov (s slikami)
Video: Range Experiments with local LoRa Network based on Arduino ESP32 (EP14) 2024, Julij
Anonim
Arduino projekt: LoRa modul testnega območja RF1276 za rešitev za sledenje GPS
Arduino projekt: LoRa modul testnega območja RF1276 za rešitev za sledenje GPS

Priključek: USB - serijski

Potrebujete: brskalnik Chrome

Potrebujete: 1 X Arduino Mega

Potrebujete: 1 x GPS

Potrebujete: 1 x SD kartica

Potrebujete: 2 x LoRa modem RF1276

Funkcija: Arduino Pošlji vrednost GPS v glavno bazo-Podatki glavne baze shranijo v modulu Dataino Server Lora: RF1276 ultra dolgega dosega iz APPCONWIRELESS LoRa je nova, zasebna in modulirana tehnika razpršenega spektra, ki omogoča pošiljanje podatkov po izjemno nizkih hitrostih dolge razdalje. Nizka hitrost prenosa podatkov (do nekaj bajtov na sekundo) in LoRa modulacija vodijo do zelo nizke občutljivosti sprejemnika, kar pomeni, da v tem testu pomeni več kot 10 km.

1. korak: Gradnja bazne postaje

Gradnja bazne postaje
Gradnja bazne postaje
Gradnja bazne postaje
Gradnja bazne postaje

Računalniška internetna povezava in modem LoRa, priključen na vrata USB.

Komplet za avto Arduino ·

Metrično polje

Anduino Mega priključen na serijski 2 na sprejemnik GPS in serijski 1 na modem LoRa. Za shranjevanje podatkov se uporablja kartica SD.

2. korak: Prvi test

Prvi test
Prvi test

· 10,6 km na poti skozi urbana središča, galerije in ob obali z zankami

Razmerje med sprejemom /prenosom je bilo 321 /500TX

RX točka

3. korak: Ustvarite vmesnik

Ustvarite vmesnik
Ustvarite vmesnik
Ustvarite vmesnik
Ustvarite vmesnik

1 - Nastavite nov projekt LoRa

Pritisnite ikono zobnika, da odprete konfiguracijo projekta

4. korak: Dodajte merilnik

Dodaj merilnik
Dodaj merilnik

2) Odprite drsnik merilnika.

· 3) Pomaknite se do GPS.

· 4) Dodajte eno na mizo.

5. korak: Povlecite merilnik GPS in dodajte OpenStreetMap

Povlecite merilnik GPS in dodajte OpenStreetMap
Povlecite merilnik GPS in dodajte OpenStreetMap
Povlecite merilnik GPS in dodajte OpenStreetMap
Povlecite merilnik GPS in dodajte OpenStreetMap

· 5) Dodajte zemljevid OpenStreetMap na mizo

Če povlečete komponento GPS na zemljevid ikon, se ustvari zemljevid OpenStreet.

Ustvarite vmesnik

· 6) Spremenite osvežitev zemljevida

Spremenite čas osveževanja zemljevida s 5000 na 10000

Korak 6: Povlecite GPS Gauge in dodajte dnevnik tabele

Povlecite GPS Gauge in dodajte dnevnik tabele
Povlecite GPS Gauge in dodajte dnevnik tabele

· 7) Dodajte merilnik tabele dnevnika.

Z vlečenjem merilnika nad tabelo ikon GPS se ustvari dnevnik tabele merilnikov

· 8) Spremeni osvežitev dnevnika tabele. Spremenite čas osveževanja zemljevida s 5000 na 10000

Prilagodite položaj merilnikov

· 9) Merilniki vlečenja prilagodijo položaj merilnikov tako, da jih povlečejo po zaslonu.

· 10) Shrani projekt

7. korak: Pridobite kodo

Pridobite kodo
Pridobite kodo

10) Aktivirajte vsebnik kod

Gumb v zgornjem desnem kotu, izberite vse in kopirajte osnovno kodo.

8. korak: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Prilepite kodo v Arduino IDE

· 12) Urejanje kode Dodajte to vrstico v definicijo

9. korak: Podrobnosti o kodiranju

To vrstico dodajte v definicijo

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

//** KNJIŽNICA ** //***************************************** ******************************

#include // ++ knjižnica GPS

#include // ++ knjižnica SPI #include

// ++ knjižnica SD //

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

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

// * SD kartica, priključena na vodilo SPI:

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

// (pin CS je mogoče spremeniti) in pin #10 (SS) morata biti izhod

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

// (pin CS je mogoče spremeniti) in pin #52 (SS) morata biti izhod

// ** Leonardo: Povežite se s strojno opremo SPI preko glave ICSP

// Pin 4, ki se tukaj uporablja za skladnost z drugimi primeri Arduina const int chipSelect = 53;

// ++ izbirnik zatičev SD

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

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

TinyGPS GPS; // ++ GPS na Serial2

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

bool newdataGPS = napačno; // ++

Dodajte to vrstico v setup ()

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

// ** serijska nastavitev GPS ** // *************************************** ******************************

Serial2.begin (9600); // ++

zamuda (1000); // ++

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

// ** SD inicializacija ** // ************************************** *******************************

// Prepričajte se, da je privzeti zatič za izbiro čipa nastavljen na // ++

// izhod, tudi če ga ne uporabljate: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("Inicializiranje kartice SD …")); // ++

// preverite, ali je kartica prisotna in jo je mogoče inicializirati: // ++

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

Serial.println (F ("Kartica ni uspela ali ni prisotna")); // ++

// ne delajte ničesar več: // ++

vrnitev; // ++

} else {// ++

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

} // ++

Dodajte te vrstice v loop () void

serialEvent2 (); // ++ klic zaporednega dogodka GPS

Dodajte kodo SeriaEvent2

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

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

void serialEvent2 () {// ++

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

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

//Serial.print(c); // komentirajte, če si želite ogledati surove podatke GPS // ++

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

newdataGPS = res; // ++

prekiniti; // ne komentirajte, da takoj natisnete nove podatke! // ++

} // ++

} // ++

} // ++

Dodajte izmet GPS

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

// ** dump GPS ** // ************************************** *********************************

// ** Veljavno območje zemljepisne širine v stopinjah je -90 in +90. **

// ** Zemljepisna dolžina je v območju -180 in +180 **

// ** določa položaj vzhod-zahod **

//** "123456789 1234567890" **

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

void gpsdump (TinyGPS & gps) // ++

{ // ++

int leto; // ++

bajt mesec, dan, ura, minuta, sekunda, stotine; // ++

nepodpisana dolga starost; // ++

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

gps.crack_datetime (& leto, & mesec, & dan, & ura, // ++

& minute, & second, & stotine, & age); // ++

dolg lat, lon; // ++

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

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

// ** naredite niz za sestavljanje podatkov v dnevnik: **

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

Niz dataString = ""; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

dataString += niz (static_cast (dan)); // ++

dataString += "/"; // ++

dataString += niz (static_cast (mesec)); // ++

dataString += "/"; // ++

dataString += niz (leto); // ++

dataString += ";"; // ++

dataString += niz (static_cast (ura)); // ++

dataString += ":"; // ++

dataString += niz (static_cast (minuta)); // ++

dataString += ":"; // ++

dataString += niz (static_cast (drugo)); // ++ // ****************************************** *****************************

// ** SHRANI NA SD ** // *************************************** ********************************

// odpremo datoteko. upoštevajte, da je lahko hkrati odprta samo ena datoteka, **

// zato morate to zapreti, preden odprete drugo. ** // ******************************************** ***************************

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

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

// ** če je datoteka na voljo, ji napišite: **

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

if (podatkovna datoteka) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} else {// ++

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

} // ++

}

Če želite prenesti kodo, obiščite to stran.

Priporočena: