iBeacon

Create and demonstrate iBeacon using JDY-08 module with HM-10 firmware

This project is maintained by handiko

iBeacon using a JDY-08 BLE module

Create and demonstrate iBeacon using JDY-08 module with HM-10 firmware. The UUID string, major, and minor numbers are dynamically and periodically changeable during operation.

The story behind this is that I want to make an iBeacon without any high-cost Arduino shield or dedicated Arduino IDE compatible BLE (Bluetooth Low Energy) platform such as nordicRF RedBear BLEs. When I found some really inexpensive BLE module on some online shops (JDY-08 BLE module), I quickly checked the datasheet and bought some. Later, I learned that these modules can be re-flashed using HM-10 BLE firmware and then be transformed into an iBeacon. I already wrote another repo which describes the process to re-flash JDY-08 module with HM-10 firmware, here in my GitHub page or GitHub repo.

Requirements

Wiring

I included the fritzing wiring file in iBeacon/Fritzing folder (optional) if you wanna check it out.

Demo

Default UUID string, Major, and Minor numbers

Demo - Configure the JDY-08 into an iBeacon with default values

The Arduino Sketch for this demo included in iBeacon/Aduino-Sketches/Static_iBeacon

Then i tried to use the iBeacon locator app to find the furthest distance i can detect it.

As it turns out, it was about 10 meters (indoor).

Demo - Periodically change the iBeacon parameters (UUID, Major, Minor, and Advertising interval)

The Arduino Sketch for this demo included in iBeacon/Aduino-Sketches/Dinamic_iBeacon. Here you see the serial monitor output when it was a one-time-only configuration (left) and periodic configuration (right)

While it was running, you can comfirm the parameter changes with the BLE scanner or iBeacon locator app

Acknowledgements

Thank you for:

Contributing

  1. Fork it https://github.com/handiko/iBeacon/fork
  2. Create new branch (git checkout -b myfeature)
  3. Do some editing / create new feature
  4. Commit your works (git commit -m "Adding some myfeature blah blah..")
  5. Push to the branch (git push -u origin myfeature)
  6. Create a new Pull Request …