Build a Real-time Location Tracker Using Wia


Project Requirements


Setting up the Wia Node.js SDK

  • First thing you will want to do is to create a folder on your location device. Let's call it wia-location-device.
  • Go into the folder and initialize the project by creating a package.json file using the command “npm init” (use defaults for everything).
  • Install the Wia SDK using the command “npm install --save wia“.
  • Your package.json file should look something like the code below.
    "name": "wia-location-device",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    "author": "Your Name Here",
    "license": "ISC",
    "dependencies": {
        "wia": "^1.3.3"

Creating your Location Tracking Device

  • From here, click on the + symbol and the Add New Device modal will appear.
  • Enter ‘Location Device' as the name and click Add Device.
  • Take a note of the device's secret key, we'll need this later.

Write code for the location tracking device

  • We need to create a file for our program, let's call it index.js
  • Copy the code from the example below add to the index.js file.
  • Replace the device-secret-key on line 3 with your device's secret key that you made a note of earlier.
  • Now to test that you have done your setup correctly, simply run node index.js
  • Your device should have updated in the dashboard under the Location tab, with your sensor readings. You can also view in in real-time in the Debugger tab.
'use strict'
var wia = require('wia')('Your secret key'); 
// collection of cities
var cities = [{"city":"Dublin","lat":"53.349805","lng":"-6.260310"}, 
// Using the MQTT stream'connect', function() { 
 console.log('Stream connected!'); 
 // randomly choosing city location to publish
 var random = Math.floor(Math.random() * 4); 
 var randomcity = cities[random]; 
 // setting the interval at which to publish location i.e. every second
 setInterval(function() { 
   // function to publish location data 
         "longitude": randomcity.lng, 
         "altitude": 2 

Read More:  Build a Real-time Location Tracker Using Wia

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top