Innehållsförteckning:
- Steg 1: Bygg basstation
- Steg 2: Det första testet
- Steg 3: Skapa gränssnittet
- Steg 4: Lägg till mätare
- Steg 5: Dra Gauge GPS och lägg till OpenStreetMap
- Steg 6: Dra GPS -mätaren och lägg till tabelllogg
- Steg 7: Hämta kod
- Steg 8: Arduino IDE
- Steg 9: Kodningsinformation
Video: Arduino Project: Test Range LoRa -modul RF1276 för GPS -spårningslösning: 9 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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
· 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
1 - Skapa ett nytt projekt LoRa
Tryck på ikonhjulet för att öppna projektkonfigurationen
Steg 4: 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
· 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
· 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
10) Aktivera kodbehållaren
Knapp längst upp till höger, välj alla och kopiera baskod.
Steg 8: 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:
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino: 5 steg (med bilder)
OAREE - 3D Printed - Obstacle Avoiding Robot for Engineering Education (OAREE) With Arduino: OAREE (Obstacle Avoiding Robot for Engineering Education) Design: Målet med denna instruerbara var att designa en OAR (Obstacle Avoiding Robot) robot som var enkel/kompakt, 3D -utskrivbar, enkel att montera, använder kontinuerliga rotationsservos för rörliga
GÅR UTOM HORIZONEN MED LORa RF1276: 12 steg
GÅR UTOM HORIZONEN MED LoRa RF1276: Jag har hittat RF1276 -sändtagare för att leverera den mest enastående prestanda när det gäller signalomfång och kvalitet. Vid min första flygning kunde jag nå 56km avstånd vid -70dB signalnivå med små kvartsvåglängdsantenner
Övertyga dig själv om att bara använda en 12V-till-AC-omriktare för LED-ljussträngar istället för att koppla om dem för 12V: 3 steg
Övertyga dig själv om att bara använda en 12V-till-AC-linjeomvandlare för LED-ljussträngar istället för att koppla om dem för 12V: Min plan var enkel. Jag ville klippa upp en väggdriven LED-ljussträng i bitar och sedan dra om den för att gå av 12 volt. Alternativet var att använda en kraftomvandlare, men vi vet alla att de är fruktansvärt ineffektiva, eller hur? Höger? Eller är de det?
1.5A linjär regulator för konstant ström för lysdioder för: 6 steg
1.5A linjär regulator för konstant ström för lysdioder för: Så det finns massor av instruktioner som täcker användning av LED -lampor med hög ljusstyrka. Många av dem använder den kommersiellt tillgängliga Buckpuck från Luxdrive. Många av dem använder också linjära regleringskretsar som toppar vid 350 mA eftersom de är mycket ineffektiva