Since April this year I’ve been bèta-testing Btraced GPS Tracking App for Android; and since a week this Android version is finished too. I love it! In short, with Btraced (now available in the App Store as well as Google play) you can upload GPS coordinates, speed, course, altitude to your own web server (or to the free Btraced web server). Uploading the data can be done real-time, or afterwards (e.g. when you have a Wifi connection). Well, the feature list is too long, so go to Btraced.com for more information.
Last week I made an ASP.Net web page that enabled me to upload (post) the data to my own web server and store the data in a SQL Server table and I updated the touchscreen application that’s running in the livingroom so that all the family members can see where I am.
OK, this is nice, but I want to do more with this of course, so I added another feature to my Btraced upload web page: an MQTT client! Now I have my GPS location available on my MQTT broker:
Reverse geocoding was the first thing I tried. There’s a lot of code on the Internet for Node.js and I found a module (download the more recent code from GitHub for it to work) that does exactly what I needed – it uses the Google Maps API to find an (approximate) address for the GPS coordinates. Within a quarter of an hour I got it working. Cool, now I can show an address as well, which is even more convenient then just displaying a marker on a map – although I could also combine the two of course.
Next: geo-fencing. There’s a (Dutch) TV commercial where someone turns on the central heating with his smart phone after landing at the airport – that won’t be necessary anymore with geo-fencing! When your system knows where you are and can determine whether you’re entering or leaving a geo-fence, it can do things like switching the house to Eco mode, booting the PC when coming home, starting the robot vacuum cleaner when nobody is at home – you name it and it’s possible!
All I need is a way to define my geo-fences with 1 or more GPS coordinates – either as a rectangle or as a circle with a center and radius. The rest should be easy!