Satura rādītājs:

Arduino projekts: testa diapazona LoRa modulis RF1276 GPS izsekošanas risinājumam: 9 soļi (ar attēliem)
Arduino projekts: testa diapazona LoRa modulis RF1276 GPS izsekošanas risinājumam: 9 soļi (ar attēliem)

Video: Arduino projekts: testa diapazona LoRa modulis RF1276 GPS izsekošanas risinājumam: 9 soļi (ar attēliem)

Video: Arduino projekts: testa diapazona LoRa modulis RF1276 GPS izsekošanas risinājumam: 9 soļi (ar attēliem)
Video: Atom Hydrogen - универсальный контроллер умного дома, обзор, возможности, ESP Home, Home Assistant 2024, Jūlijs
Anonim
Arduino projekts: testa diapazona LoRa modulis RF1276 GPS izsekošanas risinājumam
Arduino projekts: testa diapazona LoRa modulis RF1276 GPS izsekošanas risinājumam

Savienojums: USB - seriāls

Nepieciešams: Chrome pārlūks

Nepieciešams: 1 X Arduino Mega

Nepieciešams: 1 X GPS

Nepieciešama: 1 X SD karte

Nepieciešams: 2 X LoRa modems RF1276

Funkcija: Arduino Nosūtīt GPS vērtību uz galveno bāzi-Galvenā bāze uzglabā datus Dataino Server Lora modulī: Īpaši liela diapazona RF1276 no APPCONWIRELESS LoRa ir jauna, privāta un izkliedēta spektra modulācijas tehnika, kas ļauj nosūtīt datus par ārkārtīgi zemu datu pārraides ātrumu gari diapazoni. Zemais datu pārraides ātrums (līdz dažiem baitiem sekundē) un LoRa modulācija noved pie ļoti zemas uztvērēja jutības, šajā testā nozīmē vairāk nekā 10 km.

1. darbība: bāzes stacijas izveide

Ēkas bāzes stacija
Ēkas bāzes stacija
Ēkas bāzes stacija
Ēkas bāzes stacija

Datora platuma interneta pieslēgums un LoRa modems, kas pievienots USB portam.

Arduino automašīnas komplekts ·

Metrikas kaste

Anduino Mega ir pievienots 2. sērijai ar GPS uztvērēju, bet 1. sērija - LoRa modemam. Datu glabāšanai tiek izmantota SD karte.

2. solis: pirmais tests

Pirmais pārbaudījums
Pirmais pārbaudījums

· 10,6 km ceļā caur pilsētas centriem, galerijām un gar krastu, kas veidots ar cilpām

Saņemšanas /pārraides attiecība ir bijusi 321 /500TX punkts

RX punkts

3. darbība: izveidojiet saskarni

Izveidojiet saskarni
Izveidojiet saskarni
Izveidojiet saskarni
Izveidojiet saskarni

1 - Izveidojiet jaunu projektu LoRa

Nospiediet ikonu zobrata, lai atvērtu projekta konfigurāciju

4. solis: pievienojiet mērierīci

Pievienojiet mērierīci
Pievienojiet mērierīci

2) Atveriet mērierīces slīdni.

· 3) Ritiniet līdz GPS.

· 4) Pievienojiet vienu galdam.

5. darbība: velciet GPS un pievienojiet OpenStreetMap

Velciet GPS un pievienojiet OpenStreetMap
Velciet GPS un pievienojiet OpenStreetMap
Velciet GPS un pievienojiet OpenStreetMap
Velciet GPS un pievienojiet OpenStreetMap

· 5) Pievienojiet OpenStreetMap karti pie galda

Velkot komponentu GPS ikonu kartē, tiek ģenerēta OpenStreet karte.

Izveidojiet saskarni

· 6) Mainīt kartes atsvaidzināšanu

Mainiet kartes atsvaidzināšanas laiku no 5000 uz 10000

6. darbība: velciet GPS mērītāju un pievienojiet tabulas žurnālu

Velciet GPS mērītāju un pievienojiet tabulas žurnālu
Velciet GPS mērītāju un pievienojiet tabulas žurnālu

· 7) Pievienojiet galda žurnāla mērītāju.

Velkot mērinstrumentu virs GPS ikonu tabulas, tiek izveidots mērinstrumentu tabulas žurnāls

· 8) Mainīt tabulas žurnāla atsvaidzināšanu. Mainiet kartes atsvaidzināšanas laiku no 5000 uz 10000

Pielāgojiet mērinstrumentu stāvokli

· 9) Velciet mērierīces, lai pielāgotu mērinstrumentu stāvokli, velkot tos pa ekrānu.

· 10) Saglabāt projektu

7. darbība: iegūstiet kodu

Iegūt kodu
Iegūt kodu

10) Aktivizējiet koda konteineru

Poga augšējā labajā stūrī, atlasiet visu un kopējiet bāzes kodu.

8. darbība: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Ielīmējiet kodu Arduino IDE

· 12) Rediģēt kodu Pievienojiet šo rindu definīcijai

9. darbība. Detalizēta kodēšanas informācija

Pievienojiet šo rindiņu definīcijai

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

// ** BIBLIOTĒKA ** // **************************************** ********************************

#include // ++ GPS bibliotēka

#iekļaut // ++ SPI bibliotēka #iekļaut

// ++ SD bibliotēka //

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

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

// * SD karte, kas pievienota SPI kopnei šādi:

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

// (CS tapu var mainīt) un tapai #10 (SS) jābūt izvadam

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

// (CS tapu var mainīt) un tapai #52 (SS) jābūt izvadam

// ** Leonardo: izveidojiet savienojumu ar aparatūras SPI, izmantojot ICSP galveni

// 4. pin, kas šeit izmantots konsekvencei ar citiem Arduino piemēriem const int chipSelect = 53;

// ++ SD tapas atlasītājs

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

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

TinyGPS GPS; // ++ GPS Serial2

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

bool newdataGPS = nepatiess; // ++

Pievienojiet šo rindu iestatīšanai ()

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

// ** GPS sērijas iestatīšana ** // *************************************** ********************************

Serial2.begin (9600); // ++

kavēšanās (1000); // ++

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

// ** SD inicializēšana ** // *************************************** *******************************

// pārliecinieties, vai noklusējuma mikroshēmas atlases tapa ir iestatīta uz // ++

// izvade, pat ja to neizmantojat: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("SD kartes inicializēšana …")); // ++

// pārbaudiet, vai karte ir pieejama un vai to var inicializēt: // ++

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

Serial.println (F ("Karte neizdevās vai nav klāt")); // ++

// neko vairāk nedari: // ++

atgriešanās; // ++

} cits {// ++

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

} // ++

Pievienojiet šīs rindiņas cilpas () void

serialEvent2 (); // + + izsaukt GPS sērijas notikumu

Pievienojiet SeriaEvent2 kodu

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

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

void serialEvent2 () {// ++

kamēr (Serial2.available ()) {// ++

char c = Sērijas2.lasījums (); // ++

//Sērijas.druka (c); // atteikšanās redzēt neapstrādātus GPS datus // ++

ja (gps.kodēt (c)) {// ++

newdataGPS = true; // ++

pārtraukums; // atteikšanās nekavējoties izdrukāt jaunus datus! // ++

} // ++

} // ++

} // ++

Pievienojiet GPS izgāztuvi

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

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

// ** Derīgais platuma grādu diapazons ir -90 un +90. **

// ** Garums ir diapazonā no -180 līdz +180 **

// ** norādot austrumu-rietumu pozīciju **

//** "123456789 1234567890" **

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

void gpsdump (TinyGPS & gps) // ++

{ // ++

int gads; // ++

baits mēnesis, diena, stunda, minūte, otrā, simtdaļas; // ++

neparakstīts ilgs vecums; // ++

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

gps.crack_datetime (& gads, & mēnesis, & diena, & stunda, // ++

& minūti, & otrais, & simtdaļas, & vecums); // ++

garš lat, lon; // ++

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

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

// ** izveidojiet virkni datu apkopošanai žurnālā: **

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

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

dataString += "/"; // ++

dataString += String (static_cast (mēnesis)); // ++

dataString += "/"; // ++

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

dataString += ";"; // ++

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

dataString += ":"; // ++

dataString += String (static_cast (minūte)); // ++

dataString += ":"; // ++

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

// ** SAGLABĀT SD ** // ************************************** **********************************

// atveriet failu. ņemiet vērā, ka vienlaikus var atvērt tikai vienu failu, **

// tāpēc jums ir jāaizver šis, pirms atverat citu. ** // ********************************************* ***************************

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

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

// ** ja fails ir pieejams, rakstiet uz to: **

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

ja (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} cits {// ++

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

} // ++

}

Ja vēlaties lejupielādēt kodu, lūdzu, apmeklējiet šo lapu.

Ieteicams: