Turinys:

Naminis realaus laiko GPS sekiklis (SIM800L, „Ublox NEO-6M“, „Arduino“): 8 žingsniai
Naminis realaus laiko GPS sekiklis (SIM800L, „Ublox NEO-6M“, „Arduino“): 8 žingsniai

Video: Naminis realaus laiko GPS sekiklis (SIM800L, „Ublox NEO-6M“, „Arduino“): 8 žingsniai

Video: Naminis realaus laiko GPS sekiklis (SIM800L, „Ublox NEO-6M“, „Arduino“): 8 žingsniai
Video: best gps fish finder 2024, Lapkritis
Anonim
Naminis realaus laiko GPS sekiklis (SIM800L, „Ublox NEO-6M“, „Arduino“)
Naminis realaus laiko GPS sekiklis (SIM800L, „Ublox NEO-6M“, „Arduino“)

Taigi, ar jūs, kaip aš, guli GSM modulis? Taip pat GPS sekimo priemonė?

Mes galvojame tą patį!

Šioje instrukcijoje aš bandysiu jums padėti, kaip pasiekti savo tikslą naujoko požiūriu.

Kadangi neturėjau ankstesnių žinių apie elektros inžineriją (tiesą pasakius, projektui to nereikia tiek daug, bet ne) ir nežinojau, kaip sukurti įrenginį, kuris siunčia duomenis realiuoju laiku į žiniatinklio serverį, susidūriau su daugybe problemų. Vis dėlto galų gale man pavyko susitvarkyti.

Taigi šioje pamokoje noriu pabrėžti pradedančiojo klaidas ir atitinkamai sudaryti projektą.

Atminkite: dirbdami su elektra visada būkite atsargūs!

PASTABA: nesu profesionalus. Kodas gali būti nepakankamai sudėtingas visiems jūsų poreikiams. Projektas yra „hobio projektas“, bet! man tai pavyko. Ir jei tai veiktų man, tai tiktų ir jums!

1 žingsnis: Būtinos sąlygos

Būtinos sąlygos
Būtinos sąlygos
Būtinos sąlygos
Būtinos sąlygos
Būtinos sąlygos
Būtinos sąlygos

GSM MODULIS - SIM800L

  • Gana mažas, lengvai naudojamas
  • Galimybė naudotis mobiliuoju internetu (GPRS)
  • Pigu

GPS MODULIS - „Ublox NEO6M“

  • Taip pat mažas
  • Puikiai atlieka savo darbą

Mikrovaldiklis - gali būti bet koks - galite naudoti garsųjį „Arduino Uno“arba „Nano“, kad atlaisvintumėte vietos

Baterija - aš naudoju 18650 elementą kaip pagrindinį ir vienintelį maitinimo šaltinį (nominalus 3,7 V)

Akumuliatoriaus laikiklis - kodėl? - nes lituoti 18650 bateriją yra gana pavojinga dėl karščio.

„DC -DC Boost Converter“padidinimo modulis 5V - turi būti, nes mano naudojamam „Arduino“reikia 5V

Įrankiai, pagrindiniai dalykai, kurie gali būti naudingi:

Laidai, lituoklis, bandymo lenta bandymui

2 žingsnis: pagrindinė koncepcija

Pagrindinė koncepcija
Pagrindinė koncepcija

Pagrindinė sistemos koncepcija yra tokia:

Jį sudaro 3 dalys:

  1. Įrenginys, kuris turi tinkamas GPS koordinates ir gali nuotoliniu būdu prisijungti prie serverio ir į jį siųsti duomenis
  2. Žiniatinklio serveris, galintis priimti gaunamus duomenis, juos saugo ir aptarnauja kitus klientus
  3. Platforma - kurioje galime peržiūrėti koordinates - Idealiu atveju tai dabar turėtų būti mobilioji programa arba svetainė

3 žingsnis: SIM800L modulis

SIM800L modulis
SIM800L modulis
SIM800L modulis
SIM800L modulis

Man buvo sunku su moduliu.

Norėčiau pradėti nuo kai kurių savybių ir nuorodų.

Pagal duomenų lapą:

  • Jis veikia nuo 3,4V iki 4,4V
  • Jis gali siųsti SMS, skambinti balsu į kitus telefonus ir netgi prisijungti prie interneto!
  • Mes galime su juo bendrauti per AT komandas!
  • Piko metu jis gali naudoti iki 2A! Pastaba: tikriausiai negalėsite jo išmatuoti multimetru - dėl mažo mėginių ėmimo dažnio

Mano patirtis rodo, kad SIM800L žemiau 3.8V tikrai neveikia.

Norėdami gauti daugiau informacijos, apsilankykite: duomenų lape

Taigi jūsų darbas yra aprūpinti modulį mažiausiai 3,8 V įtampa (idealiu atveju - 4 V), maitinimo šaltinį, kurio išėjimas yra ne mažesnis kaip 2A.

