Innehållsförteckning:

Arduino Project: Test Range LoRa -modul RF1276 för GPS -spårningslösning: 9 steg (med bilder)
Arduino Project: Test Range LoRa -modul RF1276 för GPS -spårningslösning: 9 steg (med bilder)

Video: Arduino Project: Test Range LoRa -modul RF1276 för GPS -spårningslösning: 9 steg (med bilder)

Video: Arduino Project: Test Range LoRa -modul RF1276 för GPS -spårningslösning: 9 steg (med bilder)
Video: AGLoRa (Arduino + GPS + LoRa tracker) 2024, November
Anonim
Arduino Project: Test Range LoRa -modul RF1276 för GPS -spårningslösning
Arduino Project: Test Range LoRa -modul RF1276 för GPS -spårningslösning

Anslutning: USB - Seriell

Behov: Chrome -webbläsare

Behov: 1 X Arduino Mega

Behov: 1 X GPS

Behöver: 1 X SD -kort

Behov: 2 X LoRa -modem RF1276

Funktion: Arduino Skicka GPS-värde till huvudbasen-Huvudbas lagra data i Dataino Server Lora Module: Ultra long range RF1276 från APPCONWIRELESS LoRa är en ny, privat och spridningsspektrum moduleringsteknik som gör det möjligt att skicka data med extremt låga datahastigheter till extremt mycket långa sträckor. Den låga datahastigheten (ner till några byte per sekund) och LoRa-modulering leder till mycket låg mottagarkänslighet, vilket innebär att detta test betyder mer än 10 km.

Steg 1: Bygg basstation

Bygga basstation
Bygga basstation
Bygga basstation
Bygga basstation

Datorbredd internetanslutning och ett LoRa -modem anslutet till USB -port.

Arduino bilsats ·

Metrisk låda

Anduino Mega ansluten till seriell 2 till GPS -mottagare och Seriell 1 till LoRa -modem. Ett SD -kort används för lagringsdata.

Steg 2: Det första testet

Första testet
Första testet

· 10,6 km på en stig genom stadscentrum, gallerier och längs kusten med slingor

Förhållandet mellan mottagning /överföring har varit 321 /500TX -punkt

RX -punkt

Steg 3: Skapa gränssnittet

Skapa gränssnittet
Skapa gränssnittet
Skapa gränssnittet
Skapa gränssnittet

1 - Skapa ett nytt projekt LoRa

Tryck på ikonhjulet för att öppna projektkonfigurationen

Steg 4: Lägg till mätare

Lägg till mätare
Lägg till mätare

2) Öppna mätarreglaget.

· 3) Bläddra till GPS: en.

· 4) Lägg till en på skrivbordet.

Steg 5: Dra Gauge GPS och lägg till OpenStreetMap

Dra GPS -mätare och lägg till OpenStreetMap
Dra GPS -mätare och lägg till OpenStreetMap
Dra GPS -mätare och lägg till OpenStreetMap
Dra GPS -mätare och lägg till OpenStreetMap

· 5) Lägg till OpenStreetMap -kartan på skrivbordet

Genom att dra komponentens GPS på ikonkartan genereras OpenStreet -kartan.

Skapa gränssnittet

· 6) Ändra kartuppdatering

Ändra kartens uppdateringstid från 5000 till 10000

Steg 6: Dra GPS -mätaren och lägg till tabelllogg

Dra GPS -mätare och lägg till tabelllogg
Dra GPS -mätare och lägg till tabelllogg

· 7) Lägg till en tabellloggmätare.

Genom att dra mätaren ovanför GPS -ikontabellen skapas mätartabellogg

· 8) Ändra tabelllogguppdatering. Ändra kartens uppdateringstid från 5000 till 10000

Justera mätarnas position

· 9) Dragmätare justerar mätarnas position genom att dra dem över skärmen.

· 10) Spara projekt

Steg 7: Hämta kod

Hämta kod
Hämta kod

10) Aktivera kodbehållaren

Knapp längst upp till höger, välj alla och kopiera baskod.

Steg 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Klistra in koden på Arduino IDE

· 12) Redigera kod Lägg till denna rad i definitionen

Steg 9: Kodningsinformation

Lägg till denna rad i definitionen

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

// ** BIBLIOTEK **/ ********************************

#inkludera // ++ GPS -bibliotek

#include // ++ SPI -bibliotek #include

// ++ SD -bibliotek //

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

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

// * SD -kort anslutet till SPI -bussen enligt följande:

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

// (CS -pin kan ändras) och pin #10 (SS) måste vara en utgång

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

// (CS -pin kan ändras) och pin #52 (SS) måste vara en utgång

// ** Leonardo: Anslut till hardware SPI via ICSP -rubriken

// Pin 4 som används här för att överensstämma med andra Arduino -exempel const int chipSelect = 53;

// ++ SD -stiftväljare

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

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

TinyGPS gps; // ++ GPS på Serial2

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

bool newdataGPS = false; // ++

Lägg till den här raden i installationen ()

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

// ** Seriell installation av GPS ** // *************************************** ********************************

Serial2.start (9600); // ++

fördröjning (1000); // ++

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

// ** SD -initialisering ** // ***************************************** ********************************

// se till att standardchip -valnålen är inställd på // ++

// output, även om du inte använder det: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("Initierar SD -kort …")); // ++

// se om kortet finns och kan initieras: // ++

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

Serial.println (F ("Kortet misslyckades eller finns inte")); // ++

// gör inget mer: // ++

lämna tillbaka; // ++

} annat {// ++

Serial.println (F ("SD -kort OK")); // ++

} // ++

Lägg till dessa rader i loop () void

serialEvent2 (); // ++ ringa GPS -seriell händelse

Lägg till SeriaEvent2 -kod

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

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

void serialEvent2 () {// ++

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

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

//Serial.print(c); // okommentera för att se rå GPS -data // ++

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

newdataGPS = true; // ++

ha sönder; // okommentera att skriva ut nya data omedelbart! // ++

} // ++

} // ++

} // ++

Lägg till GPS dump voud

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

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

// ** Det giltiga latitudintervallet i grader är -90 och +90. **

// ** Longitud ligger i intervallet -180 och +180 **

// ** specificerar öst-västläge **

//** "123456789 1234567890" **

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

void gpsdump (TinyGPS & gps) // ++

{ // ++

int år; // ++

byte månad, dag, timme, minut, sekund, hundradelar; // ++

osignerad lång ålder; // ++

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

gps.crack_datetime (& år, & månad, & dag, & timme, // ++

& minut, & andra, & hundradelar, & ålder); // ++

lång lat, lon; // ++

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

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

// ** skapa en sträng för att samla data till log: **

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

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

dataString += "/"; // ++

dataString += String (static_cast (månad)); // ++

dataString += "/"; // ++

dataString += String (år); // ++

dataString += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

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

// ** SPARA TILL SD ** ** **********************************

// öppna filen. Observera att endast en fil kan vara öppen åt gången, **

// så du måste stänga den här innan du öppnar en annan. ** // *********************************************** ****************************

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

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

// ** om filen är tillgänglig, skriv till den: **

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

if (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} annat {// ++

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

} // ++

}

Om du vill ladda ner koden, besök den här sidan.

Rekommenderad: