Send continuous stream to mobile

Dependencies:   MPU9250

Fork of pdiot-ble-notify-array by Andrew Bates

Committer:
mbed_official
Date:
Fri Jul 29 22:45:31 2016 +0100
Revision:
3:6f18b8269d65
Parent:
2:2be0a2820d3d
Child:
7:fc1d7b518af4
Merge branch 'master' of https://github.com/ARMmbed/mbed-os-example-ble


Commit copied from https://github.com/ARMmbed/mbed-os-example-ble

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 3:6f18b8269d65 1 BLE_Button is a BLE service template. It handles a read-only characteristic with a simple input (boolean values). The input's source is the button on the board itself - the characteristic's value changes when the button is pressed or released.
mbed_official 3:6f18b8269d65 2
mbed_official 3:6f18b8269d65 3 The template covers:
mbed_official 3:6f18b8269d65 4
mbed_official 3:6f18b8269d65 5 1. Setting up advertising and connection modes.
mbed_official 3:6f18b8269d65 6
mbed_official 3:6f18b8269d65 7 1. Creating an input characteristic: read-only, boolean, with notifications.
mbed_official 3:6f18b8269d65 8
mbed_official 3:6f18b8269d65 9 1. Constructing a service class and adding it to the BLE stack.
mbed_official 3:6f18b8269d65 10
mbed_official 3:6f18b8269d65 11 1. Assigning UUIDs to the service and its characteristic.
mbed_official 3:6f18b8269d65 12
mbed_official 3:6f18b8269d65 13 1. Pushing notifications when the characteristic's value changes.
mbed_official 3:6f18b8269d65 14
mbed_official 3:6f18b8269d65 15 # Running the application
mbed_official 3:6f18b8269d65 16
mbed_official 3:6f18b8269d65 17 ## Requirements
mbed_official 3:6f18b8269d65 18
mbed_official 3:6f18b8269d65 19 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 3:6f18b8269d65 20
mbed_official 3:6f18b8269d65 21 - [nRF Master Control Panel](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp) for Android.
mbed_official 3:6f18b8269d65 22
mbed_official 3:6f18b8269d65 23 - [LightBlue](https://itunes.apple.com/gb/app/lightblue-bluetooth-low-energy/id557428110?mt=8) for iPhone.
mbed_official 3:6f18b8269d65 24
mbed_official 3:6f18b8269d65 25 Hardware requirements are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
mbed_official 3:6f18b8269d65 26
mbed_official 3:6f18b8269d65 27 ## Building instructions
mbed_official 3:6f18b8269d65 28
mbed_official 3:6f18b8269d65 29 Building instructions for all samples are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
mbed_official 3:6f18b8269d65 30
mbed_official 3:6f18b8269d65 31 ## Checking for success
mbed_official 3:6f18b8269d65 32
mbed_official 3:6f18b8269d65 33 **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 3:6f18b8269d65 34
mbed_official 3:6f18b8269d65 35 1. Build the application and install it on your board as explained in the building instructions.
mbed_official 3:6f18b8269d65 36 1. Open the BLE scanner on your phone.
mbed_official 3:6f18b8269d65 37 1. Start a scan.
mbed_official 3:6f18b8269d65 38
mbed_official 3:6f18b8269d65 39 ![](img/start_scan.png)
mbed_official 3:6f18b8269d65 40
mbed_official 3:6f18b8269d65 41 **figure 1** How to start scan using nRF Master Control Panel 4.0.5
mbed_official 3:6f18b8269d65 42
mbed_official 3:6f18b8269d65 43 1. Find your device; it should appear with the name `Button` in the scanner.
mbed_official 3:6f18b8269d65 44
mbed_official 3:6f18b8269d65 45 ![](img/scan_results.png)
mbed_official 3:6f18b8269d65 46
mbed_official 3:6f18b8269d65 47 **figure 2** Scan results using nRF Master Control Panel 4.0.5
mbed_official 3:6f18b8269d65 48
mbed_official 3:6f18b8269d65 49 1. Establish a connection with the device.
mbed_official 3:6f18b8269d65 50
mbed_official 3:6f18b8269d65 51 ![](img/connection.png)
mbed_official 3:6f18b8269d65 52
mbed_official 3:6f18b8269d65 53 **figure 3** How to establish a connection using Master Control Panel 4.0.5
mbed_official 3:6f18b8269d65 54
mbed_official 3:6f18b8269d65 55 1. Discover the services and the characteristics on the device. The *Button service* has the UUID `0xA000` and includes the *Button state characteristic* which has the UUID `0xA001`. Depending on your scanner, non standard 16-bit UUID's can be displayed as 128-bit UUID's. If it is the case the following format will be used: `0000XXXX-0000-1000-8000-00805F9B34FB` where `XXXX` is the hexadecimal representation of the 16-bit UUID value.
mbed_official 3:6f18b8269d65 56
mbed_official 3:6f18b8269d65 57 ![](img/discovery.png)
mbed_official 3:6f18b8269d65 58
mbed_official 3:6f18b8269d65 59 **figure 4** Representation of the Button service using Master Control Panel 4.0.5
mbed_official 3:6f18b8269d65 60
mbed_official 3:6f18b8269d65 61 1. Register for the notifications sent by the button state characteristic then the scanner will automatically receive a notification containing the new state of the button every time the state of the button changes.
mbed_official 3:6f18b8269d65 62
mbed_official 3:6f18b8269d65 63 ![](img/register_to_notifications.png)
mbed_official 3:6f18b8269d65 64
mbed_official 3:6f18b8269d65 65 **figure 5** How to register to notifications using Master Control Panel 4.0.5
mbed_official 3:6f18b8269d65 66
mbed_official 3:6f18b8269d65 67
mbed_official 3:6f18b8269d65 68 1. Pressing Button 1 on your board updates the state of the button and sends a notification to the scanner. The new state of the button characteristic value should be equal to 0x01.
mbed_official 3:6f18b8269d65 69
mbed_official 3:6f18b8269d65 70 ![](img/button_pressed.png)
mbed_official 3:6f18b8269d65 71
mbed_official 3:6f18b8269d65 72 **figure 6** Notification of button pressed using Master Control Panel 4.0.5
mbed_official 3:6f18b8269d65 73
mbed_official 3:6f18b8269d65 74 1. Releasing Button 1 on your board updates the state of the button and sends a notification to the scanner. The new state of the button characteristic value should be equal to 0x00.
mbed_official 3:6f18b8269d65 75
mbed_official 3:6f18b8269d65 76 ![](img/button_depressed.png)
mbed_official 3:6f18b8269d65 77
mbed_official 3:6f18b8269d65 78 **figure 7** Notification of button depressed using Master Control Panel 4.0.5
mbed_official 3:6f18b8269d65 79