Need help to build a Bluetooth (BLE) distance detector functionality on a react native app

  • Job Duration01 to 03 months
  • Project LevelExpensive
  • Project deadlineExpired

Project detail

Skills Required:
React-native, experience with Bluetooth Low Energy (BLE)

Objective:
We want to have a PoC to evaluate how accurate we can be today in measuring the rough distance between a mobile app and laptop or peripheral BLE devices.

As a starting point, there’s already a bare minimum react native app with 2 screens: home and settings. There’s really nothing much there other than some UI components and simple react navigation.

Requirements:

There’s only one relevant screen for this task: Settings → Distance Detector.
On that screen, users should be able to choose a device (laptop, beacon, etc) that is already connected via bluetooth.

Once users have selected a device, ask them to walk to their desired threshold distance (e.g. 10m / 30 feet). The app should record this signal as a threshold. Users will then confirm.

As long as the Distance Detector component is alive, the app should periodically ping the peripherals and detect whether the device is inside or outside the distance threshold. Show the results on the same screen and conclude whether the users are within the proximity of the device or not.

The app should be able to scan multiple devices at the same time (e.g. connecting to a laptop and at the same time reading BLE beacon signals like this one: https://www.amazon.com/Bluetooth-BLE-iBeacon-BC037-iBeacon-configure/dp/B07FC5FMHW/ref=sr_1_3?dchild=1&keywords=bluetooth+beacon&qid=1609368838&sr=8-3). The app should be able to do a background scanning.

Should work on ios and android.

Others:

UI/ UX is not important. The deliverables are just the functionalities mentioned above.
Laptop connection is the higher priority, BLE beacon should be the least.
We will also cover the bluetooth beacon device for testing.
Ideally we should persist the state at the app level (e.g. using redux) as well as persist the configurations in DB, but they’re not within the scope of this task.

Skills Required

Industry Categories

Freelancer type required for this project