Transalp Tracking.
I got my motorbike's licence recently and decided to build my own GPS tracker in the - unlikely - event someone would decide to steal my freshly acquired - but still very old and ugly - Transalp' 650 XLV.
Back-End
The back-end is composed by two main servers, both of them are running on Flask and Python 3.7.3 One of them exposes the API used both by the tracker's module to add location entries and by the front-end to display them. The other server is used to host the front-end. All the software for this project is self-hosted on a Rasberry Pi 4.
Front-End
The front-end make heavily use of the Google Maps javascript API thanks to its 200$ free credit every month. I first planned to use Open Street Map instead but unfortunately it misses the "snap to road" feature that allows you to get the most likely road taken given a set of localization points.
Hardware
The hardware is based on two boards:
- Adafruit Feather 32u4 FONA: Arduino based GSM board
- Adafruit Ultimate GPS breakout: GPS chipset with a built-in antenna
In the final version, the tracker is powered by the Transalp's 12V battery throught a Traco DC/DC converter. It still has its own battery to provide several days of operation in case someone cuts the main power line. If the Transalp's battery gets too low on voltage, the tracker will automatically switch to internal power to save it.
Embedeed Software
The tracker sends the following informations to the API:
- GPS coordinates
- Date & Time
- Speed
- Direction (inacurate)
- Battery SOC
The frequency at which data are uploaded to the server depends on the current speed.