Sadržaj:

Domaći GPS tracker u stvarnom vremenu (SIM800L, Ublox NEO-6M, Arduino): 8 koraka
Domaći GPS tracker u stvarnom vremenu (SIM800L, Ublox NEO-6M, Arduino): 8 koraka

Video: Domaći GPS tracker u stvarnom vremenu (SIM800L, Ublox NEO-6M, Arduino): 8 koraka

Video: Domaći GPS tracker u stvarnom vremenu (SIM800L, Ublox NEO-6M, Arduino): 8 koraka
Video: Jednostavan, povoljan i moderan sustav za GPS praćenje vozila i imovine. 2024, Juli
Anonim
Domaći GPS tracker u stvarnom vremenu (SIM800L, Ublox NEO-6M, Arduino)
Domaći GPS tracker u stvarnom vremenu (SIM800L, Ublox NEO-6M, Arduino)

Znači imaš GSM modul koji leži poput mene? Takođe GPS-tragač?

Mi isto mislimo!

U ovim uputama pokušat ću vas uputiti kako postići novi cilj iz perspektive početnika.

Kako nisam imao prethodno znanje o elektrotehnici (da budem iskren, projektu ne treba toliko, ali ne), a nisam imao pojma ni kako napraviti uređaj koji upućuje podatke u stvarnom vremenu na web poslužitelj, naišao sam na brojne probleme. Ipak, na kraju sam uspio natjerati stvari da rade.

Dakle, u ovom vodiču želim naglasiti greške koje početnik može napraviti i u skladu s tim izgraditi projekt.

Zapamtite: Uvijek budite oprezni dok radite na struji!

NAPOMENA: Nisam profesionalac. Kôd možda nije dovoljno sofisticiran za sve vaše potrebe. Namjera projekta je da bude "hobi projekt", ali! meni je to uspjelo. A da je meni uspjelo, uspjelo bi i vama!

Korak 1: Preduslovi

Preduslovi
Preduslovi
Preduslovi
Preduslovi
Preduslovi
Preduslovi

GSM MODUL - SIM800L

  • Prilično sićušno, jednostavno za upotrebu
  • Mogućnost korištenja mobilnog interneta (GPRS)
  • Cheap

GPS MODUL - Ublox NEO6M

  • Takođe mali
  • Odlično obavlja svoj posao

Mikrokontroler - može biti bilo što - mogli biste upotrijebiti poznati Arduino Uno ili Nano da oslobodite malo prostora

Baterija - Koristio sam 18650 ćeliju kao glavni i jedini izvor napajanja (nominalnih 3,7 V)

Držač baterije - zašto? - jer je lemljenje 18650 baterije prilično opasno zbog topline.

Modul za pojačavanje DC -DC pretvarača za pojačavanje 5V - Mora imati, budući da je Arduino koji sam koristio trebao 5V

Alati, osnovne stvari koje vam mogu dobro doći:

Žice, lemilica, ploča za testiranje

Korak 2: Glavni koncept

Glavni koncept
Glavni koncept

Glavni koncept sistema je sljedeći:

Sastoji se od 3 dijela:

  1. Uređaj - koji ima odgovarajuće GPS koordinate i može se daljinski povezati s poslužiteljem i na njega slati podatke
  2. Web poslužitelj - koji može primati dolazne podatke - pohranjivati ih - i opsluživati druge klijente
  3. Platforma - na kojoj možemo vidjeti koordinate - idealno bi sada bila mobilna aplikacija ili web stranica

Korak 3: Modul SIM800L

Modul SIM800L
Modul SIM800L
Modul SIM800L
Modul SIM800L

Bilo mi je teško sa modulom.

Htio bih početi s nekim karakteristikama i referencama.

Prema tehničkom listu:

  • Radi između 3.4V - 4.4V
  • Može slati SMS -ove, upućivati glasovne pozive na druge telefone, pa čak i povezati se na internet!
  • S njim možemo komunicirati putem AT-naredbi!
  • Može koristiti do 2A u vrijeme najvećih opterećenja! Napomena: vjerojatno ga nećete moći mjeriti multimetrom - zbog niskih stopa uzorkovanja

Moje iskustvo je da SIM800L ispod 3.8V zapravo ne radi.

Za dodatne informacije posjetite: podatkovni list

Dakle, vaš je posao opskrbiti modul s najmanje 3,8 V (idealno 4 V), napajanjem koje emitira najmanje 2A.

Prije upotrebe modula u posljednjem uređaju, predlažem vam da uspostavite komunikaciju sa svojim SIM800L i računarom kako biste bili sigurni da vaš uređaj radi ispravno.

Prvo, priključite SIM karticu kao na gornjoj slici.

Da biste ga povezali sa računarom, možete koristiti USB u TTL pretvarač ili Arduino.

Sada idem s Arduinom.

Spojite SIM800L VCC i GND na priključke izvora napajanja.

Spojite TX na Arduino 10. digitalni pin, RX na arduino 11. digitalni pin.

Preuzmite kôd koji sam povezao u ovom koraku.

Pomoću koda možete poslati naredbe i vratiti ih na svoj serijski monitor.

Nekoliko jednostavnih naredbi:

AT Vraća OK, ako je veza OK.

ATD+123456789; Pozovite dati telefonski broj. Napomena: Ne zaboravite završiti točkom -zarezom.

AT+CPIN? Vraća status SIM kartice (zaključana ili ne)

Ako želite poslati SMS, morate završiti unos posebnim znakom, što se može učiniti simbolom '$'.

Za dalje zanimljive komande predlažem da ovo pročitate.

Postoje razne naredbe, upoznajte se s njima, zaista su korisne.

Postoji crvena statusna LED lampica koja vam govori u kojoj je operaciji SIM800L.

64 MS ON - 800MS OFF - SIM800L nije registriran na mreži.

64 MS ON - 3000MS OFF - SIM800L je registriran na mreži.

64 MS ON - 300MS OFF - SIM800l je u GPRS načinu rada

Ako se SIM800L ponovo pokreće nakon približno 8-10 treptaja, to može biti posljedica nedostatka efikasnog napajanja.

Ako nakon AT -a ne uspijete, provjerite ožičenje! Ako imate multimetar, provjerite kontinuitet žica.

Provjerite spojeve žica i lemnih spojeva! Modul će raditi samo kada treperi.

Korak 4: Ublox Neo 6m

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

Neke karakteristike

  • Maksimalni napon: 3.6V - Napajao sam ga sa Arduinovim 3.3V pinom
  • Maksimalno strujno napajanje je 67mA - tako da ga možete napajati iz arduina
  • Raspon temperature: -40-85 Celzijusa (pretpostavljam da će vam odgovarati)

Jedinica koju sam naručio dolazi s antenom koja se vidi na slici, samo je priključujem u odgovarajući utor.

Uređaj kada ima signale treperi plavom LED diodom.

Prvo provjerite kako GPS funkcionira ovdje ako ne znate.

Kada je uređaj uključen i pronađe 3 satelita, šalje mnogo vrijednosti odvojenih zarezima u Arduino, kao što je gore navedeno.

Kako bismo olakšali svoj posao, možemo upotrijebiti neke vanjske biblioteke za raščlanjivanje ovih podataka kako bi bili čitljiviji ljudima.

Možete koristiti biblioteku TinyGps ili NeoGPS. Koristio sam drugu jer je lakša.

Za testiranje morate priključiti pinove za napajanje na arduino 3.3V i GND.

Preuzmite ovaj kôd i upotrijebite ga sa svojim GPS -om. RX digitalni pin 10, TX digitalni pin 11

Napomena: Ne zaboravite koristiti modul na otvorenom, po mogućnosti kad nema oblaka.

Nakon pola minute uređaj bi trebao treptati i emitirati vaše GPS koordinate!:)

Kad znate da vaš SIM800L i GPS modul rade ispravno, možete prijeći na sljedeći korak.

Korak 5: Strujna kola

Strujna kola
Strujna kola

Kolo je kao na slici.

Dakle, 3.4V - 4.2V 18650 baterija je glavni izvor napajanja. Sim800L dobija energiju direktno iz njega. Paralelno postoji kondenzator između njih kako bi se poboljšala stabilnost kola.

Kada odaberete kondenzator, trebali biste odabrati nizak ESR kondenzator.

Jedan pretvarač od 5 V pojačava napon baterije na 5 V (potrebno je jer Arduino radi s 5 V).

Ovdje je 5 -voltni vod spojen na Nano. Sim800L i Neo6m su povezani sa Nano -om kao na slici. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 je spojen na RST, pa smo u mogućnosti programski ponovo pokrenuti sistem (osim SIM800L). NAPOMENA: Ova metoda ponovnog pokretanja možda nije najbolja praksa)

I na kraju, dvije LED diode su spojene na NANO, tako da možemo reći korisniku ako se dogodi neka greška.

Korak 6: Kodiranje

Kôd je priložen Instructables -u ili pogledajte github.

Možete ga izmijeniti kako bi ispravno radio za vaše potrebe ili možete koristiti tuđi kod ako želite.

waitUntilResponse (); pomoćna funkcija je preuzeta iz njegovog koda. Proverite njegov rad, i kodirajte takođe!

Ukratko, u funkciji postavljanja moramo omogućiti GPRS vezu našeg SIM800L modula. Znamo je li uspješno ako LED dioda brzo treperi. (setupGPRSConnection ())

U funkciji petlje - svakih 15 sekundi poziva se funkcija sendData () - koja ima HTTP zahtjev

Koristio sam nizove upita za prebacivanje podataka na web poslužitelj u ovom formatu:

ip adresa/file.php? ključ = vrijednost & ključ = vrijednost npr.

Ako dođe do bilo koje greške, odgovarajuća LED lampica će zasvijetliti. (SIM, GPS)

Korak 7: Web server

Web server
Web server

Za našu upotrebu dovoljan je jednostavan lagani web server.

Postoji nekoliko opcija koje možete izabrati:

  1. Možete koristiti udaljeni server neke kompanije, za koji vjerovatno morate redovno plaćati.
  2. Možete koristiti svoj računar. Predlažem samo za testiranje, nije baš efikasno raditi 24 sata dnevno, 7 dana u tjednu, zbog rasipanja energije i sigurnosnih problema.
  3. Možete koristiti mali računar, poput Raspberry PI. Lagan, jeftin, ne troši mnogo energije.

Probao sam drugu i treću opciju, dobro su funkcionirale. Pa, glavni cilj nisu serveri ovih instrukcija, ali vam nagovještavam neke savjete.

Ako koristite računar, vjerovatno koristite Windows. Na vašem mjestu bih instalirao Apache ili XAMPP server.

XAMPP već ima PHP u sebi, osim toga dolazi sa HTML -om, Perlom i sistemom za upravljanje bazom podataka. Pomoću PHP -a možete napraviti dinamički server. Ako želite koristiti lokalni poslužitelj koji ste upravo napravili s bilo kojeg mjesta na svijetu, morate dodijeliti statičku IP adresu svom računaru i izvršiti neko prosljeđivanje portova. Korisni vodič za statičku IP adresu:

I cijela stvar oko prosljeđivanja:

Ako imate malinu, dobra je praksa da je koristite. Možete se upoznati s Linux naredbama i pokrenuti vlastiti poslužitelj 24 sata dnevno.

OS je bio Raspbian Jessie sa postavkom bez glave (bez tastature, monitora) - kontrolisao sam ga pomoću računara sa SSH vezom.

Koristio sam Putty za prijavu na svoj Raspberry. Ne zaboravi promijeniti lozinku svog računa kako se drugi ne bi mogli prijaviti na tebe Pi. Zadano je: pi, passw: raspberry.

Instalirao sam lighttpd web server sa sqlite3. Ovdje možete pronaći dobar vodič:

Koristio sam uglavnom PHP u kodu servera. Pomoću PHP -a možete primati podatke, čitati/pisati baze podataka - kodirati upit u json format itd. … Ovaj vodič će vam mnogo pomoći u upravljanju bazom podataka pomoću PHP -a.

Moj kôd možete pogledati i na githubu, u mapi server_files.

I naravno, morate omogućiti prosljeđivanje porta na svoj Pi na svom usmjerivaču, ako želite tome pristupiti daljinski.

Korak 8: Završetak/iskustvo

Ograda se tek treba napraviti.

Moje iskustvo je da sistem ne radi tako loše. Ali čekaju se poboljšanja stabilnosti.

Ne brinite ako alat za praćenje nije radio s kodom koji sam priložio. Pokušajte provjeriti rade li SIM800L i NEO 6M kako bi trebali. Možete slobodno izmijeniti moj kôd ili potražiti bolji. Nadam se samo da bih vam mogao pokazati primjer kako možete dovršiti ovaj projekt.

Prihvatam svaki savet, ispravku iz komentara. Slobodno pitajte.

Preporučuje se: