Obsah:

Domácí GPS tracker v reálném čase (SIM800L, Ublox NEO-6M, Arduino): 8 kroků
Domácí GPS tracker v reálném čase (SIM800L, Ublox NEO-6M, Arduino): 8 kroků

Video: Domácí GPS tracker v reálném čase (SIM800L, Ublox NEO-6M, Arduino): 8 kroků

Video: Domácí GPS tracker v reálném čase (SIM800L, Ublox NEO-6M, Arduino): 8 kroků
Video: Průvodce nastavením Invoxia GPS Pet Tracker 2024, Červenec
Anonim
Domácí GPS tracker v reálném čase (SIM800L, Ublox NEO-6M, Arduino)
Domácí GPS tracker v reálném čase (SIM800L, Ublox NEO-6M, Arduino)

Takže máte GSM modul ležící jako já? Také GPS tracker?

Myslíme to samé!

V tomto návodu se vás pokusím provést, jak dosáhnout svého cíle z pohledu nováčka.

Jelikož jsem neměl žádné předchozí znalosti elektrotechniky (abych byl upřímný, projekt toho tolik nepotřebuje, ale ne) a neměl jsem ponětí, jak vytvořit zařízení, které pumpuje data v reálném čase na webový server, setkal jsem se s mnoha problémy. Přesto se mi nakonec podařilo dát věci do práce.

V tomto tutoriálu tedy chci zdůraznit chyby, kterých se startér může dopustit, a podle toho projekt sestavit.

Pamatujte: Při práci s elektřinou buďte vždy opatrní!

POZNÁMKA: Nejsem profesionál. Kód nemusí být dostatečně propracovaný pro všechny vaše potřeby. Projekt je zamýšlen jako „hobby projekt“, ale! fungovalo to pro mě. A kdyby to fungovalo pro mě, bude to fungovat i pro vás!

Krok 1: Předpoklady

Předpoklady
Předpoklady
Předpoklady
Předpoklady
Předpoklady
Předpoklady

GSM MODUL - SIM800L

  • Docela malé, snadno použitelné
  • Možnost používání mobilního internetu (GPRS)
  • Levný

GPS MODUL - Ublox NEO6M

  • Také malé
  • Svou práci zvládá velmi dobře

Mikrokontrolér - může to být cokoli - k uvolnění místa můžete použít slavné Arduino Uno nebo Nano

Baterie - jako hlavní a jediný zdroj energie jsem použil článek 18650 (nominální 3,7 V)

Držák baterie - proč? - protože pájení baterie 18650 je kvůli horku docela nebezpečné.

DC -DC Boost Converter Step Up Module 5V - Musí mít, protože Arduino, který jsem použil, potřebuje 5V

Nástroje, základní věci, které se mohou hodit:

Dráty, páječka, prkénko na testování

Krok 2: Hlavní koncept

Hlavní koncept
Hlavní koncept

Hlavní koncept systému je následující:

Skládá se ze 3 částí:

  1. Zařízení - které má správné souřadnice GPS a může se vzdáleně připojit k serveru a odesílat na něj data
  2. Webový server - který může přijímat příchozí data - ukládat je - a obsluhovat ostatní klienty
  3. Platforma - kde můžeme zobrazit souřadnice - V ideálním případě by to nyní měla být mobilní aplikace nebo web

Krok 3: Modul SIM800L

Modul SIM800L
Modul SIM800L
Modul SIM800L
Modul SIM800L

Měl jsem s modulem těžké časy.

Chtěl bych začít s některými charakteristikami a referencemi.

Podle datového listu:

  • Pracuje mezi 3,4 V - 4,4 V.
  • Může odesílat SMS, telefonovat na jiné telefony a dokonce se připojit k internetu!
  • Můžeme s ním komunikovat pomocí AT příkazů!
  • Ve špičce může použít až 2A! Poznámka: pravděpodobně ji nebudete moci změřit multimetrem - kvůli nízkým vzorkovacím frekvencím

Moje zkušenost je, že SIM800L pod 3,8 V opravdu nefunguje.

Další informace naleznete na: datasheetu

Vaším úkolem tedy je poskytnout modulu minimálně 3,8 V (ideálně 4 V), což je napájecí zdroj s výstupem alespoň 2 A.

Před použitím modulu v koncovém zařízení vám doporučujeme navázat komunikaci se zařízením SIM800L a počítačem, abyste se ujistili, že vaše zařízení funguje správně.

Nejprve nejprve vložte SIM kartu jako na obrázku výše.

K propojení s počítačem můžete použít převodník USB na TTL nebo Arduino.

Nyní jdu s Arduinem.

Připojte SIM800L VCC a GND ke svorkám zdroje napájení.

Připojte TX k 10. digitálnímu pinu Arduino, RX k 11. digitálnímu pinu arduino.

Stáhněte si kód, který jsem v tomto kroku propojil.

Pomocí kódu můžete odesílat příkazy a získat je zpět na sériovém monitoru.

Některé jednoduché příkazy:

AT vrátí OK, pokud je připojení v pořádku.

ATD+123456789; Volejte na uvedené telefonní číslo. Poznámka: Nezapomeňte to zakončit středníkem.

AT+CPIN? Vrací stav SIM karty (zamčeno nebo ne)

Pokud chcete odeslat SMS, musíte zadávání ukončit speciálním znakem, lze to provést pomocí symbolu '$'.

Pro další zajímavé příkazy doporučuji přečíst si toto.

Existují různé příkazy, seznamte se s nimi, jsou opravdu užitečné.

Červená stavová LED dioda indikuje, v jakém provozu je SIM800L.

64 MS ON - 800MS OFF - SIM800L není zaregistrován v síti.

64 MS ON - 3000MS OFF - SIM800L je registrován v síti.

64 MS ON - 300MS OFF - SIM800l je v režimu GPRS

Pokud se SIM800L restartuje přibližně po 8–10 bliknutí, může to být způsobeno nedostatkem efektivního napájení.

Pokud vám po AT nedojde, zkontrolujte zapojení! Pokud máte multimetr, zkontrolujte kontinuitu vodičů.

Zkontrolujte připojení vodičů a pájených spojů! Modul bude fungovat pouze při blikání.

Krok 4: Ublox Neo 6m

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

Některé vlastnosti

  • Maximální napětí: 3,6 V - napájel jsem ho pinem Arduino 3,3 V
  • Maximální odběr proudu je 67 mA - můžete jej tedy napájet z arduina
  • Teplotní rozsah: -40-85 stupňů Celsia (myslím, že vám to bude vyhovovat)

Jednotka, kterou jsem si objednal, byla dodávána s anténou na obrázku, jen jsem ji zapojil do odpovídajícího slotu.

Pokud má zařízení signály, bliká modře.

Pokud nevíte, nejprve zkontrolujte, jak funguje GPS.

Když je zařízení zapnuté a najde 3 satelity, odešle do Arduina mnoho hodnot oddělených čárkou, jako výše.

Abychom pomohli naší práci, můžeme použít některé externí libarary k analýze těchto dat tak, aby byly čitelnější pro člověka.

Můžete použít knihovnu TinyGps nebo knihovnu NeoGPS. Použil jsem druhý, protože je lehčí.

Pro testování musíte připojit napájecí piny k arduino 3.3V a GND.

Stáhněte si tento kód a použijte jej s GPS. Digitální pin RX 10, TX digitální pin 11

Poznámka: Nezapomeňte modul používat venku, nejlépe když není žádný mrak.

Po půl minutě by zařízení mělo blikat a zobrazit vaše GPS souřadnice!:)

Jakmile víte, že váš modul SIM800L a modul GPS fungují adekvátně, můžete přejít k dalšímu kroku.

Krok 5: Obvod

Obvod
Obvod

Obvod je jako na obrázku.

Hlavním zdrojem energie je tedy baterie 3,4 V - 4,2 V 18650. Sim800L získává energii přímo z něj. Paralelně je mezi nimi kondenzátor, aby se zlepšila stabilita obvodu.

Při výběru kondenzátoru byste měli zvolit nízkou hodnotu ESR.

Jeden 5V krokový převodník zvyšuje napětí baterie na 5V (ir je potřeba, protože Arduino pracuje s 5V).

Zde je k Nano připojena napájecí lišta 5V. Sim800L a Neo6m jsou propojeny s Nano jako na obrázku. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 je připojen k RST, takže jsme schopni programově restartovat systém (kromě SIM800L). POZNÁMKA: Tato metoda restartu nemusí být nejlepší)

A nakonec jsou k NANO připojeny dvě LED diody, abychom mohli uživateli sdělit, jestli se děje nějaká chyba.

Krok 6: Kód

Kód je připojen k Instructables nebo se podívejte na github.

Můžete jej upravit tak, aby správně fungoval pro vaše potřeby, nebo můžete použít jiný kód, pokud chcete.

waitUntilResponse (); pomocná funkce byla převzata z jeho kódu. Zkontrolujte jeho práci a také kód!

Stručně řečeno, ve funkci nastavení musíme povolit připojení GPRS našeho modulu SIM800L. Pokud je LED dioda rychle blikající, víme, zda je úspěšná. (nastaveníGPRSConnection ())

Ve funkci smyčky - každých 15 sekund se nazývá funkce sendData () - která má požadavek

K odeslání dat na webový server v tomto formátu jsem použil řetězce dotazů:

ip adresa/soubor.php? klíč = hodnota & klíč = hodnota, např.

Pokud dojde k nějaké chybě, rozsvítí se odpovídající LED. (SIM, GPS)

Krok 7: Webový server

Webový server
Webový server

Pro naše použití stačí jednoduchý lehký webový server.

Můžete si vybrat z několika možností:

  1. Můžete použít vzdálený server společnosti, za který pravděpodobně musíte pravidelně platit.
  2. Můžete použít svůj vlastní počítač. Navrhuji to pouze pro testování, není to opravdu efektivní provoz 24/7, kvůli plýtvání energií, bezpečnostním problémům.
  3. Můžete použít malý počítač, například Raspberry PI. Lehký, levný, nespotřebovává mnoho energie.

Zkoušel jsem 2. a 3. možnost, fungovaly dobře. Hlavním cílem nejsou servery těchto instrukcí, ale naznačuji vám několik rad.

Pokud používáte počítač, pravděpodobně používáte Windows. Na vašem místě bych na něj nainstaloval server Apache nebo XAMPP.

XAMPP již obsahuje PHP, kromě toho přichází také s HTML, Perl a systémem pro správu databází. S PHP můžete vytvořit dynamický server. Pokud chcete použít lokální server, který jste právě vytvořili z kteréhokoli místa na světě, musíte svému počítači přiřadit statickou IP adresu a provést nějaké přesměrování portů. Užitečný návod pro statickou IP:

A celá ta věc portportingu:

Pokud máte malinu, je dobré ji používat. Můžete se seznámit s příkazy Linuxu a provozovat vlastní server 24/7.

OS byl Raspbian Jessie s bezhlavým nastavením (bez klávesnice, monitoru) - ovládal jsem ho pomocí počítače s připojením SSH.

K přihlášení do své maliny jsem použil Putty. Nezapomeňte změnit heslo svého účtu, aby se k vám ostatní nemohli přihlásit Pi. Výchozí je: pi, passw: malina.

Nainstaloval jsem webový server lighttpd s sqlite3. Dobrý návod najdete zde:

V kódu serveru jsem používal hlavně PHP. S PHP můžete přijímat data, číst/zapisovat databáze - zakódovat dotaz do formátu json atd. … Tento tutoriál vám hodně pomůže, jak spravovat vaši databázi pomocí PHP.

Můj kód můžete zobrazit také na githubu ve složce server_files.

A samozřejmě musíte povolit přesměrování portů na váš Pi na routeru, pokud k tomu chcete přistupovat vzdáleně.

Krok 8: Konec/zkušenosti

Ohrada se teprve chystá.

Moje zkušenost je taková, že systém nefunguje tak špatně. Ale čeká se na zlepšení stability.

Pokud tracker nefungoval s kódem, který jsem připojil, nebojte se. Zkuste se ujistit, že SIM800L a NEO 6M fungují tak, jak by měly. Můj kód můžete libovolně upravovat nebo hledat lepší. Jen doufám, že bych vám mohl ukázat příklad, jak můžete tento projekt dokončit.

Přijímám jakoukoli radu, opravu z komentářů. Klidně se zeptej.

Doporučuje: