Sadržaj:

Arduino projekt: LoRa modul za testiranje RF1276 za rješenje za GPS praćenje: 9 koraka (sa slikama)
Arduino projekt: LoRa modul za testiranje RF1276 za rješenje za GPS praćenje: 9 koraka (sa slikama)

Video: Arduino projekt: LoRa modul za testiranje RF1276 za rješenje za GPS praćenje: 9 koraka (sa slikama)

Video: Arduino projekt: LoRa modul za testiranje RF1276 za rješenje za GPS praćenje: 9 koraka (sa slikama)
Video: Scentroid's CTAir Continuous Urban Air Quality Monitor Seminar A 12.08.2020 (Subtitled) 2024, Juli
Anonim
Arduino projekt: LoRa modul za testiranje raspona RF1276 za rješenje za GPS praćenje
Arduino projekt: LoRa modul za testiranje raspona RF1276 za rješenje za GPS praćenje

Priključak: USB - serijski

Potrebno: Chrome preglednik

Potrebno: 1 X Arduino Mega

Potrebno: 1 X GPS

Potrebno: 1 x SD kartica

Potrebno: 2 X LoRa modema RF1276

Funkcija: Arduino Šaljite GPS vrijednost u glavnu bazu-Podaci glavne baze pohranjuju podatke u Dataino poslužiteljskom modulu Lora: RF1276 ultra velike udaljenosti iz APPCONWIRELESS-a LoRa je nova, privatna tehnika moduliranja s širokim spektrom koja omogućuje slanje podataka po izuzetno niskim brzinama prijenosa do ekstremno niskih brzina prijenosa podataka velike domete. Niska brzina prijenosa podataka (do nekoliko bajtova u sekundi) i LoRa modulacija dovode do vrlo niske osjetljivosti prijemnika, što znači da u ovom testu znači više od 10 km.

Korak 1: Izgradnja bazne stanice

Izgradnja bazne stanice
Izgradnja bazne stanice
Izgradnja bazne stanice
Izgradnja bazne stanice

Internetska širina računara i LoRa modem spojeni na USB priključak.

Arduino automobilski komplet ·

Metrička kutija

Anduino Mega povezan serijskim 2 na GPS prijemnik, a serijski 1 na LoRa modem. Za pohranu podataka koristi se SD kartica.

Korak 2: Prvi test

Prvi test
Prvi test

· 10,6 km na stazi kroz urbana središta, galerije i uz obalu napravljenu petljama

Odnos prijema /prenosa je 321 /500TX tačka

RX tačka

Korak 3: Kreirajte sučelje

Kreirajte interfejs
Kreirajte interfejs
Kreirajte interfejs
Kreirajte interfejs

1 - Postavite novi projekt LoRa

Pritisnite ikonu zupčanika da otvorite konfiguraciju projekta

Korak 4: Dodajte mjerač

Add Gauge
Add Gauge

2) Otvorite klizač mjerača.

· 3) Pomaknite se do GPS -a.

· 4) Dodajte jednu na stol.

Korak 5: Povucite GPS mjerač i dodajte OpenStreetMap

Povucite GPS mjerač i dodajte OpenStreetMap
Povucite GPS mjerač i dodajte OpenStreetMap
Povucite GPS mjerač i dodajte OpenStreetMap
Povucite GPS mjerač i dodajte OpenStreetMap

· 5) Dodajte OpenStreetMap kartu radnom stolu

Povlačenjem komponentnog GPS -a na mapu ikona, generira se OpenStreet karta.

Kreirajte interfejs

· 6) Promijenite osvježavanje karte

Promijenite vrijeme osvježavanja karte sa 5000 na 10000

Korak 6: Povucite GPS mjerač i dodajte tablični dnevnik

Povucite GPS mjerač i dodajte tablični dnevnik
Povucite GPS mjerač i dodajte tablični dnevnik

· 7) Dodajte mjerač tabličnog dnevnika.

Povlačenjem mjerača iznad tablice ikona GPS -a stvara se dnevnik tablice mjerača

