Spisu treści:
- Krok 1: Budowanie stacji bazowej
- Krok 2: Pierwszy test
- Krok 3: Utwórz interfejs
- Krok 4: Dodaj miernik
- Krok 5: Przeciągnij wskaźnik GPS i dodaj OpenStreetMap
- Krok 6: Przeciągnij wskaźnik GPS i dodaj dziennik tabeli
- Krok 7: Uzyskaj kod
- Krok 8: Arduino IDE
- Krok 9: Szczegóły kodowania
Wideo: Projekt Arduino: Zakres testowy Moduł LoRa RF1276 dla rozwiązania śledzenia GPS: 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Połączenie: USB-szeregowe
Potrzebujesz: przeglądarka Chrome
Potrzebujesz: 1 X Arduino Mega
Potrzebujesz: 1 X GPS
Potrzebujesz: 1 X karty SD
Potrzebujesz: 2 x modem LoRa RF1276
Funkcja: Arduino Wysyłanie wartości GPS do głównej bazy - Główna baza przechowuje dane w Dataino Server Lora Moduł: Ultra daleki zasięg RF1276 z APPCONWIRELESS LoRa to nowa, prywatna technika modulacji widma rozproszonego, która umożliwia wysyłanie danych z bardzo niskimi prędkościami do bardzo dalekie zasięgi. Niska szybkość transmisji danych (do kilku bajtów na sekundę) i modulacja LoRa prowadzą do bardzo niskiej czułości odbiornika, co w tym teście oznacza ponad 10 km.
Krok 1: Budowanie stacji bazowej
Połączenie internetowe o szerokości komputera i modem LoRa podłączony do portu USB.
Zestaw samochodowy Arduino ·
Pudełko metryczne
Anduino Mega podłączony do portu szeregowego 2 do odbiornika GPS, a portu szeregowego 1 do modemu LoRa. Do przechowywania danych używana jest karta SD.
Krok 2: Pierwszy test
· 10,6 km na ścieżce przez ośrodki miejskie, galerie i wzdłuż wybrzeża wykonane pętlami
Stosunek odbioru/transmisji wyniósł punkt 321/500TX
Punkt RX
Krok 3: Utwórz interfejs
1 - Skonfiguruj nowy projekt LoRa
Naciśnij ikonę koła zębatego, aby otworzyć konfigurację projektu
Krok 4: Dodaj miernik
2) Otwórz suwak miernika.
· 3) Przewiń do GPS.
· 4) Dodaj jeden do biurka.
Krok 5: Przeciągnij wskaźnik GPS i dodaj OpenStreetMap
· 5) Dodaj mapę OpenStreetMap do biurka
Przeciągając komponent GPS na mapę ikon, generowana jest mapa OpenStreet.
Utwórz interfejs
· 6) Zmień odświeżanie mapy
Zmień czas odświeżania mapy z 5000 na 10000
Krok 6: Przeciągnij wskaźnik GPS i dodaj dziennik tabeli
· 7) Dodaj wskaźnik dziennika tabeli.
Przeciągając wskaźnik nad tabelę ikon GPS, tworzony jest dziennik tabeli wskaźników
· 8) Zmień odświeżanie dziennika tabeli. Zmień czas odświeżania mapy z 5000 na 10000
Dostosuj położenie wskaźników
· 9) Wskaźniki przeciągania dostosowują położenie wskaźników, przeciągając je po ekranie.
· 10) Zapisz projekt
Krok 7: Uzyskaj kod
10) Aktywuj kontener kodu
Przycisk na prawym górnym przycisku, zaznacz wszystko i skopiuj kod podstawowy.
Krok 8: Arduino IDE
· 11) Wklej kod na Arduino IDE
· 12) Edytuj kod Dodaj tę linię w definicji
Krok 9: Szczegóły kodowania
Dodaj tę linię w definicji
//*************************************************************************
//** BIBLIOTEKA ** //***************************************** ********************************
#include // ++ biblioteka GPS
#include // ++ biblioteka SPI #include
// ++biblioteka SD//
*************************************************************************
//** SD ** //********************************************* ********************************
// * karta SD podłączona do magistrali SPI w następujący sposób:
// ** UNO: MOSI - pin 11, MISO - pin 12, CLK - pin 13, CS - pin 4
// (pin CS można zmienić) i pin #10 (SS) muszą być wyjściem
// ** Mega: MOSI - pin 51, MISO - pin 50, CLK - pin 52, CS - pin 53
// (pin CS można zmienić) i pin #52 (SS) muszą być wyjściem
// ** Leonardo: Połącz się ze sprzętowym SPI przez nagłówek ICSP
// Pin 4 użyty tutaj dla zachowania spójności z innymi przykładami Arduino const int chipSelect = 53;
// ++ Selektor pinów SD
//*************************************************************************
//** GPS ** //********************************************* ********************************
Mały GPS; // ++ GPS na Serial2
void gpsdump(TinyGPS &gps); // ++
bool newdataGPS = false; // ++
Dodaj tę linię w setup()
//***********************************************************************
//** Konfiguracja portu szeregowego GPS ** //**************************************** ********************************
Serial2.początek(9600); // ++
opóźnienie (1000); // ++
//***********************************************************************
//** Inicjalizacja SD ** //**************************************** ******************************
// upewnij się, że domyślny pin wyboru chipa jest ustawiony na // ++
// wyjście, nawet jeśli go nie używasz: // ++
pinMode (SS, WYJŚCIE); // ++
Serial.println(F("Inicjowanie karty SD…")); // ++
// zobacz, czy karta jest obecna i czy można ją zainicjować: // ++
if (!SD.begin(chipSelect)) { // ++
Serial.println(F("Karta nie powiodła się lub nie ma")); // ++
// nie rób nic więcej: // ++
powrót; // ++
} inny { // ++
Serial.println(F("Karta SD OK")); // ++
} // ++
Dodaj te linie w loop() void
serialEvent2(); // ++ wywołanie zdarzenia seryjnego GPS
Dodaj kod SeriaEvent2
//*************************************************************************
//** GPS serialEvent ** //**************************************** ***********************************
void serialEvent2() { // ++
while (Serial2.available()) { // ++
char c = Serial2.odczyt(); // ++
//Serial.print(c); // odkomentuj, aby zobaczyć nieprzetworzone dane GPS // ++
if (gps.encode(c)) { // ++
nowedaneGPS = prawda; // ++
przerwa; // odkomentuj, aby natychmiast wydrukować nowe dane! // ++
} // ++
} // ++
} // ++
Dodaj voud zrzutu GPS
//*************************************************************************
//** zrzut GPS ** //**************************************** ***********************************
//** Prawidłowy zakres szerokości geograficznej w stopniach to -90 i +90. **
//** Długość geograficzna mieści się w zakresie -180 i +180 **
//** określenie pozycji wschód-zachód **
//** "123456789 1234567890" **
//** "000.00000;0000.00000" ** //*************************************************************************
void gpsdump (TinyGPS i gps) // ++
{ // ++
międzynarodowy rok; // ++
bajt miesiąc, dzień, godzina, minuta, sekunda, części setne; // ++
niepodpisany długi wiek; // ++
gps.f_get_position(&LATGP00, &LONGP00, &wiek); // ++
gps.crack_datetime(&rok, &miesiąc, &dzień, &godzina, // ++
&minuta, &sekunda, &setki, &wiek); // ++
długi łac, długi; // ++
gps.get_position(&lat, &lon, &wiek); // ++
// *********************************************************************
// ** utwórz ciąg znaków do asemblowania danych do logu: **
// *********************************************************************
Ciąg danychString = ""; // ++
Ciąg danych += (lat / 100000); // ++
ciąg danych += "."; // ++
Ciąg danych += lat - (lat / 100000) * 100000; // ++
ciąg danych += ";"; // ++
Ciąg danych += (lon/100000); // ++
ciąg danych += "."; // ++
DataString += lon - (lon/100000) * 100000; // ++
ciąg danych += ";"; // ++
dataString += String(static_cast(day)); // ++
Ciąg danych += "/"; // ++
dataString += String(static_cast(miesiąc)); // ++
Ciąg danych += "/"; // ++
Ciąg danych += Ciąg(rok); // ++
ciąg danych += ";"; // ++
dataString += String(static_cast(godzina)); // ++
Ciąg danych += ":"; // ++
dataString += String(static_cast (minuta)); // ++
Ciąg danych += ":"; // ++
dataString += String(static_cast (drugi)); // ++ //********************************************* ******************************
//** ZAPISZ W SD ** //**************************************** ***********************************
// otwórz plik. pamiętaj, że w danym momencie może być otwarty tylko jeden plik, **
// więc musisz zamknąć ten, zanim otworzysz inny. ** //************************************************** ***************************
Plik dataFile = SD.open("gps00.txt", FILE_WRITE); // ++
// ***********************************************************************
// ** jeśli plik jest dostępny, napisz do niego: **
// ***********************************************************************
if (plik danych) { // ++
plik danych.println(ciąg danych); // ++
plik_danych.zamknij(); // ++
} inny { // ++
Serial.println(F("BŁĄD zapisu SD")); // ++
} // ++
}
Jeśli chcesz pobrać kod, odwiedź tę stronę.
Zalecana:
Drukowany w 3D zakres noktowizyjny: 8 kroków (ze zdjęciami)
Drukowany w 3D zakres noktowizyjny: Hej wszystkim!!! Jak leci?!?!?! Ok, więc od dłuższego czasu (około 3 lat) buduję te cyfrowe kamery noktowizyjne, a po ponad 1000 USD i setkach godzin spędzonych w R'n'D później, daję wam „Eagle Scope 1.0”. (nazwa pochodzi od ca
Moduł śledzenia dla rowerzystów: 5 kroków
Moduł śledzenia dla rowerzystów: Ten moduł śledzenia dla rowerzystów to moduł, który automatycznie wykrywa wypadki podczas wyścigu i wykrywa awarię mechaniczną poprzez dotknięcie czujnika dotykowego. Kiedy jedno z tych zdarzeń ma miejsce, moduł wysyła zdarzenie do bazy danych na malinie
Jak zainstalować moduł śledzenia żądań 3.8 i 4 w Debianie: 3 kroki
Jak zainstalować Request-tracker 3.8 i 4 na Debianie: Będziesz potrzebować:System operacyjny Debian na urządzeniuInternet
TripComputer - komputer pokładowy GPS i moduł pogody dla Twojego pojazdu: 11 kroków (ze zdjęciami)
TripComputer - GPS Trip Computer & Weather Module for your vehicle: fajny projekt raspberry pi, który wykorzystuje moduł GPS Breakout i 2 małe wyświetlacze Digole, aby mieć komputer nawigacyjny na desce rozdzielczej
Jak podłączyć urządzenie DeLorme Earthmate GPS LT-20 do Google Earth, aby uzyskać świetną mapę śledzenia GPS.: 5 kroków
Jak podłączyć urządzenie DeLorme Earthmate GPS LT-20 do programu Google Earth, aby uzyskać świetną mapę śledzenia GPS.: Pokażę ci, jak podłączyć urządzenie GPS do popularnego programu Google Earth bez korzystania z programu Google Earth Plus. Nie mam dużego budżetu, więc gwarantuję, że będzie to tak tanie, jak to tylko możliwe