Prieš naudodami modulį galutiniame įrenginyje, siūlau užmegzti ryšį su SIM800L ir kompiuteriu, kad įsitikintumėte, jog įrenginys veikia tinkamai.

Pirmiausia įjunkite SIM kortelę, kaip parodyta aukščiau esančiame paveikslėlyje.

Norėdami prijungti jį prie kompiuterio, galite naudoti USB į TTL keitiklį arba „Arduino“.

Dabar aš einu su „Arduino“.

Prijunkite SIM800L VCC ir GND prie maitinimo šaltinio gnybtų.

Prijunkite TX prie „Arduino“10 -ojo skaitmeninio kaiščio, RX prie „arduino“11 -ojo skaitmeninio kaiščio.

Atsisiųskite kodą, kurį susiejau šiame veiksme.

Turėdami kodą, galite siųsti komandas ir jas atgauti serijiniame monitoriuje.

Keletas paprastų komandų:

AT Grąžina Gerai, jei ryšys yra geras.

ATD+123456789; Skambinkite nurodytu telefono numeriu. Pastaba: nepamirškite baigti kabliataškiu.

AT+CPIN? Pateikiama SIM kortelės būsena (užrakinta arba ne)

Jei norite išsiųsti SMS, įvestį turite baigti specialiu simboliu, tai galima padaryti naudojant simbolį „$“.

Dėl kitų įdomių komandų siūlau perskaityti šią.

Yra įvairių komandų, susipažinkite su jomis, jos tikrai naudingos.

Yra raudonas būsenos šviesos diodas, nurodantis SIM800L veikimą.

64 MS ON - 800MS OFF - SIM800L nėra užregistruotas tinkle.

64 MS ON - 3000MS OFF - SIM800L yra užregistruotas tinkle.

64 MS ON - 300MS OFF - SIM800l veikia GPRS režimu

Jei SIM800L vėl įsijungia maždaug po 8–10 mirksėjimų, tai gali būti dėl to, kad trūksta efektyvaus maitinimo šaltinio.

Jei po AT nesiseka, patikrinkite laidus! Jei turite multimetrą, patikrinkite laidų tęstinumą.

Patikrinkite laidų ir litavimo jungčių jungtis! Modulis veiks tik mirksint.

4 žingsnis: „Ublox Neo 6m“

Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m

Kai kurios savybės

  • Maksimali įtampa: 3,6 V - maitinau jį su „Arduino“3,3 V kaiščiu
  • Maksimali srovės srovė yra 67 mA, todėl galite ją maitinti iš „arduino“
  • Temperatūros diapazonas: -40-85 Celsijaus (manau, kad jums tiks)

Mano užsakytas įrenginys buvo su antena, matoma paveikslėlyje, aš tiesiog įkišu jį į atitinkamą lizdą.

Kai prietaisas turi signalus, jis mirksi su mėlynu šviesos diodu.

Pirmiausia patikrinkite, kaip čia veikia GPS, jei nežinote.

Kai įrenginys įjungtas ir randa 3 palydovus, jis siunčia daug kableliais atskirtų reikšmių „Arduino“, kaip nurodyta aukščiau.

Norėdami palengvinti savo darbą, galime naudoti kai kurias išorines bibliotekas, kad išanalizuotume šiuos duomenis, kad juos būtų lengviau skaityti žmonėms.

Galite naudoti „TinyGps“biblioteką arba „NeoGPS“biblioteką. Aš naudoju antrąjį, nes jis yra lengvesnis.

Norėdami atlikti bandymus, turite prijungti maitinimo kaiščius prie arduino 3.3V ir GND.

Atsisiųskite šį kodą ir naudokite jį su GPS. RX skaitmeninis kaištis 10, TX skaitmeninis kaištis 11

Pastaba: nepamirškite naudoti modulio lauke, geriausia, kai nėra debesies.

Po pusės minutės prietaisas turėtų mirksėti ir išvesti jūsų GPS koordinates!:)

Kai žinote, kad jūsų SIM800L ir GPS modulis veikia tinkamai, galite pereiti prie kito žingsnio.

5 žingsnis: grandinė

Grandinės
Grandinės

Grandinė tokia kaip paveikslėlyje.

Taigi, 3,4V - 4,2V 18650 baterija yra pagrindinis energijos šaltinis. Sim800L energiją gauna tiesiai iš jo. Siekiant pagerinti grandinės stabilumą, tarp jų yra kondensatorius.

Renkantis kondensatorių, turėtumėte pasirinkti mažą ESR talpą.

Vienas 5 V pakopinis keitiklis padidina akumuliatoriaus įtampą iki 5 V (to reikia, nes „Arduino“veikia su 5 V įtampa).

5 V maitinimo šaltinis čia prijungtas prie „Nano“. „Sim800L“ir „Neo6m“yra prijungti prie „Nano“, kaip parodyta paveikslėlyje. („Sim Tx-D10“, „SimRx-D11“; „NeoTX-D3“, „NeoRX-D4“)

D12 yra prijungtas prie RST, todėl galime programiškai iš naujo paleisti sistemą (išskyrus SIM800L). PASTABA: šis perkrovimo metodas gali būti ne geriausia praktika)

Ir galiausiai, du šviesos diodai yra prijungti prie NANO, kad galėtume pasakyti vartotojui, jei įvyksta kokia nors klaida.

6 žingsnis: kodas

Kodas pridedamas prie „Instructables“arba pažiūrėkite į „github“.

Galite jį pakeisti, kad tinkamai veiktų pagal jūsų poreikius, arba, jei norite, galite naudoti kito kodą.

waitUntilResponse (); pagalbinė funkcija buvo paimta iš jo kodo. Patikrinkite jo darbą ir kodą!

Trumpai tariant, sąrankos funkcijoje turime įgalinti mūsų SIM800L modulio GPRS ryšį. Mes žinome, ar tai pavyks, jei šviesos diodas greitai mirksi. (setupGPRSConnection ())

Ciklo funkcijoje - kas 15 sekundžių iškviečiama funkcija sendData (), kuri turi HTTP užklausą

Aš naudoju užklausos eilutes, norėdamas perduoti duomenis į žiniatinklio serverį tokiu formatu:

ip adresas/file.php? key = value & key = value pvz.

Jei įvyksta klaida, užsidega atitinkamas šviesos diodas. (SIM, GPS)

7 veiksmas: tinklalapio serveris

Tinklapio serveris
Tinklapio serveris

Mūsų naudojimui pakanka paprasto lengvo žiniatinklio serverio.

Yra keletas variantų, kuriuos galite pasirinkti:

  1. Galite naudoti nuotolinį įmonės serverį, už kurį tikriausiai turite reguliariai mokėti.
  2. Galite naudoti savo kompiuterį. Siūlau tik bandymams, tai nėra labai efektyvu paleisti visą parą, dėl energijos švaistymo, saugumo problemų.
  3. Galite naudoti mažą kompiuterį, pvz., Raspberry PI. Lengvas, pigus, nevartoja daug energijos.

Aš išbandžiau antrąjį ir trečiąjį variantus, jie gerai veikė. Na, pagrindinis tikslas nėra šios instrukcijos serveriai, bet aš jums patariu.

Jei naudojate kompiuterį, tikriausiai naudojate „Windows“. Jei aš būčiau tu, aš į jį įdiegčiau „Apache“arba „XAMPP“serverį.

„XAMPP“jau turi PHP, be to, jame yra HTML, „Perl“ir duomenų bazių valdymo sistema. Naudodami PHP galite sukurti dinamišką serverį. Jei norite naudoti ką tik sukurtą vietinį serverį iš bet kurios pasaulio vietos, turite priskirti savo kompiuteriui statinį IP ir atlikti tam tikrą perkėlimą. Naudinga pamoka apie statinį IP:

Ir visas perkėlimo dalykas:

Jei turite avietę, gera praktika ją naudoti. Galite susipažinti su „Linux“komandomis ir paleisti savo serverį visą parą.

Operacinė sistema buvo „Raspbian Jessie“su sąranka be galvos (be klaviatūros, monitoriaus) - valdžiau ją kompiuteriu su SSH ryšiu.

Aš naudoju „Putty“prisijungdamas prie savo „Raspberry“. Nepamirškite pakeisti savo paskyros slaptažodžio, kad kiti negalėtų prisijungti prie jūsų Pi. Numatytasis yra: pi, passw: aviečių.

Įdiegiau „lighttpd“žiniatinklio serverį su „sqlite3“. Gera pamoka čia:

Serverio kode daugiausia naudoju PHP. Naudodami PHP galite gauti duomenis, skaityti/rašyti duomenų bazes - koduoti užklausą į „json“formatą ir pan.

Mano kodą taip pat galite peržiūrėti „github“aplanke „server_files“.

Ir, žinoma, turite įgalinti perkėlimą į „Pi“savo maršrutizatoriuje, jei norite jį pasiekti nuotoliniu būdu.

8 žingsnis: pabaiga/patirtis

Aptvaras dar nepadarytas.

Mano patirtis tokia, kad sistema veikia neblogai. Tačiau laukia stabilumo patobulinimai.

Jei sekimo priemonė neveikia su pridėtu kodu, nesijaudinkite. Pabandykite įsitikinti, kad SIM800L ir NEO 6M veikia taip, kaip turėtų. Galite laisvai keisti mano kodą arba ieškoti geresnio. Tikiuosi, kad galėčiau parodyti jums pavyzdį, kaip galite užbaigti šį projektą.

Priimu bet kokius patarimus, pataisymus iš komentarų. Nesidrovėkite klausti.

Rekomenduojamas: