Evgenii Goryaev
Development, support and optimization

How do I develop a GPS tracker

Poster for the article How do I develop a GPS tracker

I decided to take on this project at the end of 2021 after meeting one of my friends. This friend owns several bike and electric scooter rentals for tourists. He told me that most often they use Xiaomi electric scooters, and these scooters are very often stolen from tourists. In our city, Valencia, in the beach area, there is the most popular place among scooter thieves - tourists are relaxing, relaxed and can poorly lock the scooter with the lock that comes with the kit.

After studying the current market of trackers, their prices, capabilities and feedback from real users, it was decided to try to develop our own complex from a tracker with the ability to block a scooter and a central server for processing and visualizing data.

For 22 years, in parallel with my main job, I have been developing tracker hardware, firmware, backend for data processing and frontend for visualization.

After several attempts, a tracker prototype was developed based on the A9G chip and a relatively stable firmware for it. The trackers communicate via the MQTT protocol with the backend, transmit coordinates determined by GPS and cellular network, signal levels and can block the scooter.

At the end of 22 years, there are about 35 trackers in testing in Valencia. In addition, back in the summer, thanks to the tracker my tracker, I managed to return 2 stolen scooters - which, I think, is a great success!

It was decided to call the project Lockator - a kind of play on words between lock and locator, location. Now I am actively developing the site, developing a new tracker model and looking for investors. Now 35 trackers are in testing and about 50 more are waiting for installation in scooters and electric bikes in the near future. I will probably try to install them in other electric vehicles and segways, since there is already one [segway rental company] (https://valencia-segwayanyway.com/) interested in installing.

The project has recently received a second co-founder and, in the near future, we plan to apply to various Spanish accelerators in search of venture capital investments and assistance in the development of the project.

As for the technical part of the backend, I can tell you the following:

PostGIS is chosen as the main database for storing all data. An excellent powerful tool for storing and processing geographic data. Having tested it on the data of my format and several hundred million records, I was more than satisfied with the sampling speed - it is amazing. In addition, it is possible to perform various geographic queries and transformations, which is very convenient in this type of service, like mine.

The service uses 2 queues - MQTT for data exchange with trackers and AMQP for interaction between micro services and backend elements. Interestingly, both queues are served by one RabbitMQ instance, raised, of course, in the docker.

There is also an Angular web application for working with a map that works through web sockets, maintaining a connection with a micro service on GO, which sends the necessary events from the AMQP queue to web sockets to clients. The landing page, website and admin panel are maintained by Yii2.

Here is such a project that I managed to develop in my free time in one year. I really hope that in the near future it will be possible to speed up and develop it: there are already a huge number of ideas!

If you want to take part in testing trackers and install them yourself - [go to the project website] (https://lockator.tech), there is all the necessary information.