Skip to content

Implementation of a WiFi tracking module where a bracelet can be attached to an object and the user can localize and track the current location of the object in real time through either a mobile application or a website

License

Notifications You must be signed in to change notification settings

meeranahmed/Indoor-Localization-Tracking-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Indoor Localization Tracking System

Design and implementation of a WiFi tracking module where a bracelet can be attached to an object and the user can localize and track the current location of the object in real time through either a mobile application or a website

Original

Requirements

  1. ESP8266 NodeMCU
  2. Arduino IDE
  3. Python Modules 📎
  4. Node Modules 📎

Contents

  1. Features definition
  2. Data Acquisition
  3. Convert to features vector
  4. Train and export the classifier
  5. Creating Server Flask App
  6. Web & Mobile App
  7. Additional Features
  8. Notes

1. Features definition 📎

  • The features for this project are going to be the RSSIs (Received signal strength indication) of the known WiFi networks. If a network is out of range, it will have an RSSI equal to 0.

  • Before actually recording the sample data to train our classifier, we need to do some preliminary work. This is because not all networks will be visible all the time: we have to work, however, with a fixed number of features.

  • First of all we need to enumerate all the networks we will encounter during the inference process.

    To begin, we take a "reconnaissance tour" of the locations we want to predict and log all the networks we detect. Load the following sketch and take note of all the networks that appear on the Serial monitor.

Original

2. Data Acquisition 📎

  • After selecting our stable networks we start by recording the strengths of those SSIDs by walking randomly and lalbeling each raw of data by its specified room
  • Grab some recordings just staying in a location for a few seconds and save the serial output to a file; then move to the next location and repeat: 10-15 samples for each location will suffice.

Original

Original

3. Convert to features vector 📎

  • The second step is to convert the scan results into a features vector. Each feature will be the RSSI of the given SSID, in the exact order we populated the knownNetworks array.

Original

4. Train and export the classifier 📎

  • We have used The KNeighbors Classifier

Original

5. Creating Flask Server App 📎

  • we imported the model.joblib into the server app then the prosess goes as following

    1. The esp scans the SSIDs and Post their RSSIs values in json format to the server through http Request
    2. The server recieve the data and starts to predict the label (location) of the esp

Original

6. Web & Mobile Visualization 📎

  1. We started by connecting the web and mobile Apps to the flask server
  2. The server after making the prediction it sends the predicted location label to the apps and they localize the pullet with the specified coordinates

Original

Original

7. App Features

  • We also added Replay Button which stores the previous locations of the esp and replay them on pressing

Important Note

  • Make sure to replace the IP address in each file with yours
  • you can find your ipv4 address by the following in your cmd
 >> ipconfig 

About

Implementation of a WiFi tracking module where a bracelet can be attached to an object and the user can localize and track the current location of the object in real time through either a mobile application or a website

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published