BLE BatteryLevel example
This example is a fork of the following mbed-os example:
https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-ble-BatteryLevel/
Please read the documentation in this page.
readme.md@2:18b05b3173a8, 2016-07-28 (annotated)
- Committer:
- mbed_official
- Date:
- Thu Jul 28 23:14:21 2016 +0100
- Revision:
- 2:18b05b3173a8
- Parent:
- 0:8113e6c77cd7
- Child:
- 3:488ecd009a27
Merge branch 'master' of https://github.com/ARMmbed/mbed-os-example-ble
Commit copied from ./src/github.com/ARMmbed/mbed-os-example-ble
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 2:18b05b3173a8 | 1 | This example creates and updates a standard Battery Level service containing a single |
mbed_official | 2:18b05b3173a8 | 2 | GATT characteristic. |
mbed_official | 2:18b05b3173a8 | 3 | |
mbed_official | 2:18b05b3173a8 | 4 | The [battery service transmits](https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.battery_service.xml) a device's battery level in percentage, with 100% being a fully charged battery and 0% being a fully drained battery. |
mbed_official | 2:18b05b3173a8 | 5 | |
mbed_official | 2:18b05b3173a8 | 6 | Although the sample application runs on a BLE device, it doesn't show the device's real battery level (because that changes very slowly and will make for a dull example). Instead, it transmits a fake battery level that starts at 50% (half charged). Every half second, it increments the battery level, going in single increments until reaching 100% (as if the battery is charging). It then drops down to 20% to start incrementing again. |
mbed_official | 2:18b05b3173a8 | 7 | |
mbed_official | 2:18b05b3173a8 | 8 | # Running the application |
mbed_official | 2:18b05b3173a8 | 9 | |
mbed_official | 2:18b05b3173a8 | 10 | ## Requirements |
mbed_official | 2:18b05b3173a8 | 11 | |
mbed_official | 2:18b05b3173a8 | 12 | The sample application can be seen on any BLE scanner on a smartphone. If you don't have a scanner on your phone, please install : |
mbed_official | 2:18b05b3173a8 | 13 | |
mbed_official | 2:18b05b3173a8 | 14 | - [nRF Master Control Panel](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp) for Android. |
mbed_official | 2:18b05b3173a8 | 15 | |
mbed_official | 2:18b05b3173a8 | 16 | - [LightBlue](https://itunes.apple.com/gb/app/lightblue-bluetooth-low-energy/id557428110?mt=8) for iPhone. |
mbed_official | 2:18b05b3173a8 | 17 | |
mbed_official | 2:18b05b3173a8 | 18 | Hardware requirements are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md). |
mbed_official | 2:18b05b3173a8 | 19 | |
mbed_official | 2:18b05b3173a8 | 20 | ## Building instructions |
mbed_official | 2:18b05b3173a8 | 21 | |
mbed_official | 2:18b05b3173a8 | 22 | Building instructions for all samples are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md). |
mbed_official | 2:18b05b3173a8 | 23 | |
mbed_official | 2:18b05b3173a8 | 24 | ## Checking for success |
mbed_official | 2:18b05b3173a8 | 25 | |
mbed_official | 2:18b05b3173a8 | 26 | **Note:** Screens captures depicted below show what is expected from this example if the scanner used is *nRF Master Control Panel* version 4.0.5. If you encounter any difficulties consider trying another scanner or another version of nRF Master Control Panel. Alternative scanners may require reference to their manuals. |
mbed_official | 2:18b05b3173a8 | 27 | |
mbed_official | 2:18b05b3173a8 | 28 | 1. Build the application and install it on your board as explained in the building instructions. |
mbed_official | 2:18b05b3173a8 | 29 | 1. Open the BLE scanner on your phone. |
mbed_official | 2:18b05b3173a8 | 30 | 1. Start a scan. |
mbed_official | 2:18b05b3173a8 | 31 | |
mbed_official | 2:18b05b3173a8 | 32 | ![](img/start_scan.png) |
mbed_official | 2:18b05b3173a8 | 33 | |
mbed_official | 2:18b05b3173a8 | 34 | **figure 1** How to start scan using nRF Master Control Panel 4.0.5 |
mbed_official | 2:18b05b3173a8 | 35 | |
mbed_official | 2:18b05b3173a8 | 36 | 1. Find your device; it should be named `BATTERY`. |
mbed_official | 2:18b05b3173a8 | 37 | |
mbed_official | 2:18b05b3173a8 | 38 | ![](img/scan_result.png) |
mbed_official | 2:18b05b3173a8 | 39 | |
mbed_official | 2:18b05b3173a8 | 40 | **figure 2** Scan results using nRF Master Control Panel 4.0.5 |
mbed_official | 2:18b05b3173a8 | 41 | |
mbed_official | 2:18b05b3173a8 | 42 | 1. Establish a connection with your device. |
mbed_official | 2:18b05b3173a8 | 43 | |
mbed_official | 2:18b05b3173a8 | 44 | ![](img/connection.png) |
mbed_official | 2:18b05b3173a8 | 45 | |
mbed_official | 2:18b05b3173a8 | 46 | **figure 3** How to establish a connection using Master Control Panel 4.0.5 |
mbed_official | 2:18b05b3173a8 | 47 | |
mbed_official | 2:18b05b3173a8 | 48 | 1. Discover the services and the characteristics on the device. The *Battery service* has the UUID 0x180F and includes the *Battery level* characteristic which has the UUID 0x2A19. |
mbed_official | 2:18b05b3173a8 | 49 | |
mbed_official | 2:18b05b3173a8 | 50 | ![](img/discovery.png) |
mbed_official | 2:18b05b3173a8 | 51 | |
mbed_official | 2:18b05b3173a8 | 52 | **figure 4** Representation of the Battery service using Master Control Panel 4.0.5 |
mbed_official | 2:18b05b3173a8 | 53 | |
mbed_official | 2:18b05b3173a8 | 54 | 1. Register for the notifications sent by the *Battery level* characteristic. |
mbed_official | 2:18b05b3173a8 | 55 | |
mbed_official | 2:18b05b3173a8 | 56 | ![](img/register_to_notifications.png) |
mbed_official | 2:18b05b3173a8 | 57 | |
mbed_official | 2:18b05b3173a8 | 58 | **figure 5** How to register to notifications using Master Control Panel 4.0.5 |
mbed_official | 2:18b05b3173a8 | 59 | |
mbed_official | 2:18b05b3173a8 | 60 | |
mbed_official | 2:18b05b3173a8 | 61 | 1. You should see the battery level value change every half second. It begins at 50, goes up to 100 (in steps of 1), resets to 20 and so on. |
mbed_official | 2:18b05b3173a8 | 62 | |
mbed_official | 2:18b05b3173a8 | 63 | ![](img/notifications.png) |
mbed_official | 2:18b05b3173a8 | 64 | |
mbed_official | 2:18b05b3173a8 | 65 | **figure 6** Notifications view using Master Control Panel 4.0.5 |
mbed_official | 2:18b05b3173a8 | 66 | |
mbed_official | 2:18b05b3173a8 | 67 | If you can see the characteristic, and if its value is incrementing correctly, the application is working properly. |
mbed_official | 2:18b05b3173a8 | 68 |