Send continuous stream to mobile

Dependencies:   MPU9250

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

Committer:
Vincent Coubard
Date:
Tue Jul 26 14:37:15 2016 +0100
Revision:
0:3fe9d5124576
Child:
1:cd85f873e10d
Update example at tag mbed-os-5.0.1-rc1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Vincent Coubard 0:3fe9d5124576 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.
Vincent Coubard 0:3fe9d5124576 2
Vincent Coubard 0:3fe9d5124576 3 The template covers:
Vincent Coubard 0:3fe9d5124576 4
Vincent Coubard 0:3fe9d5124576 5 1. Setting up advertising and connection modes.
Vincent Coubard 0:3fe9d5124576 6
Vincent Coubard 0:3fe9d5124576 7 1. Creating an input characteristic: read-only, boolean, with notifications.
Vincent Coubard 0:3fe9d5124576 8
Vincent Coubard 0:3fe9d5124576 9 1. Constructing a service class and adding it to the BLE stack.
Vincent Coubard 0:3fe9d5124576 10
Vincent Coubard 0:3fe9d5124576 11 1. Assigning UUIDs to the service and its characteristic.
Vincent Coubard 0:3fe9d5124576 12
Vincent Coubard 0:3fe9d5124576 13 1. Pushing notifications when the characteristic's value changes.
Vincent Coubard 0:3fe9d5124576 14
Vincent Coubard 0:3fe9d5124576 15 # Running the application
Vincent Coubard 0:3fe9d5124576 16
Vincent Coubard 0:3fe9d5124576 17 ## Requirements
Vincent Coubard 0:3fe9d5124576 18
Vincent Coubard 0:3fe9d5124576 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 :
Vincent Coubard 0:3fe9d5124576 20
Vincent Coubard 0:3fe9d5124576 21 - [nRF Master Control Panel](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp) for Android.
Vincent Coubard 0:3fe9d5124576 22
Vincent Coubard 0:3fe9d5124576 23 - [LightBlue](https://itunes.apple.com/gb/app/lightblue-bluetooth-low-energy/id557428110?mt=8) for iPhone.
Vincent Coubard 0:3fe9d5124576 24
Vincent Coubard 0:3fe9d5124576 25 Hardware requirements are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
Vincent Coubard 0:3fe9d5124576 26
Vincent Coubard 0:3fe9d5124576 27 ## Building instructions
Vincent Coubard 0:3fe9d5124576 28
Vincent Coubard 0:3fe9d5124576 29 Building instructions for all samples are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
Vincent Coubard 0:3fe9d5124576 30
Vincent Coubard 0:3fe9d5124576 31 ## Checking for success
Vincent Coubard 0:3fe9d5124576 32
Vincent Coubard 0:3fe9d5124576 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.
Vincent Coubard 0:3fe9d5124576 34
Vincent Coubard 0:3fe9d5124576 35 1. Build the application and install it on your board as explained in the building instructions.
Vincent Coubard 0:3fe9d5124576 36 1. Open the BLE scanner on your phone.
Vincent Coubard 0:3fe9d5124576 37 1. Start a scan.
Vincent Coubard 0:3fe9d5124576 38
Vincent Coubard 0:3fe9d5124576 39 ![](img/start_scan.png)
Vincent Coubard 0:3fe9d5124576 40
Vincent Coubard 0:3fe9d5124576 41 **figure 1** How to start scan using nRF Master Control Panel 4.0.5
Vincent Coubard 0:3fe9d5124576 42
Vincent Coubard 0:3fe9d5124576 43 1. Find your device; it should appear with the name `Button` in the scanner.
Vincent Coubard 0:3fe9d5124576 44
Vincent Coubard 0:3fe9d5124576 45 ![](img/scan_results.png)
Vincent Coubard 0:3fe9d5124576 46
Vincent Coubard 0:3fe9d5124576 47 **figure 2** Scan results using nRF Master Control Panel 4.0.5
Vincent Coubard 0:3fe9d5124576 48
Vincent Coubard 0:3fe9d5124576 49 1. Establish a connection with the device.
Vincent Coubard 0:3fe9d5124576 50
Vincent Coubard 0:3fe9d5124576 51 ![](img/connection.png)
Vincent Coubard 0:3fe9d5124576 52
Vincent Coubard 0:3fe9d5124576 53 **figure 3** How to establish a connection using Master Control Panel 4.0.5
Vincent Coubard 0:3fe9d5124576 54
Vincent Coubard 0:3fe9d5124576 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.
Vincent Coubard 0:3fe9d5124576 56
Vincent Coubard 0:3fe9d5124576 57 ![](img/discovery.png)
Vincent Coubard 0:3fe9d5124576 58
Vincent Coubard 0:3fe9d5124576 59 **figure 4** Representation of the Button service using Master Control Panel 4.0.5
Vincent Coubard 0:3fe9d5124576 60
Vincent Coubard 0:3fe9d5124576 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.
Vincent Coubard 0:3fe9d5124576 62
Vincent Coubard 0:3fe9d5124576 63 ![](img/register_to_notifications.png)
Vincent Coubard 0:3fe9d5124576 64
Vincent Coubard 0:3fe9d5124576 65 **figure 5** How to register to notifications using Master Control Panel 4.0.5
Vincent Coubard 0:3fe9d5124576 66
Vincent Coubard 0:3fe9d5124576 67
Vincent Coubard 0:3fe9d5124576 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.
Vincent Coubard 0:3fe9d5124576 69
Vincent Coubard 0:3fe9d5124576 70 ![](img/button_pressed.png)
Vincent Coubard 0:3fe9d5124576 71
Vincent Coubard 0:3fe9d5124576 72 **figure 6** Notification of button pressed using Master Control Panel 4.0.5
Vincent Coubard 0:3fe9d5124576 73
Vincent Coubard 0:3fe9d5124576 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.
Vincent Coubard 0:3fe9d5124576 75
Vincent Coubard 0:3fe9d5124576 76 ![](img/button_depressed.png)
Vincent Coubard 0:3fe9d5124576 77
Vincent Coubard 0:3fe9d5124576 78 **figure 7** Notification of button depressed using Master Control Panel 4.0.5
Vincent Coubard 0:3fe9d5124576 79