Taula de continguts:

Rastrejador GPS casolà en temps real (SIM800L, Ublox NEO-6M, Arduino): 8 passos
Rastrejador GPS casolà en temps real (SIM800L, Ublox NEO-6M, Arduino): 8 passos

Vídeo: Rastrejador GPS casolà en temps real (SIM800L, Ublox NEO-6M, Arduino): 8 passos

Vídeo: Rastrejador GPS casolà en temps real (SIM800L, Ublox NEO-6M, Arduino): 8 passos
Vídeo: Mini MICRO GSM et GPS Tracker Magnétique En Temps Réel VD1 2024, Desembre
Anonim
Rastrejador GPS casolà en temps real (SIM800L, Ublox NEO-6M, Arduino)
Rastrejador GPS casolà en temps real (SIM800L, Ublox NEO-6M, Arduino)

Per tant, teniu un mòdul GSM com jo? També és un rastrejador GPS?

Pensem el mateix!

En aquest instructiu, intentaré guiar-vos com assolir el vostre objectiu des de la perspectiva d'un novell.

Com que no tenia coneixements previs d’enginyeria elèctrica (per ser sincer, el projecte no necessita tant, però sí) i no tenia ni idea de com fer un dispositiu que bombi les dades en temps real a un servidor web, vaig trobar nombrosos problemes. Tot i així, finalment vaig aconseguir que les coses funcionessin.

Per tant, en aquest tutorial vull emfatitzar els errors que pot iniciar un principiant i acumular el projecte en conseqüència.

Recordeu: tingueu sempre cura mentre treballeu amb electricitat.

NOTA: No sóc professional. És possible que el codi no sigui prou sofisticat per satisfer totes les vostres necessitats. Es vol que el projecte sigui un "projecte de passatemps", però! em va funcionar. I si funcionés per a mi, també funcionaria per a vosaltres!

Pas 1: requisits previs

Requisits previs
Requisits previs
Requisits previs
Requisits previs
Requisits previs
Requisits previs

MUDUL GSM - SIM800L

  • Bastant petit, fàcil d'utilitzar
  • Capaç d'utilitzar internet mòbil (GPRS)
  • Barat

M MODDUL GPS - Ublox NEO6M

  • També petit
  • S’encarrega molt bé de la seva feina

Un microcontrolador (pot ser qualsevol cosa) pot fer servir el famós Arduino Uno o el Nano per alliberar una mica d’espai

Bateria: he utilitzat una cèl·lula 18650 com a principal i única font d’energia (nominal 3,7 V)

Suport de la bateria: per què? - perquè soldar una bateria 18650 és força perillós per la calor.

DC-DC Boost Converter Step Up Module 5V: ha de tenir-ho, ja que l'Arduino que he utilitzat necessita 5V

Eines, coses bàsiques que poden ser útils:

Filferros, soldador, taulers per provar

Pas 2: concepte principal

Concepte principal
Concepte principal

El concepte principal del sistema és el següent:

Consta de 3 parts:

  1. Un dispositiu, que té les coordenades GPS adequades i que es pot connectar a un servidor remotament i enviar-hi dades
  2. Un servidor web, que pot rebre dades entrants, les emmagatzema i serveix a altres clients
  3. La plataforma, on podem veure les coordenades, és ideal que ara sigui una aplicació mòbil o un lloc web

Pas 3: el mòdul SIM800L

El mòdul SIM800L
El mòdul SIM800L
El mòdul SIM800L
El mòdul SIM800L

Vaig tenir moments difícils amb el mòdul.

M’agradaria començar amb algunes característiques i referències.

Segons el full de dades:

  • Funciona entre 3.4V - 4.4V
  • Pot enviar SMS, fer trucades de veu a altres telèfons i fins i tot connectar-se a Internet.
  • Podem comunicar-nos-hi mitjançant ordres AT!
  • Pot utilitzar fins a 2A en hores punta. Nota: probablement no el podreu mesurar amb un multímetre, a causa de les seves taxes de mostreig baixes

La meva experiència és que el SIM800L inferior a 3,8 V no funciona realment.

Per obtenir més informació, visiteu: full de dades

Per tant, el vostre treball consisteix a proporcionar almenys 3,8 V al mòdul (idealment 4 V), una font d’alimentació que produeix com a mínim 2A.

Abans d’utilitzar el mòdul al dispositiu final, us proposo establir una comunicació amb el SIM800L i l’ordinador per assegurar-vos que el dispositiu funciona correctament.

Primer de tot, connecteu la targeta SIM com a la imatge superior.

Per connectar-lo al vostre PC, podeu utilitzar un convertidor USB a TTL o un Arduino.

Ara, vaig amb l’Arduino.

Connecteu el SIM800L VCC i el GND als terminals de la font d'alimentació.

Connecteu TX al pin digital Arduino 10è, RX al pin digital arduino 11è.

Descarregueu el codi que he enllaçat en aquest pas.

Amb el codi, podeu enviar comandes i recuperar-les al vostre monitor sèrie.

Algunes ordres simples:

AT Retorna bé, si la connexió és correcta.

ATD + 123456789; Truqueu a un número de telèfon determinat. Nota: no oblideu acabar-lo amb un punt i coma.

AT + CPIN? Retorna l'estat de la targeta SIM (bloquejat o no)

Si voleu enviar un SMS, heu de finalitzar la vostra entrada amb un caràcter especial, es pot fer amb el símbol '$'.

Per a altres ordres interessants, us suggereixo que llegiu això.

Hi ha diverses ordres, familiaritzeu-vos amb elles, són realment útils.

Hi ha un LED d'estat vermell que us indica el funcionament del SIM800L.

64 MS ON - 800MS OFF - SIM800L no està registrat a la xarxa.

64 MS ON - 3000MS OFF - SIM800L està registrat a la xarxa.

64 MS ON - 300MS OFF - SIM800l està en mode GPRS

Si el SIM800L continua reiniciant-se després d’uns 8-10 parpelleigs, pot ser per falta d’alimentació eficient.

Si després de AT no us queda bé, comproveu el cablejat. Si teniu un multímetre, comproveu la continuïtat dels cables.

Comproveu les connexions dels cables i de les juntes de soldadura. El mòdul només funcionarà quan parpelleja.

Pas 4: Ublox Neo 6 m

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

Algunes característiques

  • Tensió màxima: 3,6 V: l'he alimentat amb el pin de 3,3 V d'Arduino
  • El consum màxim de corrent és de 67 mA, de manera que podeu alimentar-lo des d’arduino
  • Rang de temperatura: -40-85 centígrads (suposo que encaixarà amb vosaltres)

La unitat que vaig demanar venia amb una antena que es veia a la imatge, només la connecto a la ranura corresponent.

Quan el dispositiu té senyals, parpelleja amb un LED blau.

En primer lloc, comproveu com funciona un GPS aquí, si no ho sabeu.

Quan el dispositiu està engegat i troba tres satèl·lits, envia molts valors separats per comes a l’Arduino com a l’anterior.

Per ajudar la nostra feina, podem utilitzar algunes biblioteques externes per analitzar aquestes dades perquè siguin més llegibles pels humans.

Podeu utilitzar la biblioteca TinyGps o la biblioteca NeoGPS. He utilitzat el segon perquè és més lleuger.

Per fer proves, heu de connectar els pins d’alimentació a arduino 3.3V i GND.

Baixeu-vos aquest codi i utilitzeu-lo amb el vostre GPS. Pin digital RX 10, pin digital TX 11

Nota: no oblideu utilitzar el mòdul a l’aire lliure, preferiblement quan no hi ha núvol.

Al cap de mig minut, el dispositiu hauria de parpellejar i emetre les coordenades GPS.:)

Un cop hàgiu sabut que el vostre mòdul SIM800L i GPS funcionen adequadament, podeu passar al següent pas.

Pas 5: Circuit

Circuit
Circuit

El circuit és com a la imatge.

Per tant, la bateria 18650 de 3,4 V a 4,2 V és la font d’alimentació principal. Sim800L obté l'energia directament d'ella. Hi ha un condensador entre ells en paral·lel per tal de millorar l’estabilitat del circuit.

Quan trieu un condensador, haureu de triar un capactior de baixa ESR.

Un convertidor incremental de 5V augmenta el voltatge de la bateria a 5V (es necessita un IR perquè Arduino funciona amb 5V).

El carril de 5V està connectat aquí al Nano. El Sim800L i el Neo6m estan connectats amb Nano com a la imatge. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 està connectat a RST, de manera que podem reiniciar el sistema de forma programada (excepte el SIM800L). NOTA: És possible que aquest mètode de reinici no sigui la millor pràctica)

I, finalment, hi ha dos LED connectats al NANO, de manera que podem informar a l’usuari si es produeix algun error.

Pas 6: Codi

El codi s’adjunta als Instructables o fes una ullada a github.

Podeu modificar-lo perquè funcioni correctament segons les vostres necessitats o podeu utilitzar el codi de l’altre si voleu.

waitUntilResponse (); la funció d'assistent es va treure del seu codi. Comproveu el seu treball i codifiqueu també.

Breument, a la funció de configuració, hem d’habilitar la connexió GPRS del nostre mòdul SIM800L. Sabem si té èxit si el LED parpelleja ràpidament. (setupGPRSConnection ())

A la funció de bucle (cada 15 segons es diu la funció sendData ()), que té la sol·licitud

He utilitzat cadenes de consulta per enviar dades al servidor web en aquest format:

adreça ip / file.php? key = value & key = value p. ex.

Si es produeix algun error, s’encendrà el LED corresponent. (SIM, GPS)

Pas 7: servidor web

Servidor web
Servidor web

Per al nostre ús, n'hi ha prou amb un simple servidor web lleuger.

Hi ha algunes opcions entre les quals podeu triar:

  1. Podeu utilitzar un servidor remot d'una empresa, que probablement haureu de pagar regularment.
  2. Podeu utilitzar el vostre propi ordinador. Només el suggereixo per provar-lo, no és realment eficient executar-lo les 24 hores del dia, els 7 dies de la setmana, a causa del malbaratament d’energia i dels problemes de seguretat.
  3. Podeu utilitzar un ordinador petit, com ara Raspberry PI. Lleuger, econòmic, no consumeix molta energia.

He provat la segona i la tercera opció, han funcionat bé. Bé, l'objectiu principal no són els servidors d'aquest instructable, però us deixo alguns consells.

Si utilitzeu un PC, probablement utilitzeu Windows. Si jo fos tu, hi instal·laria un servidor Apache o XAMPP.

XAMPP ja té PHP, a més, també inclou HTML, Perl i un sistema de gestió de bases de dades. Amb PHP, podeu crear un servidor dinàmic. Si voleu utilitzar el servidor local que acabeu de fer des de qualsevol part del món, heu d’assignar una IP estàtica al vostre PC i fer un reenviament de portes. Un tutorial útil per a la IP estàtica:

I tot el portforwarding:

Si teniu un gerd, és una bona pràctica utilitzar-lo. Podeu familiaritzar-vos amb les ordres de Linux i executar el vostre propi servidor 24/7.

El sistema operatiu era Raspbian Jessie amb una configuració sense cap (sense teclat, monitor): el controlava amb el meu ordinador amb connexió SSH.

Vaig utilitzar Putty per iniciar la sessió al meu gerd. No us oblideu de canviar la contrasenya del vostre compte perquè altres persones no puguin iniciar la sessió a Pi. El valor per defecte és: pi, passw: gerd.

He instal·lat un servidor web lighttpd amb sqlite3. Aquí trobareu un bon tutorial:

He utilitzat principalment PHP al codi del servidor. Amb PHP podeu rebre dades, llegir / escriure bases de dades: codificar una consulta en format json, etc. … Aquest tutorial us ajudarà molt, com gestionar la vostra base de dades amb PHP.

També podeu veure el meu codi a github, a la carpeta server_files.

I, per descomptat, heu d’habilitar el reenviament de ports al vostre Pi al vostre encaminador, si voleu accedir-hi de manera remota.

Pas 8: finalització / experiència

Encara s’ha de fer un recinte.

La meva experiència és que el sistema no funciona tan malament. Però hi ha millores d’estabilitat pendents.

Si el rastrejador no funciona amb el codi que he adjuntat, no us preocupeu. Intenteu assegurar-vos que el SIM800L i el NEO 6M funcionen com haurien de fer-ho. Podeu modificar lliurement el meu codi o buscar-ne un de millor. Només espero que us pugui mostrar un exemple de com podeu completar aquest projecte.

Accepto qualsevol consell, correcció dels comentaris. No dubteu a preguntar.

Recomanat: