Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Ik heb deze GPS-tracker vorig jaar gemaakt en omdat hij goed werkt, publiceer ik hem nu op Instructable. Het is aangesloten op de accessoire-stekker in mijn kofferbak.
De GPS tracker uploadt de autopositie, snelheid, richting en de gemeten temperatuur via een mobiele data (GPRS) verbinding naar een Thingspeak-kanaal. Deze gegevens worden gelezen door mijn Openhab domotica om deze gegevens weer te geven. Ik gebruik Thingspeak om mijn gegevens lokaal in mijn Openhab Home Automation te krijgen via de MQTT-makelaar van Thingspeak. Misschien zijn er andere manieren, laat het me weten in de comments
Als je de tracker belt, stuurt hij je een sms met de locatie en status, met daarin een Google Maps-link naar de coördinaten.
Dit project werd geïnspireerd door enkele andere projecten, die ik hier en verderop vermeld.
- Uploaden naar Thingspeak
- Stuur een sms met een Google Maps-link
Ik zag onlangs deze Instructable van een autotracker die een vergelijkbare benadering voor de sms gebruikt.
In de volgende stappen laat ik je de
- Principe en de code
- Hardware
- samenkomst
- Integratie van domotica
- Verdere verbeteringen
Benodigdheden
Ik heb mijn componenten van Aliexpress. Hoofd onderdelen
- Arduino Pro Mini 328P 5v: voorbeeldlink
- GY-NEO6MV2 GPS-ontvanger: link
- A6 GSM/GPRS-module of vergelijkbaar: link
- Buck-converter: link
Stap 1: Het principe en de code
In de bijgevoegde flows wordt het werkingsprincipe van de GPS tracker getoond. De code is gepubliceerd op mijn Github-pagina.
Ik zal commentaar geven op sommige delen van de code.
Seriële communicatie
De Arduino communiceert via een seriële verbinding met zowel de GPS-ontvanger als de A6-module.
Ik kwam erachter dat de seriële communicatie tussen de A6-module en de Arduino pas volledig stabiel was toen ik de hardware-serieel van de Arduino pro mini gebruikte. Voor de communicatie tussen de Arduino en de GPS-ontvanger heb ik AltSoftSerial gebruikt. Houd er rekening mee dat de AltSoftSerial-bibliotheek vooraf gedefinieerde RX- en TX-pinnen gebruikt.
Tijdens de ontwikkeling heb ik geëxperimenteerd met een Arduino Mega, die 4 hardware-seriële verbindingen heeft, waarvan je er gemakkelijk een kunt gebruiken voor debug-doeleinden.
AT-opdrachten
Zie deze links voor informatie over de zeer belangrijke AT-commando's: Electrodragon, M2Msupport.net, Andreas Spiess.
Als je een andere GSM/GPRS-module gebruikt, zoals een SIM800 of SIM900, heb je waarschijnlijk andere AT-commando's nodig om een gegevensverbinding op te zetten en gegevens naar een site als Thingspeak te POST.
sms
De GSM module leest het telefoonnummer van de beller (AT+CLIP) en stuurt de SMS met de locatie (Google Maps link) en status naar de beller.
Temperatuur
Als de temperatuur in de GPS-tracker te hoog is, stuurt deze een alarm-sms.
Stap 2: Hardware
Ik heb alle componenten via vrouwelijke headers aangesloten op een perf-bord voor eenvoudig debuggen en repareren. Zie de foto's en de opmerkingen.
De buck-converter krijgt 12V van de auto en levert 5V volt (via de aan/uit-schakelaar) voor de Arduino Pro Mini, de A6-module en de GPS-ontvanger (waarvan ik dacht dat deze slechts 3,3V tolerant was, maar 5V werkt prima).
De A6-module heeft voldoende voeding nodig. Bij het verzenden via het GSM-netwerk geeft het wat stroompieken, daarom heb ik een 1000uF tantaalcondensator toegevoegd.
De temperatuur wordt gemeten via een 10K NTC thermistor.
Stap 3: Montage
Nadat alles is aangesloten en getest, worden de componenten op de female headers gemonteerd en worden de schakelaars en LED's in de behuizing gelijmd.
Stap 4: Integratie van domotica
Thingspeak
Ik gebruik een gratis account op Thingspeak. Helaas hebben ze het aantal kanalen voor een gratis account verminderd, maar het werkt nog steeds geweldig en dit project heeft slechts één kanaal en meerdere velden nodig. Voor het uploaden heb je de Write API key nodig, voor het lezen via MQTT heb je de Read API key nodig. Zie deze site voor documentatie over het gebruik van de Thingspeak MQTT.
Ik lees de gegevens in Node Red. Zie de afbeelding van de bijgevoegde stroom waarin ik de lat- en lon-waarden samenvoeg tot één string. Ik gebruik een vertraging om de lat- en lon-waarden in de juiste volgorde te krijgen.
Stap 5: Verdere verbeteringen
Voor de toekomst ben ik van plan om:
- Sluit de tracker aan op mijn batterij, zodat de module altijd aan staat. Ik moet echter garanderen dat de batterij niet te vaak leegloopt.
- Misschien wat geofencing in mijn domotica, zodat ik een melding krijg als de auto buiten het gedefinieerde bereik is.
- Controleer of de beller bekend is, om te voorkomen dat sms-berichten naar onbekende bellers worden verzonden.
- Heb je een leuk idee, laat het me dan weten in de comments