Tartalomjegyzék:
- 1. lépés: A bázisállomás építése
- 2. lépés: Az első teszt
- 3. lépés: Hozza létre az interfészt
- 4. lépés: Adja hozzá a mérőt
- 5. lépés: Húzza a GPS -t és adja hozzá az OpenStreetMap -ot
- 6. lépés: Húzza a GPS -mérőt, és adjon hozzá táblázatnaplót
- 7. lépés: Szerezze be a kódot
- 8. lépés: Arduino IDE
- 9. lépés: Részletek kódolása
Videó: Arduino Projekt: Teszttartomány LoRa RF1276 modul GPS nyomkövetéshez Megoldás: 9 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Csatlakozás: USB - soros
Szükség: Chrome böngésző
Szükség: 1 X Arduino Mega
Szükség: 1 X GPS
Szükség: 1 x SD kártya
Szükség: 2 X LoRa RF1276 modem
Funkció: Arduino GPS-érték küldése a fő bázisra-A Dataino Server Lora modul fő adatait tárolja: Az APPCONWIRELESS LoRa ultra nagy hatótávolságú RF1276-a A LoRa egy új, privát és szórt spektrumú modulációs technika, amely lehetővé teszi az adatok rendkívül alacsony adatátviteli sebességgel történő küldését hosszú tartományok. Az alacsony adatsebesség (néhány bájt másodpercenként) és a LoRa moduláció nagyon alacsony vevőérzékenységhez vezet, ami azt jelenti, hogy ebben a tesztben több mint 10 km-t jelent.
1. lépés: A bázisállomás építése
Számítógép szélességű internetkapcsolat és LoRa modem csatlakoztatva az USB porthoz.
Arduino autóskészlet ·
A metrikus doboz
Az Anduino Mega a 2 -es soroshoz csatlakozik a GPS -vevőhöz, a Serial 1 pedig a LoRa -modemhez. Az adatok tárolására SD -kártyát használnak.
2. lépés: Az első teszt
· 10,6 km a városi központokon, galériákon és a part mentén, hurkokkal kialakított ösvényen
A vétel /átvitel aránya 321 /500TX pont
RX pont
3. lépés: Hozza létre az interfészt
1 - Új projekt létrehozása LoRa
Nyomja meg a cog ikont a projekt konfigurációjának megnyitásához
4. lépés: Adja hozzá a mérőt
2) Nyissa ki a mérőcsúszkát.
· 3) Görgessen a GPS -hez.
· 4) Adjon hozzá egyet az asztalhoz.
5. lépés: Húzza a GPS -t és adja hozzá az OpenStreetMap -ot
· 5) Add hozzá az OpenStreetMap térképet az asztalhoz
A GPS összetevőt az ikontérképen húzva létrejön az OpenStreet térkép.
Hozza létre az interfészt
· 6) Térképfrissítés módosítása
Módosítsa a térkép frissítési idejét 5000 -ről 10000 -ra
6. lépés: Húzza a GPS -mérőt, és adjon hozzá táblázatnaplót
· 7) Táblázatnapló -mérő hozzáadása.
A mérőeszköz húzásával a GPS ikon táblája fölött létrejön a mérőasztal naplója
· 8) A táblázat naplójának frissítése. Módosítsa a térkép frissítési idejét 5000 -ről 10000 -ra
Állítsa be a mérők helyzetét
· 9) A húzómérők a képernyőn keresztül húzva állítják be a mérők helyzetét.
· 10) Projekt mentése
7. lépés: Szerezze be a kódot
10) Aktiválja a kód tárolót
Gomb a jobb felső sarokban, válassza ki az összeset, és másolja az alapkódot.
8. lépés: Arduino IDE
· 11) Illessze be a kódot az Arduino IDE -re
· 12) Kód szerkesztése Adja hozzá ezt a sort a definícióhoz
9. lépés: Részletek kódolása
Adja hozzá ezt a sort a definícióhoz
//*************************************************************************
// ** KÖNYVTÁR ** // ***************************************** ********************************
#include // ++ GPS könyvtár
#include // ++ SPI könyvtár #include
++ SD könyvtár //
*************************************************************************
//** SD ** //***************************************** ********************************
// * SD kártya az alábbiak szerint az SPI buszhoz csatlakoztatva:
// ** UNO: MOSI - 11. tű, MISO - 12. tű, CLK - 13. tű, CS - 4. tű
// (a CS pin megváltoztatható) és a #10 (SS) tűnek kimenetnek kell lennie
// ** Mega: MOSI - 51. tű, MISO - 50. tű, CLK - 52. tű, CS - 53. tű
// (a CS -pin megváltoztatható) és az #52 -es (SS) -kimenetnek kimenetnek kell lennie
// ** Leonardo: Csatlakozás a hardveres SPI -hez az ICSP fejlécen keresztül
// A 4. pin itt a többi Arduino példával való összhang érdekében használatos const int chipSelect = 53;
// ++ SD tűválasztó
//*************************************************************************
// ** GPS ** // ***************************************** ********************************
TinyGPS GPS; // ++ GPS a Serial2 -n
void gpsdump (TinyGPS & gps); // ++
bool newdataGPS = hamis; // ++
Adja hozzá ezt a sort a beállításhoz ()
//***********************************************************************
// ** GPS soros beállítás ** // *************************************** ********************************
Serial2.begin (9600); // ++
késleltetés (1000); // ++
//***********************************************************************
// ** SD inicializálás ** // **************************************** *******************************
// győződjön meg arról, hogy az alapértelmezett chipválasztó tű // ++ értékre van állítva
// kimenet, akkor is, ha nem használja: // ++
pinMode (SS, OUTPUT); // ++
Serial.println (F ("SD kártya inicializálása …")); // ++
// nézze meg, hogy a kártya jelen van -e és inicializálható -e: // ++
if (! SD.begin (chipSelect)) {// ++
Serial.println (F ("A kártya sikertelen, vagy nincs jelen")); // ++
// ne csinálj többet: // ++
Visszatérés; // ++
} else {// ++
Serial.println (F ("SD kártya OK")); // ++
} // ++
Adja hozzá ezt a sort a loop () void -hoz
serialEvent2 (); // ++ hívás GPS soros esemény
Adja hozzá a SeriaEvent2 kódot
//*************************************************************************
// ** GPS serialEvent ** // **************************************** *********************************
void serialEvent2 () {// ++
míg (Serial2.available ()) {// ++
char c = Sorozat2.olvasás (); // ++
// Sorozatnyomat (c); // megjegyzés a nyers GPS -adatok megtekintéséhez // ++
ha (gps.kód (c)) {// ++
newdataGPS = igaz; // ++
szünet; // hagyja jóvá az új adatok azonnali nyomtatását! // ++
} // ++
} // ++
} // ++
GPS kiürítés hozzáadása
//*************************************************************************
// ** gps dump ** // **************************************** *********************************
// ** A szélesség érvényes tartománya fokban -90 és +90. **
// ** A hosszúság -180 és +180 között van **
** ** a kelet-nyugati helyzet megadása **
//** "123456789 1234567890" **
//** "000.00000;0000.00000" ** //*************************************************************************
void gpsdump (TinyGPS & gps) // ++
{ // ++
int év; // ++
bájt hónap, nap, óra, perc, másodperc, századok; // ++
előjel nélküli hosszú életkor; // ++
gps.f_get_position (& LATGP00, & LONGP00 és & age); // ++
gps.crack_datetime (& év, & hónap, & nap, & óra, // ++
& perc, & második, & századik, & kor); // ++
hosszú lat, lon; // ++
gps.get_position (& lat, & lon, & age); // ++
// *********************************************************************
// ** készítsen egy karakterláncot az adatok naplózáshoz való összeállításához: **
// *********************************************************************
String dataString = ""; // ++
dataString += (lat / 100000); // ++
dataString += "."; // ++
dataString += lat - (lat / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += (lon / 100000); // ++
dataString += "."; // ++
dataString += lon - (lon / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += Karakterlánc (static_cast (nap)); // ++
dataString += "/"; // ++
dataString += Karakterlánc (static_cast (hónap)); // ++
dataString += "/"; // ++
dataString += Karakterlánc (év); // ++
dataString += ";"; // ++
dataString += Karakterlánc (static_cast (óra)); // ++
dataString += ":"; // ++
dataString += Karakterlánc (static_cast (perc)); // ++
dataString += ":"; // ++
dataString += Karakterlánc (static_cast (második)); // ++ // ******************************************** *****************************
// ** SAVE to SD ** // *************************************** **********************************
// nyissa meg a fájlt. vegye figyelembe, hogy egyszerre csak egy fájl nyitható meg, **
// tehát be kell zárni ezt, mielőtt kinyit egy másikat. ** // ********************************************** ***************************
File dataFile = SD.open ("gps00.txt", FILE_WRITE); // ++
// ***********************************************************************
// ** ha a fájl elérhető, írjon neki: **
// ***********************************************************************
if (dataFile) {// ++
dataFile.println (dataString); // ++
dataFile.close (); // ++
} else {// ++
Serial.println (F ("ERROR SD Write")); // ++
} // ++
}
Ha le szeretné tölteni a kódot, látogasson el erre az oldalra.
Ajánlott:
Fényszennyező megoldás - Artemis: 14 lépés
Fényszennyezési megoldás - Artemis: A fényszennyezés mindannyiunkat érint világszerte. Az izzó feltalálása óta a fény sokkal népszerűbb lett, és kifejezetten olyan nagyvárosokban használták, mint New York City és Chicago. Mindez a fény hatással lehet
Labirintus megoldás Boe-Bot: 3 lépés
Labirintusmegoldó Boe-Bot: Helló! A nevem Maahum Imran. A 11. osztályos technológiai osztály tagja vagyok. Feladatunk volt, hogy vegyük el Boe-Bot-jainkat, és programozzuk be, hogy ügyesen menjünk át egy labirintuson. Ez eleinte kemény kihívás volt, és bevallom, a segédeszköz nélkül
IOT megoldás a megosztó kerékpárhoz: 6 lépés
IOT megoldás a megosztó kerékpárhoz: A megosztó kerékpár manapság nagyon népszerű Kínában. A piacon több mint 10 márkájú megosztott kerékpár található, és a “ mobike ” a leghíresebb, több mint 100 millió regisztrált felhasználóval rendelkezik, és más városokban is elterjedt
Teljes Arduino rotációs megoldás: 5 lépés
Teljes Arduino forgó megoldás: A forgó jeladók forgatható vezérlőgombok elektronikus projektekhez, gyakran használják az Arduino család mikrovezérlőivel. Használhatók a paraméterek finomhangolására, a menükben való navigálásra, objektumok mozgatására a képernyőn, bármilyen érték beállítására. Gyakori helyettesek
SKY CAM és légi kamera megoldás: 10 lépés (képekkel)
SKY CAM - Légi kamera Megoldás: Ez az oktatható útmutató bemutatja, hogyan készítettem egy távvezérlő (félautomata) kábelkábel -rendszert a GCSE Electronic Products Project projektemhez az iskolában, és remélhetőleg lehetővé teszi, hogy saját rendszert hozzon létre! Ezt durva útmutatónak szánják