· 8) Promijenite osvježavanje dnevnika tablice. Promijenite vrijeme osvježavanja karte sa 5000 na 10000

Podesite položaj mjerača

· 9) Mjerači za povlačenje prilagođavaju položaj mjerača povlačenjem po ekranu.

· 10) Sačuvajte projekat

Korak 7: Nabavite kôd

Uzmi kod
Uzmi kod

10) Aktivirajte spremnik kodova

Dugme u gornjem desnom kutu, odaberite sve i kopirajte osnovni kôd.

Korak 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Zalijepite kôd na Arduino IDE

· 12) Uredite kôd Dodajte ovaj red u definiciju

Korak 9: Kodiranje detalja

Dodajte ovu liniju u definiciju

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

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

#include // ++ GPS biblioteka

#include // ++ SPI biblioteka #include

// ++ SD biblioteka //

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

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

// * SD kartica priključena na SPI sabirnicu na sljedeći način:

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

// (CS pin se može promijeniti) i pin #10 (SS) moraju biti izlaz

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

// (CS pin se može promijeniti) i pin #52 (SS) moraju biti izlaz

// ** Leonardo: Povežite se sa hardverskim SPI putem ICSP zaglavlja

// Pin 4 koji se ovdje koristi za usklađenost s drugim Arduino primjerima const int chipSelect = 53;

// ++ SD pin selektor

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

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

TinyGPS gps; // ++ GPS na Serial2

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

bool newdataGPS = false; // ++

Dodajte ovaj red u setup ()

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

// ** GPS serijsko postavljanje ** // *************************************** ********************************

Serial2.begin (9600); // ++

kašnjenje (1000); // ++

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

// ** SD inicijalizacija ** // **************************************** *******************************

// provjerite je li zadani pin za odabir čipa postavljen na // ++

// izlaz, čak i ako ga ne koristite: // ++

pinMode (SS, OUTPUT); // ++

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

// vidjeti je li kartica prisutna i može li se inicijalizirati: // ++

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

Serial.println (F ("Kartica nije uspjela ili je nema")); // ++

// ne radite ništa više: // ++

return; // ++

} else {// ++

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

} // ++

Dodajte ove redove u loop () void

serialEvent2 (); // ++ poziv GPS serijski događaj

Dodajte kod SeriaEvent2

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

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

void serialEvent2 () {// ++

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

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

//Serial.print(c); // uklonite komentar da biste vidjeli neobrađene GPS podatke // ++

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

newdataGPS = true; // ++

break; // uklonite komentar za ispisivanje novih podataka odmah! // ++

} // ++

} // ++

} // ++

Dodajte GPS dump voud

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

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

// ** Važeći raspon zemljopisne širine u stupnjevima je -90 i +90. **

// ** Geografska dužina je u rasponu -180 i +180 **

// ** određujući položaj istok-zapad **

//** "123456789 1234567890" **

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

void gpsdump (TinyGPS & gps) // ++

{ // ++

int godina; // ++

bajt mjesec, dan, sat, minut, sekunda, stotinke; // ++

nepotpisana duga dob; // ++

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

gps.crack_datetime (& godina, & mjesec, & dan, & sat, // ++

& minut, & drugi, & stoti, & dob); // ++

dugačak lat, lon; // ++

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

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

// ** napravite niz za sastavljanje podataka u dnevnik: **

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

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

dataString += "/"; // ++

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

dataString += "/"; // ++

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

dataString += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

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

// ** SPREMI NA SD ** // *************************************** ********************************

// otvaranje datoteke. imajte na umu da samo jedna datoteka može biti otvorena odjednom, **

// pa morate zatvoriti ovaj prije nego otvorite drugi. ** // ********************************************** ***************************

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

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

// ** ako je datoteka dostupna, napišite joj: **

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

if (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} else {// ++

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

} // ++

}

Ako želite preuzeti kôd, posjetite ovu stranicu.

Preporučuje se: