Sadržaj:

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

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

Video: Arduino projekt: Testni raspon LoRa modul RF1276 za rješenje GPS praćenja: 9 koraka (sa slikama)
Video: Lora SX1278/76/77/79 Arduino Hello World и проекты мониторинга датчиков, модуль Lora RA02 2024, Srpanj
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 Pošaljite GPS vrijednost na 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 modulacije s širokim spektrom koja omogućuje slanje podataka po izuzetno niskim brzinama prijenosa do iznimno niskih brzina prijenosa podataka velike udaljenosti. 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čunala i LoRa modem spojeni na USB priključak.

Arduino automobilski komplet ·

Metrička kutija

Anduino Mega spojen na serijski 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 putu kroz urbana središta, galerije i uz obalu napravljenim s petljama

Omjer prijema /prijenosa bio je 321 /500TX bod

RX točka

Korak 3: Izradite sučelje

Izradite sučelje
Izradite sučelje
Izradite sučelje
Izradite sučelje

1 - Postavite novi projekt LoRa

Pritisnite ikonu zupčanika za otvaranje konfiguracije projekta

Korak 4: Dodajte mjerač

Dodajte mjerač
Dodajte mjerač

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 na stol

Povlačenjem komponentnog GPS -a na kartu ikona stvara se OpenStreet karta.

Izradite sučelje

· 6) Promijenite osvježavanje karte

Promijenite vrijeme osvježavanja karte s 5000 na 10000

Korak 6: Povucite GPS mjerač i dodajte zapisnik tablice

Povucite GPS mjerač i dodajte zapisnik tablice
Povucite GPS mjerač i dodajte zapisnik tablice

· 7) Dodajte mjerač tabličnog dnevnika.

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

· 8) Promjena osvježavanja dnevnika tablice. Promijenite vrijeme osvježavanja karte s 5000 na 10000

Podesite položaj mjerača

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

· 10) Spremi projekt

Korak 7: Nabavite kod

Nabavite kod
Nabavite kod

10) Aktivirajte spremnik kodova

Gumb 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) Uređivanje koda Dodajte ovaj redak u definiciju

Korak 9: Kodiranje pojedinosti

Dodajte ovaj redak u definiciju

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

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

#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: Spojite se na hardverski SPI putem ICSP zaglavlja

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

// ++ SD pin birač

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

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

TinyGPS GPS; // ++ GPS na Serial2

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

bool newdataGPS = netočno; // ++

Dodajte ovaj redak 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 činite ništa više: // ++

povratak; // ++

} else {// ++

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

} // ++

Dodajte ove retke u loop () void

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

Dodajte kod SeriaEvent2

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

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

void serialEvent2 () {// ++

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

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

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

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

newdataGPS = istina; // ++

pauza; // uklonite komentar za ispis 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, minuta, sekunda, stotinke; // ++

nepotpisana duga dob; // ++

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

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

& minuta, & drugo, & stotinke, & dob); // ++

dugačak lat, lon; // ++

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

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

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

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

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

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 se samo jedna datoteka može otvoriti 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 (datoteka podataka) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} else {// ++

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

} // ++

}

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

Preporučeni: