GithubHelp home page GithubHelp logo

app's Introduction

Bluetooth LE app experiment

Goal

I created this app to see how hard it is to use Bluetooth Low Energy for proximity detection. The app scans for other devices and it advertises itself as a device.

The app can send bluetooth low energy signals ("advertise") and detect BT LE signals ("scan"). In the main screen, you can set advertising and scanning on or off. You can also give your device a new advertising id, so hits show up as a different contact on scanning devices ("new ID"). You can adjust the advertise mode and signal strength for sending signals.

Signals that exceed a threshold strength and occure more than n times, will be marked in the Contacts screen. Red id means both number of hits and signal strength appy, blue means only one does. You can adjust these values in the main screen. In the main screen, newly detected devices show up on a list. In the Contacts page, you see the contacts accumulated.

Functions

ID

The app generates an ID that it uses to advertise via Bluetooth LE. You can change the ID to mimic a different device.

Discovering

You can set discovering on which means the app starts discovering (scanning) for Bluetooth LE devices that advertise the right UUID (built into the app, this is not the id mentioned above). The Bluetooth UUID defines a service, like heartrate, headphone or battery.

Peripheral

You switch this on, the app behaves like a Bluetooth peripheral (similar to a headphone, etc). It advertises its unique ID, which you can change in the main screen.

Advertising mode

This is the strategy bluetooth LE should use for advertising the device. Choices are

  • low power: saving energy
  • balanced: optimal balance
  • low latency: best performance, high power consumption

Signal strength

The signal strength for advertising our device. This can be

  • ultra low
  • low
  • medium
  • high

Clear list

Clears the list of contacts in your screen. It doesn't affect the database.

New ID

You can change the app unique ID.

Contacts

The app stores all IDs of devices it has found while scanning. The ID's appear in the main screen as they come up, they are stored in a database that you can browse in the Contacts screen (swipe for that screen). For each contact is shown

  • ID
  • date and time
  • number of detections
  • signal strength set by sender
  • the actual strength One could use a combination of signal strength and number of detections to determine whether a contact needs to be registered as a "detected contact". Number of detections is done within a limited time frame, 15 minutes. In the screen, you can set the threshold for signal strength and number of detections for a "hit".

The clear button on the right clears the database and the contact screen.

app's People

Contributors

xtien avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.