Skip to content
/ find Public
forked from schollz/find

High-precision indoor positioning framework for most wifi-enabled devices.

License

Notifications You must be signed in to change notification settings

huzairuje/find

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image FIND

Join the chat at https://gitter.im/schollz/find Version 2.0 Go Report Card

The Framework for Internal Navigation and Discovery (FIND) allows you to use your (Android) smartphone or laptop to determine your position within your home or office. You can easily use this system in place of motion sensors as its resolution will allow your phone to distinguish whether you are in the living room, the kitchen or the bedroom, etc. The position information can then be used in a variety of ways including home automation, way-finding, or tracking!

Simply put, FIND will allow you to replace tons of motion sensors with a single smartphone!

The system is built on two main components - a server and a fingerprinting device. The fingerprinting device (computer or android app) sends the specified data to the machine learning server which stores the fingerprints and analyzes them. It then returns the result to the device and stores the result on the server for accessing via a web browser or triggering via hooks.

Features

Requirements

To use this system you need to have the following:

  • A device (laptop/Raspberry Pi/Android smartphone) that has access to WiFi
  • (Optional) A computer (OS X/Windows/Linux) to run the server. If you don't have this, use ours.

Setup

1. Server (optional)

Note: You are welcome to skip this step and use our server, just make sure to point the server address to https://ml.internalpositioning.com.

$ git clone https://github.com/schollz/gofind.git
$ cd gofind
$ go get ./...
$ go build
$ ./gofind
-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----
               ,_   .  ._. _.  .
           , _-\','|~\~      ~/      ;-'_   _-'     ,;_;_,    ~~-
  /~~-\_/-'~'--' \~~| ',    ,'      /  / ~|-_\_/~/~      ~~--~~~~'--_
  /              ,/'-/~ '\ ,' _  , '|,'|~                   ._/-, /~
  ~/-'~\_,       '-,| '|. '   ~  ,\ /'~                /    /_  /~
.-~      '|        '',\~|\       _\~     ,_  ,               /|
          '\        /'~          |_/~\\,-,~  \ "         ,_,/ |
           |       /            ._-~'\_ _~|              \ ) /
            \   __-\           '/      ~ |\  \_          /  ~
  .,         '\ |,  ~-_      - |          \\_' ~|  /\  \~ ,
               ~-_'  _;       '\           '-,   \,' /\/  |
                 '\_,~'\_       \_ _,       /'    '  |, /|'
                   /     \_       ~ |      /         \  ~'; -,_.
                   |       ~\        |    |  ,        '-_, ,; ~ ~\
                    \,      /        \    / /|            ,-, ,   -,
                     |    ,/          |  |' |/          ,-   ~ \   '.
                    ,|   ,/           \ ,/              \       |
                    /    |             ~                 -~~-, /   _
                    |  ,-'                                    ~    /
                    / ,'                                      ~
                    ',|  ~
                      ~'
-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----
   _________  _____
  / __/  _/ |/ / _ \  ______ _____  _____ ____
 / _/_/ //    / // / (_-< -_) __/ |/ / -_) __/
/_/ /___/_/|_/____/ /___|__/_/  |___/\__/_/

(version 2.X) is up and running on http://192.168.1.2:8003
-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----

2. Client

The client gathers WiFi fingerprints and sends them to the server.

If you want to use an Android device, download our app, or build the app yourself.

If you want to use a computer (laptop/Raspberry Pi/etc.), download our client, or build it yourself.

Usage

App

When you start up the app you will be asked for a username (enter whatever you want) and you'll be assigned a unique group name. Then you'll see the following:

![App1](https://i.imgur.com/bGVVQeW.png =100x)

Simply click "Learn" and you'll be prompted for a location name.

App2

After you enter a location, the app will connect to the server and then submit fingerprints.

App3

After you've learned some locations, just hit "Track" and you'll see your calculated location.

App4

To see more detailed information, goto the server and login with your group name

Client program

To start learning locations simply use

./fingerprint -e

and then to track your location use

./fingerprint

There are other options, you can learn more by looking at the README. To see more detailed information, goto the server and login with your group name

Server

You can see statistics about your fingeprints by logging on to the server and signing in with your group name.

stats

You can see fingerprints of individual places by clicking on them

places

and then you can click on mac addresses to see there statistics across rooms

macs

The server also reveals realtime tracking

realtime

Acknowledgements

Thanks to patorjk and asciiworld for the ASCII art.

Imgur for hosting images

About

High-precision indoor positioning framework for most wifi-enabled devices.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 92.0%
  • Python 6.2%
  • Other 1.8%