Obsah:

Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Řešení: 9 kroků (s obrázky)
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Řešení: 9 kroků (s obrázky)

Video: Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Řešení: 9 kroků (s obrázky)

Video: Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Řešení: 9 kroků (s obrázky)
Video: Proyecto Sistemas de la Comunicación - Uso de tarjetas LoRa 2024, Červenec
Anonim
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Solution
Arduino Project: Test Range LoRa Module RF1276 for GPS Tracking Solution

Připojení: USB - sériové

Potřebujete: prohlížeč Chrome

Potřebujete: 1 X Arduino Mega

Potřebujete: 1 x GPS

Potřebujete: 1 X SD karta

Potřebujete: 2 X LoRa Modem RF1276

Funkce: Arduino Odeslat hodnotu GPS na hlavní základnu-Hlavní základna ukládá data do modulu Dataino Server Lora: Ultra dlouhý dosah RF1276 od APPCONWIRELESS LoRa je nová, soukromá a modulační technika s rozšířeným spektrem, která umožňuje odesílání dat extrémně nízkými datovými rychlostmi až extrémně dlouhé vzdálenosti. Nízká datová rychlost (až několik bajtů za sekundu) a modulace LoRa vedou k velmi nízké citlivosti přijímače, což v tomto testu znamená více než 10 km.

Krok 1: Budování základní stanice

Budování základní stanice
Budování základní stanice
Budování základní stanice
Budování základní stanice

Připojení k internetu na šířku počítače a modem LoRa připojený k portu USB.

Souprava do auta Arduino ·

Metrické pole

Anduino Mega připojeno k přijímači GPS 2 a 2 k modemu LoRa. K ukládání dat se používá karta SD.

Krok 2: První test

První test
První test

· 10,6 km na cestě městskými centry, galeriemi a podél pobřeží vytvořené smyčkami

Poměr příjmu /přenosu byl 321 /500TX bodu

RX bod

Krok 3: Vytvořte rozhraní

Vytvořte rozhraní
Vytvořte rozhraní
Vytvořte rozhraní
Vytvořte rozhraní

1 - Založte nový projekt LoRa

Stisknutím ikony ozubeného kola otevřete konfiguraci projektu

Krok 4: Přidejte měřidlo

Přidejte měřidlo
Přidejte měřidlo

2) Otevřete posuvník měřidla.

· 3) Přejděte na GPS.

· 4) Přidejte jeden na stůl.

Krok 5: Přetáhněte měřidlo GPS a přidejte OpenStreetMap

Přetáhněte měřidlo GPS a přidejte OpenStreetMap
Přetáhněte měřidlo GPS a přidejte OpenStreetMap
Přetáhněte měřidlo GPS a přidejte OpenStreetMap
Přetáhněte měřidlo GPS a přidejte OpenStreetMap

· 5) Přidejte mapu OpenStreetMap na stůl

Přetažením komponentního GPS na mapu ikon se vygeneruje mapa OpenStreet.

Vytvořte rozhraní

· 6) Změnit aktualizaci mapy

Změňte čas obnovení mapy z 5 000 na 10 000

Krok 6: Přetáhněte měřidlo GPS a přidejte protokol tabulky

Přetáhněte ukazatel GPS a přidejte protokol tabulky
Přetáhněte ukazatel GPS a přidejte protokol tabulky

· 7) Přidejte rozchod tabulky.

Přetažením měřidla nad tabulku ikon GPS se vytvoří protokol tabulky měřidel

· 8) Změnit aktualizaci protokolu tabulky. Změňte čas obnovení mapy z 5 000 na 10 000

Upravte polohu měřidel

· 9) Tažná měřidla upravují polohu měřidel přetažením přes obrazovku.

· 10) Uložit projekt

Krok 7: Získejte kód

Získat kód
Získat kód

10) Aktivujte kontejner kódu

Tlačítko vpravo nahoře, vyberte vše a zkopírujte základní kód.

Krok 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Vložte kód na Arduino IDE

· 12) Upravit kód Přidejte tento řádek do definice

Krok 9: Podrobnosti o kódování

Přidejte tento řádek do definice

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

// ** KNIHOVNA ** // ***************************************** *********************************

#include // ++ GPS knihovna

#include // ++ SPI knihovna #include

// ++ SD knihovna //

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

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

// * SD karta připojená ke sběrnici SPI následovně:

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

// (PIN CS lze změnit) a pin #10 (SS) musí být výstup

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

// (PIN CS lze změnit) a pin #52 (SS) musí být výstup

// ** Leonardo: Připojte se k hardwarovému SPI přes hlavičku ICSP

// Pin 4 zde použitý pro konzistenci s jinými příklady Arduino const int chipSelect = 53;

// ++ Volič pinů SD

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

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

TinyGPS gps; // ++ GPS na Serial2

neplatný gpsdump (TinyGPS & gps); // ++

bool newdataGPS = false; // ++

Přidejte tento řádek do nastavení ()

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

// ** Sériové nastavení GPS ** // **************************************** *********************************

Serial2.begin (9600); // ++

zpoždění (1000); // ++

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

// ** Inicializace SD ** // **************************************** ******************************

// ujistěte se, že výchozí pin pro výběr čipu je nastaven na // ++

// výstup, i když jej nepoužíváte: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("Inicializace karty SD …")); // ++

// zjistěte, zda je karta přítomna a lze ji inicializovat: // ++

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

Serial.println (F („Karta selhala nebo není přítomna“)); // ++

// nedělejte nic víc: // ++

vrátit se; // ++

} else {// ++

Serial.println (F („SD karta v pořádku“)); // ++

} // ++

Přidejte tyto řádky do loop () void

serialEvent2 (); // ++ volání GPS sériové události

Přidejte kód SeriaEvent2

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

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

zrušit serialEvent2 () {// ++

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

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

//Serial.print(c); // odkomentujte zobrazení surových dat GPS // ++

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

newdataGPS = true; // ++

přestávka; // odkomentujte okamžitý tisk nových dat! // ++

} // ++

} // ++

} // ++

Přidejte hlasitý výpis GPS

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

// ** skládka GPS ** // **************************************** **********************************

// ** Platný rozsah zeměpisné šířky ve stupních je -90 a +90. **

// ** Zeměpisná délka je v rozsahu -180 a +180 **

// ** určení polohy východ-západ **

//** "123456789 1234567890" **

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

neplatné gpsdump (TinyGPS & gps) // ++

{ // ++

int rok; // ++

bajt měsíc, den, hodina, minuta, sekunda, setiny; // ++

nepodepsaný dlouhý věk; // ++

gps.f_get_position (& LATGP00, & LONGP00, & věk); // ++

gps.crack_datetime (& rok, & měsíc, & den, & hodina, // ++

& minuta, & sekunda, & setiny, & věk); // ++

dlouhá lat, lon; // ++

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

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

// ** vytvořte řetězec pro sestavení dat do protokolu: **

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

Řetězec dataString = ""; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "/"; // ++

dataString += String (static_cast (měsíc)); // ++

dataString += "/"; // ++

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

dataString += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

dataString += String (static_cast (druhý)); // ++ // ********************************************** ****************************

// ** ULOŽIT DO SD ** // ************************************* *********************************

// otevřete soubor. současně je možné otevřít pouze jeden soubor, **

// takže před otevřením dalšího musíte tento zavřít. ** // ************************************************ ***************************

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

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

// ** pokud je soubor k dispozici, napište do něj: **

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

if (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} else {// ++

Serial.println (F ("CHYBA SD zápisu")); // ++

} // ++

}

Pokud si chcete stáhnout kód, navštivte tuto stránku.

Doporučuje: