Cuprins:
- Pasul 1: premise
- Pasul 2: Conceptul principal
- Pasul 3: Modulul SIM800L
- Pasul 4: Ublox Neo 6m
- Pasul 5: Circuite
- Pasul 6: Cod
- Pasul 7: Webserver
- Pasul 8: Încheiere / Experiență
Video: Tracker GPS de casă în timp real (SIM800L, Ublox NEO-6M, Arduino): 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Deci ai un modul GSM așezat ca mine? De asemenea, un GPS-tracker?
Gândim la fel!
În acest instructable, voi încerca să vă ghidez cum să vă atingeți obiectivul din perspectiva unui începător.
Deoarece nu aveam cunoștințe anterioare de inginerie electrică (pentru a fi sincer, proiectul nu are nevoie de atât de mult, dar nah) și nu aveam nici o idee despre cum să fac un dispozitiv care pompează date în timp real către un server web, am întâmpinat numeroase probleme. Totuși, în cele din urmă am reușit să pun lucrurile la punct.
Deci, în acest tutorial, vreau să subliniez greșelile pe care le poate face un starter și să construiesc proiectul în consecință.
Amintiți-vă: fiți întotdeauna atenți în timp ce lucrați cu electricitate!
NOTĂ: Nu sunt profesionist. Este posibil ca codul să nu fie suficient de sofisticat pentru toate nevoile dvs. Proiectul este intenționat să fie un „proiect hobby”, dar! a funcționat pentru mine. Și dacă ar funcționa pentru mine, ar funcționa și pentru tine!
Pasul 1: premise
MODUL GSM - SIM800L
- Destul de mic, ușor de utilizat
- Capabil să utilizeze internetul mobil (GPRS)
- Ieftin
MODUL GPS - Ublox NEO6M
- De asemenea, mic
- Se descurcă foarte bine cu treaba sa
Un microcontroler - poate fi orice - ai putea folosi celebrul Arduino Uno sau Nano pentru a elibera spațiu
Baterie - am folosit o celulă 18650 ca sursă de alimentare principală și unică (nominală 3.7V)
Suport baterie - de ce? - deoarece lipirea unei baterii 18650 este destul de periculoasă din cauza căldurii.
DC-DC Boost Converter Step Up Module 5V - Trebuie să aibă, deoarece Arduino am folosit are nevoie de 5V
Instrumente, lucruri de bază care pot fi utile:
Sârme, lipitor, panou pentru testare
Pasul 2: Conceptul principal
Conceptul principal al sistemului este următorul:
Se compune din 3 părți:
- Un dispozitiv - care are coordonatele GPS adecvate și se poate conecta la un server de la distanță și îi poate trimite date
- Un server web - care poate primi date primite - le stochează - și servește alți clienți
- Platforma - unde putem vizualiza coordonatele - În mod ideal ar trebui să fie acum o aplicație mobilă sau un site web
Pasul 3: Modulul SIM800L
Am avut momente grele cu modulul.
Aș dori să încep cu câteva caracteristici și referințe.
Conform fișei tehnice:
- Funcționează între 3.4V - 4.4V
- Poate trimite SMS-uri, efectua apeluri vocale către alte telefoane și chiar se poate conecta la Internet!
- Putem comunica cu acesta prin comenzi AT!
- Poate folosi până la 2A la orele de vârf! Notă: probabil că nu îl veți putea măsura cu un multimetru - din cauza ratelor sale mici de eșantionare
Experiența mea este că SIM800L sub 3.8V nu funcționează cu adevărat.
Pentru informații suplimentare, vizitați: fișa tehnică
Deci, treaba ta este să furnizezi cel puțin 3,8 V modulului (în mod ideal 4 V), o sursă de alimentare care scoate cel puțin 2 A.
Înainte de a utiliza modulul în dispozitivul final, vă sugerez să stabiliți comunicarea cu SIM800L și computerul dvs. pentru a vă asigura că dispozitivul dvs. funcționează corect.
Mai întâi, conectați cartela SIM ca în imaginea de mai sus.
Pentru a-l conecta la computer, puteți utiliza un convertor USB în TTL sau un Arduino.
Acum, merg cu Arduino.
Conectați SIM800L VCC și GND la terminalele sursei de alimentare.
Conectați TX la pinul digital Arduino 10th, RX la pinul digital arduino 11.
Descărcați codul, l-am legat în acest pas.
Cu codul, puteți trimite comenzi și le puteți recupera, pe monitorul dvs. serial.
Câteva comenzi simple:
AT Revine OK, dacă conexiunea este OK.
ATD + 123456789; Apelați un număr de telefon dat. Notă: Nu uitați să o încheiați cu un punct și virgulă.
AT + CPIN? Returnează starea cartelei SIM (blocat sau nu)
Dacă doriți să trimiteți un SMS, trebuie să încheiați intrarea cu un caracter special, se poate face cu simbolul „$”.
Pentru alte comenzi interesante, vă sugerez să citiți acest lucru.
Există diverse comenzi, familiarizați-vă cu ele, sunt foarte utile.
Există un LED de stare roșu care vă spune în ce operațiune se află SIM800L.
64 MS ON - 800MS OFF - SIM800L nu este înregistrat în rețea.
64 MS ON - 3000MS OFF - SIM800L este înregistrat în rețea.
64 MS ON - 300MS OFF - SIM800l este în modul GPRS
Dacă SIM800L continuă să repornească după aproximativ 8-10 clipește, se poate datora lipsei unei surse de alimentare eficiente.
Dacă nu reușiți OK după AT, verificați cablarea! Dacă aveți un multimetru, verificați continuitatea firelor.
Verificați conexiunile firelor și îmbinărilor de lipit! Modulul va funcționa numai când clipește.
Pasul 4: Ublox Neo 6m
Unele caracteristici
- Tensiune maximă: 3,6 V - L-am alimentat cu pinul Arduino de 3,3 V
- Extragerea maximă de curent este de 67mA - astfel încât să o puteți alimenta de la arduino
- Interval de temperatură: -40-85 Celsius (cred că vă va potrivi)
Unitatea pe care am comandat-o a venit cu o antenă văzută pe imagine, doar o conectez în slotul corespunzător.
Când dispozitivul are semnale, clipește cu LED albastru.
Mai întâi, verificați cum funcționează un GPS aici, dacă nu știți.
Când dispozitivul este pornit și găsește 3 sateliți, acesta trimite o mulțime de valori separate prin virgulă către Arduino ca mai sus.
Pentru a ne ajuta treaba, putem folosi unele biblioteci externe pentru a analiza aceste date pentru a fi mai ușor de citit de către oameni.
Puteți utiliza biblioteca TinyGps sau biblioteca NeoGPS. L-am folosit pe cel de-al doilea pentru că este mai ușor.
Pentru testare, trebuie să conectați pinii de alimentare la arduino 3.3V și GND.
Descărcați acest cod și utilizați-l cu GPS-ul. Pinul digital RX 10, pinul digital TX 11
Notă: Nu uitați să utilizați modulul în aer liber, de preferință atunci când nu există nor.
După o jumătate de minut, dispozitivul ar trebui să clipească și să afișeze coordonatele GPS!:)
Odată ce știți că SIM800L și modulul GPS funcționează adecvat, puteți trece la pasul următor.
Pasul 5: Circuite
Circuitul este ca în imagine.
Deci, bateria 3.4V - 4.2V 18650 este principala sursă de alimentare. Sim800L obține energia direct din ea. Există un condensator între ele în paralel pentru a îmbunătăți stabilitatea circuitului.
Când alegeți un condensator, ar trebui să alegeți un capactior ESR scăzut.
Un convertor step-up de 5V crește tensiunea bateriei la 5V (este nevoie de ir deoarece Arduino funcționează cu 5V).
Sina electrică de 5V este conectată aici la Nano. Sim800L și Neo6m sunt conectate cu Nano ca în imagine. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)
D12 este conectat la RST, deci putem să repornim sistematic sistemul (cu excepția SIM800L). NOTĂ: Este posibil ca această metodă de repornire să nu fie cea mai bună practică)
Și, în cele din urmă, două LED-uri sunt conectate la NANO, astfel încât să putem spune utilizatorului dacă se întâmplă vreo eroare.
Pasul 6: Cod
Codul este atașat la Instructables sau aruncă o privire la github.
Puteți să-l modificați pentru a funcționa corect pentru nevoile dvs. sau puteți utiliza codul altora, dacă doriți.
waitUntilResponse (); funcția de ajutor a fost preluată din codul său. Verifică-i munca și codifică și el!
Pe scurt, în funcția de configurare, trebuie să activăm conexiunea GPRS a modulului nostru SIM800L. Știm dacă are succes dacă LED-ul clipește rapid. (setupGPRSConnection ())
În funcția buclă - la fiecare 15 secunde se apelează funcția sendData () - care are cererea
Am folosit șiruri de interogare pentru a trimite date către serverul web în acest format:
adresa IP / fișier.php? cheie = valoare & cheie = valoare de ex.
Dacă se întâmplă vreo eroare, LED-ul corespunzător se va aprinde. (SIM, GPS)
Pasul 7: Webserver
Pentru utilizarea noastră, este suficient un simplu server web ușor.
Există câteva opțiuni din care puteți alege:
- Puteți utiliza un server la distanță al unei companii, pe care probabil trebuie să îl plătiți în mod regulat.
- Puteți folosi propriul computer. Îl sugerez doar pentru testare, nu este chiar eficient să îl rulezi 24/7, din cauza consumului de energie, a problemelor de siguranță.
- Ați putea folosi un computer mic, cum ar fi Raspberry PI. Ușor, ieftin, nu consumă multă energie.
Am încercat a doua și a treia opțiune, au funcționat bine. Ei bine, scopul principal nu este serverele acestui instructabil, dar vă sugerez câteva sfaturi.
Dacă utilizați un PC, utilizați probabil Windows. Dacă aș fi în locul tău, aș instala un server Apache sau XAMPP pe el.
XAMPP are deja PHP în el, pe lângă faptul că vine și cu HTML, Perl și un sistem de gestionare a bazelor de date. Cu PHP, puteți crea un server dinamic. Dacă doriți să utilizați serverul local pe care tocmai l-ați creat de oriunde în lume, trebuie să atribuiți IP static computerului dvs. și să efectuați un portforwarding. Un tutorial util pentru IP static:
Și întregul lucru de portforwarding:
Dacă aveți un zmeură, este o practică bună să-l utilizați. Vă puteți familiariza cu comenzile Linux și puteți rula propriul server 24/7.
Sistemul de operare era Raspbian Jessie cu o configurare fără cap (fără tastatură, monitor) - L-am controlat cu computerul meu cu conexiune SSH.
Am folosit Putty pentru a mă conecta la Raspberry. Nu uitați să modificați parola contului, astfel încât alte persoane să nu se poată conecta la dvs. Pi. Implicit este: pi, passw: zmeură.
Am instalat un server web lighttpd cu sqlite3. Tutorial bun găsit aici:
Am folosit în principal PHP în codul serverului. Cu PHP puteți primi date, citi / scrie baze de date - codificați o interogare într-un format json etc. Acest tutorial vă va ajuta foarte mult, cum să vă gestionați baza de date cu PHP.
Puteți vizualiza codul meu și pe github, în folderul server_files.
Și, desigur, trebuie să activați redirecționarea porturilor către Pi pe router, dacă doriți să accesați acest lucru de la distanță.
Pasul 8: Încheiere / Experiență
O incintă este încă de făcut.
Experiența mea este că sistemul nu funcționează prea rău. Dar există îmbunătățiri ale stabilității care așteaptă.
Dacă trackerul nu a funcționat cu codul pe care l-am atașat, nu vă faceți griji. Încercați să vă asigurați că SIM800L și NEO 6M funcționează așa cum ar trebui. Puteți modifica codul liber sau puteți căuta unul mai bun. Sper doar să vă pot arăta un exemplu despre cum puteți finaliza acest proiect.
Accept orice sfat, corectare din comentarii. Simte-te liber să întrebi.
Recomandat:
Trasarea graficului în timp real pe Android de la Arduino prin HC-05: 3 pași
Plotarea graficului în timp real pe Android de la Arduino prin HC-05: Hei, iată un tutorial despre cum să trasați un grafic în timp real al valorilor de la un microcontroler, cum ar fi un Arduino, la aplicație. Folosește un modul Bluetooth, cum ar fi HC-05, pentru a acționa ca un dispozitiv de mesagerie pentru a transmite și primi datele între Ar
Live Covid19 Tracker Utilizând ESP8266 și OLED - Tablou de bord Covid19 în timp real: 4 pași
Live Covid19 Tracker Utilizând ESP8266 și OLED | Tablou de bord Covid19 în timp real: accesați site-ul web Techtronic Harsh: http: //techtronicharsh.com Oriunde există un focar uriaș al virusului Corona de roman (COVID19). A devenit necesar să urmărim scenariul actual al COVID-19 în lume. Așadar, fiind acasă, acesta a fost
Urmărire GPS în timp real: 3 pași
Urmărire GPS în timp real: în acest tutorial, vă vom arăta cum să efectuați urmărirea locației în timp real utilizând un BerryGPS-GSM, un Raspberry Pi Zero și starea inițială. Vom trimite longitudine, latitudine și viteză prin 3G cu BerryGPS-GSM la starea inițială
Cum să creați ceas în timp real folosind afișajul Arduino și TFT - Arduino Mega RTC cu afișaj TFT de 3,5 inci: 4 pași
Cum să faci ceas în timp real folosind afișajul Arduino și TFT | Arduino Mega RTC cu afișaj TFT de 3,5 inci: Vizitează canalul meu de YouTube. Modulul 2560 și DS3231 RTC … Înainte de a începe … verificați videoclipul de pe canalul meu YouTube..Notă: - Dacă utilizați Arduin
Acces manual GPS Ublox Neo 6M cu Raspberry Pi B +: 3 pași
Acces manual GPS Ublox Neo 6M cu Raspberry Pi B +: Raspberry Pi este un mini PC foarte compatibil pentru diferite module care sunt destul de ușor de utilizat. Practic este aproape la fel ca PC-ul, dar poate fi controlat cu GPIO de la Raspberry Pi. Raspberry Pi este, de asemenea, suport cu mai multe linii de comunicare, una