Inhoudsopgave:
- Stap 1: De hardware
- Stap 2: De software (Arduino-programma)
- Stap 3: Meer software (server-side ontvangst van de gps-locaties)
- Stap 4: Nog meer software (de mobiele app)
- Stap 5: Toekomstig werk
Video: Compleet op Arduino gebaseerd voertuig GPS + GPRS antidiefstalsysteem - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Hallo iedereen!
Ik wilde een complete oplossing bouwen voor een GPS-antidiefstalapparaat voor voertuigen, dat zou zijn:
zo goedkoop mogelijk
zo compleet mogelijk
omdat het-gewoon-werkt-is-niets-anders-te-doen
Dus uiteindelijk bouwde ik een op Arduino gebaseerde oplossing die me in totaal 25 $ kostte, min of meer.
Zoals je in de video kunt zien, werkt het gewoon! Je start de auto, je krijgt een melding op je mobiele telefoon dat de auto in beweging is, vervolgens open je de mobiele app en zie je de auto in realtime rijden (met een updatevertraging van 10 seconden).
Deze zelfstudie leidt u door alle stappen, waarbij u er rekening mee moet houden dat de oplossing verschillende componenten bevat:
1) de hardware (op Arduino gebaseerd)
2) de software (Arduino-programma)
3) meer software (server-side ontvangst van de gps-locaties)
4) nog meer software (de mobiele app)
Laten we beginnen..
Stap 1: De hardware
Boodschappenlijst:
1) Arduino Uno R3 of kloon. Ik heb de kloon "DCcEle DCcduino uno" gebruikt, die niet meer beschikbaar lijkt te zijn. Hier is een equivalent: op Aliexpress - 3.75 $
2) GPS-eenheid voor Arduino (GY-NEO6MV2 nieuwe GPS-module met Flight Control Flight Control EEPROM MWC APM2.5 grote antenne NEO6MV2). Ik gebruikte dit: op Aliexpress - 6.66$
3) GPRS / GSM-eenheid voor Arduino (SIM800L V2.0 5V draadloze GSM GPRS-MODULE Quad-Band met antennekabelkap). Ik heb dit gebruikt: op Aliexpress - 6.71$
4) Reserve dupont kabels zoals deze: op Aliexpress - 0.89$
5) IoT data simkaart (of een andere simkaart met een dataverbinding). Ik gebruikte dit: van Hologram.io. Ik heb een gratis ontwikkelaar, alleen betaalde verzendkosten - 7,50 $
Totaal: 25,51$, maar ik had de kabels al dus het is minder dan 25$!
De twee foto's tonen de componenten vóór montage en het eindproduct. De verbindingen die u moet maken zijn:
Arduino -- SIM800L
10 -- RESETTEN
GND -- GND (2 van hen)
5v -- 5v
7 -- SIM_TXD
8 -- SIM_RXD
Arduino -- GY-NEO6MV2
GND -- GND
5v -- VCC
3 -- RX
4 -- TX
Sluit alle kabels en antennes aan en zorg ervoor dat je de Arduino aanzet vanaf een bron die pieken van 2A kan leveren. De computer-usb is nauwelijks in orde (ik gebruik een MacBook Pro), een "willekeurige" telefoonoplader is niet genoeg. De meeste USB-uitgangen van auto's zijn ook minder dan 1A. Als dat jouw geval is, heb je ook een 12v auto 5v voeding nodig met minimaal 2A.
Plaats de simkaart. Als je de Hologram.io simkaart gebruikt, zorg er dan voor dat je je registreert op hun dashboard en de simkaart activeert (dit duurt een paar minuten/uren).
Stap 2: De software (Arduino-programma)
Ik ga ervan uit dat je bekend bent met Arduino-programmering. Begin anders met deze handleiding: op Instructables.
Je hebt maar één externe bibliotheek nodig, die moest ik handmatig installeren. Ga hierheen: TinyGPS, exporteer de bibliotheek en installeer deze in je lokale Arduino-map.
Van daaruit gaan we wat code "stelen" uit hun basisvoorbeeld en deze aanpassen aan onze doeleinden.
We gaan dan uit deze handleiding "stelen" en de code opnieuw aanpassen aan onze doeleinden.
Het resultaat is het bijgevoegde.ino-programma.
Er zijn een aantal dingen die je kunt en MOET aanpassen:
de "SECONDEN" definiëren, en de "SERVER" definiëren.
Ik heb SECONDEN op 10 gezet en dit is waarom: het Hologram.io-ontwikkelaarsprogramma geeft je 1 MB gratis data per maand. Dat betekent dat we het aantal verzonden bytes willen minimaliseren, maar ook dat we onze positie zo vaak moeten bijwerken. We gaan standaard AT-modemcommando's gebruiken om UDP-pakketten naar onze server te sturen die de berichten ontvangen, met lat/lon, elk met 4 bytes, en snelheid met 1 byte. Dus de totale gps-update is 20 bytes (IP-header) plus 8 bytes (UDP-header) plus 9 bytes (payload). Dat is 37 bytes. Ervan uitgaande dat mijn auto niet meer dan 2 uur per dag actief is, kan ik me elke 10 seconden een update veroorloven en verbruik ik slechts 806 kb per maand (31 dagen). Dat geeft me 218kb voor de rijtijd over mijn eigen, dat wil zeggen, de autodief. Dat geeft me 16,76 uur gps-monitoring buiten mijn rijtijd, met elke 10 seconden een update.
Nu moeten deze UDP-pakketten ergens heen. Ik gebruik een Ubuntu-server die wordt gehost op een CloudAtCost-cloud, die ik voor $ 8 heb gekocht met een korting van 80%, en die mij voor andere doeleinden dient, dus ik ga niet in op de kostenberekeningen. Als u niet voor een server wilt betalen, kunt u een gratis Amazon AWS-instantie voor 12 maanden krijgen en Ubuntu erop installeren. Zodra u uw server hebt ingesteld (zie de volgende stap), krijgt u het statische IP-adres en plaatst u het naast de SERVER-definitie.
Stap 3: Meer software (server-side ontvangst van de gps-locaties)
Zowel CloudAtCost als Amazon worden geleverd met een vooraf geconfigureerde Ubuntu-afbeelding (CloudAtCost is op Ubuntu 14.04). Dus ik ga niet door de stappen om Ubuntu te installeren, omdat dat niet nodig is. Als je CloudAtCost gebruikt, wil je misschien upgraden naar Ubuntu 16.04, dat doe je met een
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
Dan moet je LAMP installeren (raadpleeg deze handleiding: hier), hoewel we geen PHP gaan gebruiken.
Installeer Python met
sudo apt-get install python-minimal pip
Voeg dan een aantal modules toe:
pip install --user urllib3 verzoeken
We moeten /var/www door jou beschrijfbaar instellen, dus laten we doen:
sudo adduser YOUR_USER www-datasudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www
Nu hebben we een "server" nodig om i) de UDP-pakketten te ontvangen, ii) de track te bouwen, iii) een melding naar onze mobiele telefoon te sturen, en een "server" om de gemaakte gps-track te bedienen (dit zal apache zijn).
Kopieer voor de eerste server de bijgevoegde python-code. U moet de volgende dingen configureren:
iftttuser="UW IFTTT-GEBRUIKER"
iftttpass="UW IFTTT-WACHTWOORD"
iftttappletid="UW IFTTT-MELDINGS-APPLET"
iftttkey="UW IFTTT-SLEUTEL"
iftttevent="UW IFTTT-GEBEURTENIS"
Zoals je misschien al geraden hebt, gebruiken we IFTTT om realtime meldingen naar onze mobiele telefoons te verzenden. Volg deze handleiding: hier, maar in plaats van "stuur me een sms" te selecteren, selecteer "stuur een app-melding". Haal je applet-ID op (scroll naar de onderkant van de configuratie van de applet om het te zien) en gebruik dat hierboven. Gebruik ook de zo gemaakte sleutel in de instellingen hierboven. Het IFTTT-evenement is de naam die je aan je applet hebt gegeven, ik heb het "carmoving" gegeven.
Nu zijn er geen echte realtime meldingsplatforms voor gratis, AFAIK. Als je er een weet, laat het me weten. IFTTT heeft een vertraging. Deze vertraging kan worden geminimaliseerd tot een paar seconden als u de e-mailtrigger gebruikt. Helaas is dit niet betrouwbaar. De zojuist gemaakte webhook heeft een vertraging van 15 minuten. Maar we willen geen 15 minuten wachten om te weten dat onze auto wordt gestolen, toch? Dat is het wachtwoord om u te vragen om alle bovenstaande instellingen in te stellen. Als je door de python-code bladert, zie je dat er een paar regels zijn, namelijk 45-53, om de "nu controleren" -functionaliteit van IFTTT te automatiseren, die een plotselinge controle van de triggers afdwingt en de melding in minder dan 1 seconde activeert! Geen dank:)
Zodra u uw python-code ergens hebt ingesteld, voert u deze gewoon uit. Als je een professionele gebruiker bent, laat het dan beginnen bij het opstarten van de server. Raadpleeg de talloze gratis handleidingen online over hoe u dat kunt doen, bijvoorbeeld deze.
Stap 4: Nog meer software (de mobiele app)
We hebben een snelle en eenvoudige manier nodig om alleen de gps-track te visualiseren die de server in de vorige stap up-to-date houdt. Mogelijk moet het op alle soorten smartphones werken.
Laten we dan een platformonafhankelijke mobiele app-suite gebruiken, zoals Ionic/Cordova. Ik gebruik Ionic v1, verwar het niet met Ionic Native of Ionic v2, dat is iets anders.
Volg deze zeer eenvoudige stappen om uw eerste project in Ionic te starten: hier.
Vervolgens moet u een nieuw project starten op basis van de google maps SDK, zoals dit:
ionische start myapp-kaarten
Ga naar de map "resources" en kopieer de grote auto-afbeelding hier als "icon.png". Upload in plaats daarvan de kleine pictogrammen als "car2.png" en "start.png" ergens op uw server, zoals https://uwserver/car2.png. Je hebt deze nodig als markeringen in je app.
Gebruik de bijgevoegde index.html (hernoem index.html.txt naar index.html), richtlijnen.js en controllers.js-bestanden, en plaats ze in www (index.html), www/js (alle js).
voeg je platform als volgt toe:
ionic platform android toevoegen
bouw als volgt:
ionische build android
dan zal ionic je vertellen waar het je.apk heeft gebouwd die je op je mobiele telefoon kunt installeren.
Om voor iOS te bouwen, heb je een Mac en Xcode nodig. ionic kan dan een Xcode-project opslaan, dat u in Xcode kunt openen en voor uw telefoon kunt bouwen. Als je geen iOS-ontwikkelaarsaccount hebt, moet je je telefoon aansluiten op Xcode en je telefoon instellen voor ontwikkeling om de app daar te kunnen installeren. Dit valt buiten het bestek van deze instructable.
In de verschillende js-bestanden moet je de regels vinden die overeenkomen met "car2.png" en "start.png" en deze aanpassen met het pad van je afbeeldingen. Hetzelfde geldt voor "plan.json".
Dat is het!!
Stap 5: Toekomstig werk
1) Ik heb alles in een kartonnen doos gestopt die ik overal in de buurt van de USB-uitgang kan verbergen. Het beste zou zijn om een betere koffer onder de motorkap van de auto te monteren, met een 12v->5v converter.
2) Met een bluetooth-sensor zou je kunnen "voelen" of je in de auto zit, zodat het gps-systeem niet wordt ingeschakeld.
3) Betaal gewoon voor een sim-data-abonnement en stel SECONDEN in op 1 om te genieten van superrealtime tracking:)
Ik hoop dat je genoten hebt van deze eerste instructable van mij!
Aanbevolen:
A9G GPS- en GPRS-module-zelfstudie - Ai-Denker - AT-opdrachten: 7 stappen
A9G GPS- en GPRS-module-zelfstudie | Ai-Denker | AT Commando's: Hé, wat is er, jongens! Akarsh hier van CETech.Vandaag gaan we door de A9G GPS-, GSM- en GPRS-module van AI Thinker. Er zijn ook verschillende andere modules zoals A9 en A6 van AI Thinker die vergelijkbare GSM- en GPRS-mogelijkheden hebben, maar
TCP/IP-verbinding via GPRS: gegevens naar de server verzenden met de SIM900A-module: 4 stappen:
TCP/IP-verbinding via GPRS: gegevens naar de server verzenden met de SIM900A-module: In deze zelfstudie ga ik u vertellen hoe u gegevens naar de TCP-server verzendt met de sim900-module. Ook zullen we zien hoe we gegevens van server naar client kunnen ontvangen (GSM-module)
De Telit GE863 (GSM-GPRS-module) gebruiken: 4 stappen
Gebruik van de Telit GE863 (GSM-GPRS-module): De Telit GE863 is een GSM-GPRS-module, d.w.z. in feite een telefoon zonder scherm of toetsenbord, optioneel met GPS. Deze instructable gaat over hoe je het kunt gebruiken als je het koopt met het interfacebord. U kunt de Telit-module kopen met interface-bord窶ヲ