Sommario:
- Passaggio 1: l'hardware
- Passaggio 2: il software (programma Arduino)
- Passaggio 3: più software (ricezione lato server delle posizioni GPS)
- Passaggio 4: ancora più software (l'app mobile)
- Passaggio 5: lavoro futuro
Video: Sistema antifurto GPS+GPRS per veicoli completo basato su Arduino: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Ciao a tutti!
Volevo costruire una soluzione completa per un dispositivo antifurto GPS per veicoli, che sarebbe:
il più economico possibile
il più completo possibile
come-funziona-non c'è-nient'altro-da-fare il più possibile
Così ho finito per costruire una soluzione basata su Arduino che mi è costata un totale di 25$, più o meno.
Come puoi vedere dal video, funziona! Si avvia l'auto, si riceve una notifica sul cellulare che l'auto è in movimento, quindi si apre l'app mobile e si può vedere l'auto in movimento in tempo reale (con un ritardo di aggiornamento di 10 secondi).
Questo tutorial ti guiderà attraverso tutti i passaggi, tenendo presente che ci sono diversi componenti nella soluzione:
1) l'hardware (basato su Arduino)
2) il software (programma Arduino)
3) più software (ricezione lato server delle posizioni gps)
4) ancora più software (l'app mobile)
Iniziamo..
Passaggio 1: l'hardware
Lista della spesa:
1) Arduino Uno R3 o clone. Ho usato il clone "DCcEle DCcduino uno", che sembra non essere più disponibile. Ecco un equivalente: su Aliexpress - 3.75$
2) Unità GPS per Arduino (GY-NEO6MV2 nuovo modulo GPS con Flight Control Flight Control EEPROM MWC APM2.5 antenna grande NEO6MV2). Ho usato questo: su Aliexpress - 6,66 $
3) Unità GPRS / GSM per Arduino (SIM800L V2.0 5V Wireless GSM GPRS MODULE Quad-Band con cappuccio per cavo antenna). Ho usato questo: su Aliexpress - 6.71 $
4) Cavi dupont di ricambio come questi: su Aliexpress - 0,89 $
5) Scheda SIM dati IoT (o qualsiasi altra scheda SIM con connessione dati). Ho usato questo: da Hologram.io. Ne ho uno sviluppatore gratuito, solo spedizione a pagamento - 7,50 $
Totale: 25,51 $, ma avevo già i cavi, quindi sono meno di 25 $!
Le due immagini mostrano i componenti prima dell'assemblaggio e il prodotto finale. I collegamenti che devi fare sono:
Arduino -- SIM800L
10 -- RESET
GND -- GND (2 di essi)
5v -- 5v
7 -- SIM_TXD
8 -- SIM_RXD
Arduino -- GY-NEO6MV2
GND -- GND
5v -- VCC
3 -- RX
4 -- TX
Collega tutti i cavi e le antenne e assicurati di alimentare Arduino da una fonte in grado di darti picchi di 2A. L'usb del computer va a malapena (sto usando un MacBook Pro), un caricatore del telefono "casuale" non sarà sufficiente. Anche la maggior parte delle prese USB delle auto ha meno di 1A. Se questo è il tuo caso, hai anche bisogno di un alimentatore per auto da 12v 5v con almeno 2A.
Inserisci la scheda SIM. Se stai utilizzando la sim card di Hologram.io, assicurati di registrarti sulla loro dashboard e di attivare la sim card (ci vogliono pochi minuti/ore).
Passaggio 2: il software (programma Arduino)
Presumo che tu abbia familiarità con la programmazione Arduino. Altrimenti, inizia con questa guida: su Instructables.
Hai solo bisogno di una libreria esterna, ho dovuto installarla manualmente. Vai qui: TinyGPS, esporta la libreria e installala nella cartella locale di Arduino.
Da lì, "ruberemo" del codice dal loro esempio di base e lo modificheremo per i nostri scopi.
Quindi andremo a "rubare" da questa guida e modificheremo nuovamente il codice per i nostri scopi.
Il risultato è il programma.ino allegato.
Ci sono un paio di cose che puoi e DEVI modificare:
i "SECONDS" definiscono, e il "SERVER" definisce.
Ho impostato SECONDI su 10 ed ecco perché: il programma per sviluppatori Hologram.io ti offre 1 MB di dati gratuiti al mese. Ciò significa che vogliamo ridurre al minimo i byte inviati, ma dobbiamo anche aggiornare la nostra posizione così spesso. Useremo i comandi standard del modem AT per inviare pacchetti UDP al nostro server che riceve i messaggi, con lat/lon, ciascuno di 4 byte e la velocità di 1 byte. Quindi l'aggiornamento GPS totale è di 20 byte (intestazione IP) più 8 byte (intestazione UDP) più 9 byte (payload). Sono 37 byte. Supponendo che la mia auto sia attiva non più di 2 ore al giorno, posso permettermi un aggiornamento ogni 10 secondi e consumare solo 806 kb al mese (31 giorni). Questo mi dà 218 kb per il tempo di guida sul mio, cioè il ladro d'auto. Il che mi dà 16,76 ore di monitoraggio GPS al di fuori del mio tempo di guida, con un aggiornamento ogni 10 secondi.
Ora, questi pacchetti UDP devono andare da qualche parte. Sto usando un server Ubuntu ospitato su un cloud CloudAtCost, che ho acquistato per 8 $ con uno sconto dell'80% e che mi sta servendo per altri scopi, quindi non entra nei calcoli dei costi. Se non vuoi pagare per un server, puoi ottenere un'istanza Amazon AWS gratuita per 12 mesi e installare Ubuntu su di essa. Una volta che hai configurato il tuo server (vedi il passaggio successivo), ottieni il suo indirizzo IP statico e mettilo accanto a SERVER define.
Passaggio 3: più software (ricezione lato server delle posizioni GPS)
Sia CloudAtCost che Amazon sono dotati di un'immagine Ubuntu preconfigurata (CloudAtCost è su Ubuntu 14.04). Quindi non sto seguendo i passaggi per installare Ubuntu, poiché non dovrai farlo tu. Se stai usando CloudAtCost, potresti voler eseguire l'aggiornamento a Ubuntu 16.04, è fatto con a
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
Quindi devi installare LAMP (fai riferimento a questa guida: qui), anche se non useremo PHP.
Installa Python con
sudo apt-get install python-minimal pip
Quindi aggiungi un paio di moduli:
pip install --user urllib3 richieste
Dobbiamo impostare /var/www scrivibile da te, quindi facciamo:
sudo adduser YOUR_USER www-datasudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www
Ora, abbiamo bisogno di un "server" per i) ricevere i pacchetti UDP, ii) costruire la traccia, iii) inviare una notifica al nostro telefono cellulare e un "server" per servire la traccia gps creata (questo sarà apache).
Per il primo server, copia il codice python allegato. Devi configurare le seguenti cose:
iftttuser="IL TUO UTENTE IFTTT"
iftttpass="LA TUA PASSWORD IFTTT"
iftttappletid="LA TUA APPLET DI NOTIFICA IFTTT"
iftttkey="LA TUA CHIAVE IFTTT"
iftttevent="IL TUO EVENTO IFTTT"
Come avrai intuito, stiamo utilizzando IFTTT per inviare notifiche in tempo reale ai nostri telefoni cellulari. Segui questa guida: qui ma invece di selezionare "inviami un sms", seleziona "invia una notifica all'app". Ottieni il tuo ID applet (scorri in fondo alla configurazione dell'applet per vederlo) e usalo sopra. Utilizzare anche la chiave così creata nelle impostazioni sopra. L'evento IFTTT è il nome che hai dato alla tua applet, l'ho dato "carmoving".
Ora, non esistono piattaforme di notifiche in tempo reale gratuite, AFAIK. Se ne conosci uno, fammi sapere. IFTTT ha un ritardo. Questo ritardo può essere ridotto a pochi secondi se si utilizza il trigger e-mail. Sfortunatamente, questo non è affidabile. Il webhook appena creato ha un ritardo di 15 minuti. Ma non vogliamo aspettare 15 minuti per sapere che la nostra auto viene rubata, giusto? Questa è la password che ti chiede di configurare tutte le impostazioni di cui sopra. Se scorri il codice Python, vedi che ci sono poche righe, vale a dire 45-53, per automatizzare la funzionalità "controlla ora" di IFTTT, che forza un controllo improvviso dei trigger e attiva la notifica in meno di 1 secondo! Prego:)
Dopo aver configurato il codice Python da qualche parte, eseguilo. Se sei un utente professionista, fallo partire all'avvio del server. Fare riferimento alle tonnellate di guide gratuite online su come farlo, ad esempio questa.
Passaggio 4: ancora più software (l'app mobile)
Abbiamo bisogno di un modo semplice e veloce per visualizzare solo la traccia GPS che il server nel passaggio precedente sta mantenendo aggiornata. Forse, deve funzionare su tutti i tipi di smartphone.
Utilizziamo quindi una suite di app per dispositivi mobili multipiattaforma, come Ionic/Cordova. Sto usando Ionic v1, non confonderlo con Ionic Native o Ionic v2, è una cosa diversa.
Segui questi semplicissimi passaggi per iniziare il tuo primo progetto in Ionic: qui.
Quindi, devi iniziare un nuovo progetto basato sull'sdk di Google Maps, in questo modo:
avvio ionico mappe myapp
Vai nella cartella "risorse" e copia qui l'immagine grande dell'auto come "icon.png". Carica invece le piccole icone come "car2.png" e "start.png" da qualche parte sul tuo server, come https://yourserver/car2.png. Avrai bisogno di questi come marcatori nella tua app.
Usa i file index.html allegati (rinomina index.html.txt in index.html), direttive.js e controllers.js e inseriscili in www (index.html), www/js (tutti i js).
aggiungi la tua piattaforma in questo modo:
ionico add plaftorm Android
costruisci così:
Android build ionico
quindi ionic ti dirà dove ha creato il tuo.apk che puoi installare sul tuo cellulare.
Per compilare per iOS, avrai bisogno di un Mac e di Xcode. ionic può quindi salvare un progetto Xcode, che puoi aprire in Xcode e creare per il tuo telefono. Se non disponi di un account sviluppatore iOS, dovrai collegare il telefono a Xcode e configurare il telefono per lo sviluppo per poter installare l'app lì. Questo è al di fuori dello scopo di questo istruibile.
Nei vari file js dovrai trovare le righe corrispondenti a "car2.png" e "start.png" e modificarle con il percorso delle tue immagini. Lo stesso per "plan.json".
Questo è tutto!!
Passaggio 5: lavoro futuro
1) Ho messo tutto in una scatola di cartone che posso nascondere ovunque vicino alla presa usb. La cosa migliore da fare sarebbe montare un case migliore sotto il cofano dell'auto, con un convertitore 12v->5v.
2) Con un sensore bluetooth, potresti effettivamente "sentire" se sei in macchina, quindi il sistema gps non si accende.
3) Basta pagare per un piano dati sim e impostare SECONDI su 1 per godersi il monitoraggio in tempo super-reale:)
Spero che questo mio primo tutorial vi sia piaciuto!
Consigliato:
Sensore meteorologico compatto con collegamento dati GPRS (scheda SIM): 4 passaggi
Sensore meteorologico compatto con collegamento dati GPRS (scheda SIM): riepilogo del progettoSi tratta di un sensore meteorologico alimentato a batteria basato su un sensore di temperatura/pressione/umidità BME280 e un MCU ATMega328P. Funziona con due batterie AA al litio tionile da 3,6 V. Ha un consumo di sonno estremamente basso di 6 µA. Invia dat
Esercitazione sul modulo GPS e GPRS A9G - Ai-Pensatore - Comandi AT: 7 passaggi
Esercitazione sul modulo GPS e GPRS A9G | Ai-Pensatore | Comandi AT: Ehi, come va, ragazzi! Akarsh qui da CETech. Oggi esamineremo il modulo A9G GPS, GSM e GPRS di AI Thinker. Esistono anche molti altri moduli come A9 e A6 di AI Thinker che hanno capacità GSM e GPRS simili ma
Videocamera e-mail 3G/GPRS di sicurezza Arduino con rilevamento del movimento: 4 passaggi
Videocamera e-mail 3G/GPRS di sicurezza Arduino con rilevamento del movimento: in questo manuale, vorrei parlare di una versione della creazione di un sistema di sorveglianza di sicurezza con un rilevatore di movimento e dell'invio di foto alla casella di posta tramite scudo 3G/GPRS. Questo articolo è basato su altre istruzioni: istruzione 1 e istruzione
Arduino e SIM900 GSM GPRS 3G Registrazione di temperatura e umidità, statistiche mobili: 4 passaggi
Arduino e SIM900 GSM GPRS 3G Registrazione di temperatura e umidità, statistiche mobili: con Arduino UNO R3, SIM900 Shield E DHT22 è possibile registrare i dati di temperatura e umidità all'esterno, in camera, in serra, in laboratorio, in cella frigorifera o in qualsiasi altro luogo completamente gratuito. Useremo questo esempio per registrare la temperatura e l'umidità della stanza. Il dispositivo
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino - Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero - Elicottero Rc - Aereo RC con Arduino: 5 passaggi (con immagini)
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino | Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero | Elicottero Rc | Aereo radiocomandato con Arduino: per far funzionare un'auto radiocomandata | Quadricottero | Drone | Aereo RC | Barca RC, abbiamo sempre bisogno di un ricevitore e trasmettitore, supponiamo che per RC QUADCOPTER abbiamo bisogno di un trasmettitore e ricevitore a 6 canali e quel tipo di TX e RX è troppo costoso, quindi ne faremo uno sul nostro