Sommario:
- Passaggio 1: prerequisiti
- Passaggio 2: concetto principale
- Passaggio 3: il modulo SIM800L
- Passaggio 4: Ublox Neo 6m
- Passaggio 5: circuiti
- Passaggio 6: codice
- Passaggio 7: server Web
- Passaggio 8: fine/esperienza
Video: Localizzatore GPS in tempo reale fatto in casa (SIM800L, Ublox NEO-6M, Arduino): 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Quindi hai un modulo GSM in giro come me? Anche un localizzatore GPS?
La pensiamo allo stesso modo!
In questo tutorial, cercherò di guidarti su come raggiungere il tuo obiettivo dal punto di vista di un principiante.
Poiché non avevo precedenti conoscenze di ingegneria elettrica (a dire il vero, il progetto non ha bisogno di molto, ma nah) e non avevo idea di come realizzare un dispositivo che inviasse dati in tempo reale a un server web, ho riscontrato numerosi problemi. Tuttavia, alla fine sono riuscito a far funzionare le cose.
Quindi, in questo tutorial, voglio sottolineare gli errori che un principiante può commettere e costruire il progetto di conseguenza.
Ricorda: fai sempre attenzione mentre lavori con l'elettricità!
NOTA: non sono un professionista. Il codice potrebbe non essere abbastanza sofisticato per tutte le tue esigenze. Il progetto vuole essere un "progetto hobby", ma! ha funzionato per me. E se ha funzionato per me, funzionerebbe anche per te!
Passaggio 1: prerequisiti
MODULO GSM - SIM800L
- Abbastanza piccolo, facile da usare
- In grado di utilizzare Internet mobile (GPRS)
- A buon mercato
MODULO GPS - Ublox NEO6M
- Anche piccolo
- Svolge molto bene il suo lavoro
Un microcontrollore - può essere qualsiasi cosa - potresti usare il famoso Arduino Uno o il Nano per liberare spazio
Batteria - Ho usato una cella 18650 come principale e unica fonte di alimentazione (Nominale 3,7 V)
Portabatterie: perché? - perché saldare una batteria 18650 è piuttosto pericoloso a causa del calore.
Modulo step-up convertitore DC-DC Boost 5V - Must have, poiché l'Arduino che ho usato ha bisogno di 5V
Strumenti, cose di base che possono tornare utili:
Fili, saldatore, breadboard per test
Passaggio 2: concetto principale
Il concetto principale del sistema è il seguente:
Si compone di 3 parti:
- Un dispositivo - che ha le coordinate GPS corrette e può connettersi a un server in remoto e inviare dati ad esso
- Un server web - che può ricevere dati in entrata - memorizzarli - e servire altri client
- La piattaforma - dove possiamo visualizzare le coordinate - Idealmente dovrebbe essere ora un'applicazione mobile o un sito web
Passaggio 3: il modulo SIM800L
Ho avuto difficoltà con il modulo.
Vorrei iniziare con alcune caratteristiche e riferimenti.
Secondo la scheda tecnica:
- Funziona tra 3,4 V - 4,4 V
- Può inviare SMS, effettuare chiamate vocali ad altri telefoni e persino connettersi a Internet!
- Possiamo comunicare con esso tramite i comandi AT!
- Può utilizzare fino a 2A nelle ore di punta! Nota: probabilmente non sarai in grado di misurarlo con un multimetro, a causa delle sue basse frequenze di campionamento
La mia esperienza è che il SIM800L sotto i 3,8 V non funziona davvero.
Per maggiori informazioni visita: scheda tecnica
Quindi il tuo compito è fornire almeno 3,8 V al modulo (idealmente 4 V), un alimentatore che emette almeno 2 A.
Prima di utilizzare il modulo nel dispositivo finale, ti suggerisco di stabilire una comunicazione con la tua SIM800L e il tuo computer per assicurarti che il tuo dispositivo funzioni correttamente.
Per prima cosa, collega la scheda SIM come nell'immagine sopra.
Per collegarlo al tuo PC, puoi utilizzare un convertitore da USB a TTL o un Arduino.
Ora vado con Arduino.
Collega il SIM800L VCC e GND ai terminali della tua fonte di alimentazione.
Collega TX al decimo pin digitale di Arduino, RX all'undicesimo pin digitale di Arduino.
Scarica il codice, ho collegato in questo passaggio.
Con il codice, puoi inviare comandi e recuperarli sul tuo monitor seriale.
Alcuni semplici comandi:
AT Restituisce OK, se la connessione è OK.
ATD+123456789; Chiama un determinato numero di telefono. Nota: non dimenticare di terminare con un punto e virgola.
AT+CPIN? Restituisce lo stato della carta SIM (bloccata o meno)
Se vuoi inviare un SMS, devi terminare l'inserimento con un carattere speciale, puoi farlo con il simbolo '$'.
Per ulteriori comandi interessanti ti suggerisco di leggere questo.
Ci sono vari comandi, familiarizza con loro, sono davvero utili.
C'è un LED di stato rosso che ti dice in quale operazione si trova il SIM800L.
64 MS ON - 800MS OFF - SIM800L non è registrato alla rete.
64 MS ON - 3000MS OFF - SIM800L è registrato nella rete.
64 MS ON - 300MS OFF - SIM800l è in modalità GPRS
Se il SIM800L continua a riavviarsi dopo circa 8-10 lampeggi, potrebbe essere dovuto alla mancanza di alimentazione efficiente.
Se non vai bene dopo AT, controlla il cablaggio! Se hai un multimetro, controlla la continuità dei fili.
Controllare le connessioni dei fili e dei giunti di saldatura! Il modulo funzionerà solo quando lampeggia.
Passaggio 4: Ublox Neo 6m
Alcune caratteristiche
- Voltaggio massimo: 3.6V - L'ho alimentato con il pin 3.3V di Arduino
- L'assorbimento di corrente massimo è 67 mA, quindi puoi alimentarlo da arduino
- Intervallo di temperatura:: -40-85 Celsius (immagino che ti andrà bene)
L'unità che ho ordinato è arrivata con un'antenna vista nella foto, l'ho semplicemente inserita nello slot corrispondente.
Il dispositivo quando ha segnali, lampeggia con LED blu.
Per prima cosa, controlla qui come funziona un GPS, se non lo sai.
Quando il dispositivo è acceso e trova 3 satelliti, invia molti valori separati da virgole all'Arduino come sopra.
Per aiutare il nostro lavoro, possiamo utilizzare alcune librerie esterne per analizzare questi dati per essere più leggibili dall'uomo.
Puoi usare la libreria TinyGps o la libreria NeoGPS. Ho usato il secondo perché è più leggero.
Per il test, devi collegare i pin di alimentazione ad arduino 3.3V e GND.
Scarica questo codice e utilizzalo con il tuo GPS. RX Digitale pin 10, TX Digitale pin 11
Nota: non dimenticare di utilizzare il modulo all'aperto, preferibilmente in assenza di nuvole.
Dopo mezzo minuto, il dispositivo dovrebbe lampeggiare ed emettere le tue coordinate GPS!:)
Una volta che sai che il tuo SIM800L e il modulo GPS funzionano correttamente, puoi andare al passaggio successivo.
Passaggio 5: circuiti
Il circuito è come in foto.
Quindi, la batteria 18650 da 3,4 V - 4,2 V è la fonte di alimentazione principale. Sim800L ottiene l'energia direttamente da esso. C'è un condensatore tra loro in parallelo per migliorare la stabilità del circuito.
Quando scegli un condensatore, dovresti scegliere un condensatore a bassa ESR.
Un convertitore step-up da 5V aumenta la tensione della batteria a 5V (ir è necessario perché Arduino funziona con 5V).
La barra di alimentazione 5V è collegata qui al Nano. Il Sim800L e il Neo6m sono collegati con Nano come nell'immagine. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)
D12 è connesso a RST, quindi siamo in grado di riavviare programmaticamente il sistema (tranne il SIM800L). NOTA: questo metodo di riavvio potrebbe non essere la migliore pratica)
E infine, due LED sono collegati al NANO, così possiamo dire all'utente, se si verifica un errore.
Passaggio 6: codice
Il codice è allegato a Instructables o dai un'occhiata a github.
Puoi modificarlo in modo che funzioni correttamente per le tue esigenze, oppure puoi utilizzare il codice di altri se lo desideri.
waitUntilResponse(); la funzione di supporto è stata presa dal suo codice. Controlla il suo lavoro e anche il codice!
In breve, nella funzione di configurazione, dobbiamo abilitare la connessione GPRS del nostro modulo SIM800L. Sappiamo se ha successo se il LED lampeggia rapidamente. (setupGPRSConnection())
Nella funzione loop - ogni 15 secondi viene chiamata la funzione sendData() - che ha la richiesta
Ho usato le stringhe di query per inviare i dati al server web in questo formato:
indirizzo IP/file.php?key=value&key=value es.
Se si verifica un errore, il LED corrispondente si accende. (SIM, GPS)
Passaggio 7: server Web
Per il nostro utilizzo è sufficiente un semplice server web leggero.
Ci sono alcune opzioni tra cui puoi scegliere:
- Potresti utilizzare un server remoto di un'azienda, che probabilmente dovrai pagare regolarmente.
- Potresti usare il tuo computer. Lo suggerisco solo per i test, non è molto efficiente farlo funzionare 24 ore su 24, 7 giorni su 7, a causa dello spreco di energia, dei problemi di sicurezza.
- Potresti usare un piccolo computer, come Raspberry PI. Leggero, economico, non consuma molta energia.
Ho provato la 2a e la 3a opzione, hanno funzionato bene. Bene, l'obiettivo principale non sono i server di questo istruibile, ma ti suggerisco alcuni consigli.
Se usi un PC, probabilmente usi Windows. Se fossi in te, installerei su di esso un server Apache o XAMPP.
XAMPP contiene già PHP, oltre al fatto che include anche HTML, Perl e un sistema di gestione del database. Con PHP puoi creare un server dinamico. Se vuoi utilizzare il server locale che hai appena creato da qualsiasi parte del mondo, devi assegnare un IP statico al tuo PC ed eseguire un portforwarding. Un utile tutorial per IP statico:
E tutta la faccenda del port forwarding:
Se hai un Raspberry, è una buona pratica usarlo. Puoi familiarizzare con i comandi di Linux ed eseguire il tuo server 24 ore su 24, 7 giorni su 7.
Il sistema operativo era Raspbian Jessie con una configurazione senza testa (senza tastiera, monitor) - l'ho controllato con il mio computer con connessione SSH.
Ho usato Putty per accedere al mio Raspberry. Non dimenticare di cambiare la password del tuo account, in modo che altri non possano accedere al tuo Pi. Il valore predefinito è: pi, passw: lampone.
Ho installato un server web lighttpd con sqlite3. Buon tutorial trovato qui:
Ho usato principalmente PHP nel codice del server. Con PHP puoi ricevere dati, leggere/scrivere database - codificare una query in un formato json, ecc. … Questo tutorial ti aiuterà molto, come gestire il tuo database con PHP.
Puoi visualizzare il mio codice anche su github, nella cartella server_files.
E, naturalmente, devi abilitare il portforwarding al tuo Pi sul tuo router, se vuoi accedervi da remoto.
Passaggio 8: fine/esperienza
Un recinto è ancora da fare.
La mia esperienza è che il sistema non funziona troppo male. Ma ci sono miglioramenti di stabilità in attesa.
Se il tracker non funziona con il codice che ho allegato, non preoccuparti. Cerca di assicurarti che SIM800L e NEO 6M funzionino come dovrebbero. Puoi modificare liberamente il mio codice, o cercarne uno migliore. Spero solo di poterti mostrare un esempio di come puoi completare questo progetto.
Accetto qualsiasi consiglio, correzione dai commenti. Sentiti libero di chiedere.
Consigliato:
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED - Dashboard Covid19 in tempo reale: 4 passaggi
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED | Dashboard Covid19 in tempo reale: visita il sito Web Techtronic Harsh: http://techtronicharsh.com Ovunque c'è un enorme focolaio del Novel Corona Virus (COVID19). È diventato necessario tenere d'occhio l'attuale scenario di COVID-19 nel mondo. Quindi, essendo a casa, questo è stato il p
Localizzatore GPS per auto con notifica SMS e caricamento dati Thingspeak, basato su Arduino, automazione domestica: 5 passaggi (con immagini)
Localizzatore GPS per auto con notifica SMS e caricamento dati Thingspeak, basato su Arduino, automazione domestica: ho realizzato questo localizzatore GPS l'anno scorso e dato che funziona bene lo pubblico ora su Instructable. È collegato alla presa degli accessori nel mio bagagliaio. Il localizzatore GPS carica la posizione dell'auto, la velocità, la direzione e la temperatura misurata tramite un dato mobile
Tracciamento GPS in tempo reale: 3 passaggi
Tracciamento GPS in tempo reale: in questo tutorial, ti mostreremo come eseguire il monitoraggio della posizione in tempo reale utilizzando un BerryGPS-GSM, un Raspberry Pi Zero e lo stato iniziale. Invieremo longitudine, latitudine e velocità tramite 3G con il BerryGPS-GSM allo stato iniziale
Come creare un orologio in tempo reale utilizzando Arduino e display TFT-Arduino Mega RTC con display TFT da 3,5 pollici: 4 passaggi
Come creare un orologio in tempo reale utilizzando Arduino e display TFT|Arduino Mega RTC con display TFT da 3,5 pollici: visita il mio canale Youtube.Introduzione:- In questo post realizzerò "Orologio in tempo reale" utilizzando LCD touch TFT da 3,5 pollici, Arduino Mega 2560 e modulo RTC DS3231….Prima di iniziare…controlla il video dal mio canale YouTube..Nota:- Se stai usando Arduin
Accesso manuale al GPS Ublox Neo 6M con Raspberry Pi B+: 3 passaggi
Accesso manuale al GPS Ublox Neo 6M con Raspberry Pi B+: Raspberry Pi è un mini PC molto compatibile per vari moduli che sono abbastanza facili da usare. Fondamentalmente è quasi uguale al PC ma può essere controllato con GPIO da Raspberry Pi. Raspberry Pi supporta anche diverse linee di comunicazione, una o