Sisällysluettelo:

Arduino -projekti: Testialueen LoRa -moduuli RF1276 GPS -seurantaan Ratkaisu: 9 vaihetta (kuvilla)
Arduino -projekti: Testialueen LoRa -moduuli RF1276 GPS -seurantaan Ratkaisu: 9 vaihetta (kuvilla)

Video: Arduino -projekti: Testialueen LoRa -moduuli RF1276 GPS -seurantaan Ratkaisu: 9 vaihetta (kuvilla)

Video: Arduino -projekti: Testialueen LoRa -moduuli RF1276 GPS -seurantaan Ratkaisu: 9 vaihetta (kuvilla)
Video: 💦 Medidor de nivel de agua remoto con módulos lora DRF1276DM/DRF1278DM y Arduino - PCBWay.es 2024, Marraskuu
Anonim
Arduino -projekti: Koealue LoRa -moduuli RF1276 GPS -seurantaratkaisulle
Arduino -projekti: Koealue LoRa -moduuli RF1276 GPS -seurantaratkaisulle

Liitäntä: USB - sarja

Tarvitset: Chrome -selain

Tarvitset: 1 X Arduino Mega

Tarvitset: 1 X GPS

Tarvitset: 1 X SD -kortti

Tarvitset: 2 X LoRa -modeemi RF1276

Toiminto: Arduino Lähetä GPS-arvo päätukiasemaan-Päätietokanta tallentaa dataa Dataino Server Lora -moduuliin: Erittäin pitkän kantaman RF1276 APPCONWIRELESS LoRalta on uusi, yksityinen ja hajaspektrimodulaatiotekniikka, joka mahdollistaa tietojen lähettämisen erittäin alhaisilla datanopeuksilla erittäin pitkät kantomatkat. Matala tiedonsiirtonopeus (jopa muutama tavu sekunnissa) ja LoRa-modulaatio johtavat erittäin alhaiseen vastaanottimen herkkyyteen, mikä tarkoittaa tässä testissä yli 10 km.

Vaihe 1: Tukiaseman rakentaminen

Tukiaseman rakentaminen
Tukiaseman rakentaminen
Tukiaseman rakentaminen
Tukiaseman rakentaminen

Tietokoneleveys Internet -yhteys ja LoRa -modeemi kytketty USB -porttiin.

Arduino -autosarja ·

Metrinen laatikko

Anduino Mega kytketty sarjaan 2 GPS -vastaanottimeen ja sarja 1 LoRa -modeemiin. SD -korttia käytetään tietojen tallentamiseen.

Vaihe 2: Ensimmäinen testi

Ensimmäinen testi
Ensimmäinen testi

· 10,6 km kaupunkien keskusten, gallerioiden ja rannikon läpi kulkevalla polulla, joka on tehty silmukoilla

Vastaanotto /lähetyssuhde on ollut 321 /500TX pistettä

RX -piste

Vaihe 3: Luo käyttöliittymä

Luo käyttöliittymä
Luo käyttöliittymä
Luo käyttöliittymä
Luo käyttöliittymä

1 - Perusta uusi projekti LoRa

Avaa projektin kokoonpano painamalla kuvaketta cog

Vaihe 4: Lisää mittari

Lisää mittari
Lisää mittari

2) Avaa mittarin liukusäädin.

· 3) Vieritä kohtaan GPS.

· 4) Lisää yksi työpöydälle.

Vaihe 5: Vedä Gauge GPS ja lisää OpenStreetMap

Vedä Gauge GPS ja lisää OpenStreetMap
Vedä Gauge GPS ja lisää OpenStreetMap
Vedä Gauge GPS ja lisää OpenStreetMap
Vedä Gauge GPS ja lisää OpenStreetMap

· 5) Lisää OpenStreetMap -kartta työpöydälle

Vedä komponentti -GPS kuvakekorttiin, OpenStreet -kartta luodaan.

Luo käyttöliittymä

· 6) Muuta kartan päivitystä

Muuta kartan päivitysaika 5000: sta 10000: een

Vaihe 6: Vedä GPS -mittari ja lisää taulukkoloki

Vedä GPS -mittari ja Lisää taulukkoloki
Vedä GPS -mittari ja Lisää taulukkoloki

· 7) Lisää taulukon lokimittari.

Vedä mittaria GPS -kuvaketaulukon yläpuolelle luodaan mittaritaulukko

· 8) Muuta taulukon lokin päivitystä. Muuta kartan päivitysaika 5000: sta 10000: een

Säädä mittarien asentoa

· 9) Vedä mittarit säätääksesi mittarien sijaintia vetämällä niitä näytön poikki.

· 10) Tallenna projekti

Vaihe 7: Hanki koodi

Hanki koodi
Hanki koodi

10) Aktivoi koodisäiliö

Painike oikeassa yläkulmassa, valitse kaikki ja kopioi peruskoodi.

Vaihe 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Liitä koodi Arduino IDE: hen

· 12) Muokkaa koodia Lisää tämä rivi määritelmään

Vaihe 9: Koodaustiedot

Lisää tämä rivi määritelmään

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

//** KIRJASTO ** //***************************************** ********************************

#include // ++ GPS -kirjasto

#include // ++ SPI -kirjasto #include

// ++ SD -kirjasto //

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

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

// * SD -kortti kiinnitetty SPI -väylään seuraavasti:

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

// (CS -nasta voidaan vaihtaa) ja nastan 10 (SS) on oltava lähtö

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

// (CS -nasta voidaan vaihtaa) ja nastan 52 (SS) on oltava lähtö

// ** Leonardo: Yhdistä laitteiston SPI: hen ICSP -otsikon kautta

// Nasta 4, jota käytetään tässä johdonmukaisuuden saavuttamiseksi muiden Arduinon esimerkkien kanssa const int chipSelect = 53;

// ++ SD -nastavalitsin

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

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

TinyGPS gps; // ++ GPS Serial2: ssa

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

bool newdataGPS = epätosi; // ++

Lisää tämä rivi asetuksiin ()

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

// ** GPS -sarja -asetukset ** // *************************************** ********************************

Sarja2.alku (9600); // ++

viive (1000); // ++

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

// ** SD -alustus ** // **************************************** *******************************

// varmista, että sirun oletusnasta on asetettu arvoon // ++

// ulostulo, vaikka et käytä sitä: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("SD -kortin alustaminen…")); // ++

// katso onko kortti läsnä ja voidaanko alustaa: // ++

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

Serial.println (F ("Kortti epäonnistui tai sitä ei ole")); // ++

// älä tee mitään muuta: // ++

palata; // ++

} muu {// ++

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

} // ++

Lisää tämä rivi silmukkaan () void

serialEvent2 (); // ++ puhelun GPS -sarjatapahtuma

Lisää SeriaEvent2 -koodi

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

// ** GPS -sarjatapahtuma ** // **************************************** *********************************

void serialEvent2 () {// ++

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

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

// Sarjanjälki (c); // poista kommentit nähdäksesi raa'at GPS -tiedot // ++

jos (gps.koodaus (c)) {// ++

newdataGPS = tosi; // ++

tauko; // älä tulosta uusien tietojen tulostamista heti! // ++

} // ++

} // ++

} // ++

Lisää GPS -tyhjennys

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

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

// ** Kelvollinen leveysaste asteissa on -90 ja +90. **

// ** Pituusaste on alueella -180 ja +180 **

// ** itä-länsi-sijainnin määrittäminen **

//** "123456789 1234567890" **

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

void gpsdump (TinyGPS & gps) // ++

{ // ++

int vuosi; // ++

tavu kuukausi, päivä, tunti, minuutti, toinen, sadasosa; // ++

allekirjoittamaton pitkä ikä; // ++

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

gps.crack_datetime (& vuosi, & kuukausi, & päivä, & tunti, // ++

& minuutti, & toinen, & sadasosa, & ikä); // ++

pitkä lat, lon; // ++

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

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

// ** tee merkkijono tietojen keräämiseksi lokiin: **

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

String dataString = ""; // ++

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

dataString += "."; // ++

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

dataJono += ";"; // ++

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

dataString += "."; // ++

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

dataJono += ";"; // ++

dataString += Merkkijono (static_cast (päivä)); // ++

dataJono += "/"; // ++

dataString += Jono (static_cast (kuukausi)); // ++

dataJono += "/"; // ++

dataString += Jono (vuosi); // ++

dataJono += ";"; // ++

dataString += Merkkijono (staattinen_lähetys (tunti)); // ++

dataString += ":"; // ++

dataString += Jono (static_cast (minuutti)); // ++

dataString += ":"; // ++

dataString += Jono (static_cast (toinen)); // ++ // ******************************************* *****************************

// ** SAVE TO SD ** // *************************************** **********************************

// avaa tiedosto. Huomaa, että vain yksi tiedosto voidaan avata kerrallaan, **

// joten sinun on suljettava tämä ennen toisen avaamista. ** // ********************************************* ***************************

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

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

// ** jos tiedosto on saatavilla, kirjoita siihen: **

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

if (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} muu {// ++

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

} // ++

}

Jos haluat ladata koodin, käy tällä sivulla.

Suositeltava: