Turinys:

„Arduino“projektas: „LoRa“modulio RF1276 bandymo diapazonas GPS sekimui Sprendimas: 9 žingsniai (su paveikslėliais)
„Arduino“projektas: „LoRa“modulio RF1276 bandymo diapazonas GPS sekimui Sprendimas: 9 žingsniai (su paveikslėliais)

Video: „Arduino“projektas: „LoRa“modulio RF1276 bandymo diapazonas GPS sekimui Sprendimas: 9 žingsniai (su paveikslėliais)

Video: „Arduino“projektas: „LoRa“modulio RF1276 bandymo diapazonas GPS sekimui Sprendimas: 9 žingsniai (su paveikslėliais)
Video: proyecto lora sx1276 tx pic 18f67k22 rx arduino uno 2024, Lapkritis
Anonim
„Arduino“projektas: bandymų diapazono „LoRa“modulis RF1276, skirtas GPS sekimo sprendimui
„Arduino“projektas: bandymų diapazono „LoRa“modulis RF1276, skirtas GPS sekimo sprendimui

Prijungimas: USB - nuoseklus

Reikia: „Chrome“naršyklės

Reikia: 1 X „Arduino Mega“

Reikia: 1 X GPS

Reikia: 1 x SD kortelės

Reikia: 2 X „LoRa“modemo RF1276

Funkcija: „Arduino“Siųsti GPS reikšmę į pagrindinę bazę-Pagrindinė bazė saugo duomenis „Dataino Server Lora“modulyje: Itin ilgas diapazonas RF1276 iš APPCONWIRELESS LoRa yra nauja, privati ir išplėstinio spektro moduliavimo technika, leidžianti siųsti duomenis itin mažu duomenų perdavimo greičiu ilgi atstumai. Mažas duomenų perdavimo greitis (iki kelių baitų per sekundę) ir „LoRa“moduliacija lemia labai mažą imtuvo jautrumą, todėl šiame bandyme reiškia daugiau nei 10 km.

1 žingsnis: pastatykite bazinę stotį

Pastato bazinė stotis
Pastato bazinė stotis
Pastato bazinė stotis
Pastato bazinė stotis

Prie kompiuterio prijungtas kompiuterio pločio interneto ryšys ir „LoRa“modemas.

„Arduino“automobilių rinkinys ·

Metrinė dėžutė

„Anduino Mega“prijungtas prie 2 serijos prie GPS imtuvo ir 1 serijos prie „LoRa“modemo. SD kortelė naudojama duomenims saugoti.

2 žingsnis: pirmasis bandymas

Pirmasis Bandymas
Pirmasis Bandymas

· 10,6 km kelyje per miesto centrus, galerijas ir palei pakrantę, padarytą kilpomis

Priėmimo /perdavimo santykis buvo 321 /500TX taškas

RX taškas

3 žingsnis: sukurkite sąsają

Sukurkite sąsają
Sukurkite sąsają
Sukurkite sąsają
Sukurkite sąsają

1 - Sukurkite naują projektą „LoRa“

Norėdami atidaryti projekto konfigūraciją, paspauskite piktogramą „Cog“

4 žingsnis: pridėkite matuoklį

Pridėti matuoklį
Pridėti matuoklį

2) Atidarykite matuoklio slankiklį.

· 3) Pereikite prie GPS.

· 4) Pridėkite vieną prie stalo.

5 veiksmas: vilkite GPS matuoklį ir pridėkite „OpenStreetMap“

Vilkite GPS matuoklį ir pridėkite „OpenStreetMap“
Vilkite GPS matuoklį ir pridėkite „OpenStreetMap“
Vilkite GPS matuoklį ir pridėkite „OpenStreetMap“
Vilkite GPS matuoklį ir pridėkite „OpenStreetMap“

· 5) Pridėkite „OpenStreetMap“žemėlapį prie stalo

Vilkiant GPS komponentą piktogramų žemėlapyje, sukuriamas „OpenStreet“žemėlapis.

Sukurkite sąsają

· 6) Pakeiskite žemėlapio atnaujinimą

Pakeiskite žemėlapio atnaujinimo laiką nuo 5000 iki 10000

6 veiksmas: vilkite GPS matuoklį ir pridėkite lentelės žurnalą

Vilkite GPS matuoklį ir pridėkite lentelės žurnalą
Vilkite GPS matuoklį ir pridėkite lentelės žurnalą

· 7) Pridėkite lentelės žurnalo matuoklį.

Vilkiant matuoklį virš GPS piktogramų lentelės, sukuriamas matuoklio lentelės žurnalas

· 8) Keisti lentelės žurnalo atnaujinimą. Pakeiskite žemėlapio atnaujinimo laiką nuo 5000 iki 10000

Sureguliuokite matuoklių padėtį

· 9) Vilkimo matuokliai sureguliuoja matuoklių padėtį vilkdami juos per ekraną.

· 10) Išsaugoti projektą

7 žingsnis: Gaukite kodą

Gauti kodą
Gauti kodą

10) Suaktyvinkite kodo talpyklą

Mygtukas viršuje dešinėje, pasirinkite viską ir nukopijuokite pagrindinį kodą.

8 žingsnis: „Arduino IDE“

„Arduino IDE“
„Arduino IDE“

· 11) Įklijuokite kodą „Arduino IDE“

· 12) Redaguoti kodą Įtraukite šią eilutę į apibrėžimą

9 žingsnis: Išsami kodavimo informacija

Įtraukite šią eilutę į apibrėžimą

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

// ** BIBLIOTEKA ** // **************************************** ********************************

#include // ++ GPS biblioteka

#įtraukimas // ++ SPI biblioteka #įtraukimas

// ++ SD biblioteka //

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

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

// * SD kortelė, prijungta prie SPI magistralės taip:

// ** UNO: MOSI - 11 kaištis, MISO - 12 kaištis, CLK - 13 kaištis, CS - 4 kaištis

// (CS kaištį galima pakeisti) ir kaištis #10 (SS) turi būti išvestis

// ** Mega: MOSI - 51 kaištis, MISO - 50 kaištis, CLK - 52 kaištis, CS - 53 kaištis

// (CS kaištį galima pakeisti) ir kaištis #52 (SS) turi būti išvestis

// ** „Leonardo“: prisijunkite prie aparatinės įrangos SPI per ICSP antraštę

// Čia naudojamas 4 kaištis, siekiant nuoseklumo su kitais „Arduino“pavyzdžiais const int chipSelect = 53;

// ++ SD kaiščio parinkiklis

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

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

„TinyGPS“GPS; // ++ GPS Serial2

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

bool newdataGPS = klaidinga; // ++

Pridėkite šią eilutę prie sąrankos ()

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

// ** GPS serijos sąranka ** // *************************************** ********************************

Serial2.begin (9600); // ++

vėlavimas (1000); // ++

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

// ** SD inicijavimas ** // *************************************** *******************************

// įsitikinkite, kad numatytasis lusto pasirinkimo kaištis nustatytas į // ++

// išvestis, net jei jos nenaudojate: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("SD kortelės inicijavimas …")); // ++

// pažiūrėkite, ar kortelė yra ir ar ją galima inicijuoti: // ++

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

Serial.println (F („Kortelė nepavyko arba jos nėra“)); // ++

// daugiau nieko nedaryk: // ++

grįžti; // ++

} kitas {// ++

Serial.println (F („SD kortelė OK“)); // ++

} // ++

Pridėkite šias eilutes į loop () void

serialEvent2 (); // ++ skambinti GPS serijiniu įvykiu

Pridėkite „SeriaEvent2“kodą

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

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

void serialEvent2 () {// ++

tuo tarpu (Serial2.available ()) {// ++

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

// Serijos.spaudas (c); // atšaukti, kad pamatytumėte neapdorotus GPS duomenis // ++

jei (gps.kodas (c)) {// ++

newdataGPS = tiesa; // ++

pertrauka; // nekomentuokite nedelsiant spausdinti naujus duomenis! // ++

} // ++

} // ++

} // ++

Pridėti GPS iškėlimą

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

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

// ** Galiojantis platumos diapazonas laipsniais yra -90 ir +90. **

// ** Ilguma yra -180 ir +180 diapazone **

// ** nurodant rytų-vakarų padėtį **

//** "123456789 1234567890" **

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

void gpsdump („TinyGPS & gps“) // ++

{ // ++

int metai; // ++

baitas mėnuo, diena, valanda, minutė, antra, šimtosios; // ++

nepasirašytas ilgas amžius; // ++

gps.f_get_position (& LATGP00, & LONGP00 ir amžius); // ++

gps.crack_datetime (ir metai, ir mėnuo, ir diena, ir valanda, // ++

& minutė, antra, šimtosios ir amžius); // ++

ilgas lat, lon; // ++

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

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

// ** sukurkite eilutę duomenų surinkimui į žurnalą: **

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

Eilutės duomenysString = ""; // ++

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

duomenų eilutė += "."; // ++

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

duomenų eilutė += ";"; // ++

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

duomenų eilutė += "."; // ++

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

duomenų eilutė += ";"; // ++

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

dataString += "/"; // ++

dataString += String (static_cast (mėnuo)); // ++

dataString += "/"; // ++

dataString += Styga (metai); // ++

duomenų eilutė += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

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

// ** SAVE TO SD ** // ************************************** *********************************

// atidaryti failą. atminkite, kad vienu metu galima atidaryti tik vieną failą, **

// taigi, prieš atidarydami kitą, turite uždaryti šį. ** // ********************************************* ***************************

Failo duomenysFailas = SD.open ("gps00.txt", FILE_WRITE); // ++

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

// ** jei failas yra, parašykite jam: **

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

jei (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} kitas {// ++

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

} // ++

}

Jei norite atsisiųsti kodą, apsilankykite šiame puslapyje.

Rekomenduojamas: