Bluetooth Low Energy enabled device with "Switch" feature, compatible with BlueST Protocol.

Bluetooth Low Energy enabled device with "Switch" feature, compatible with BlueST Protocol.

Committer:
Davidroid
Date:
Tue Apr 17 15:13:04 2018 +0000
Revision:
0:6b34c49b5285
Bluetooth Low Energy enabled device with "Switch" feature, compatible with BlueST Protocol.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Davidroid 0:6b34c49b5285 1 To help you create your own BLE services, we have created this service template.
Davidroid 0:6b34c49b5285 2 The LED example demonstrates the use of a read-write characteristic to control a
Davidroid 0:6b34c49b5285 3 LED through a phone app.
Davidroid 0:6b34c49b5285 4
Davidroid 0:6b34c49b5285 5 The template covers:
Davidroid 0:6b34c49b5285 6
Davidroid 0:6b34c49b5285 7 * Setting up advertising and connection states.
Davidroid 0:6b34c49b5285 8 * Assigning UUIDs to the service and its characteristic.
Davidroid 0:6b34c49b5285 9 * Creating an input characteristic: read-write, boolean. This characteristic offers control of the LED.
Davidroid 0:6b34c49b5285 10 * Constructing a service class and adding it to the BLE stack.
Davidroid 0:6b34c49b5285 11
Davidroid 0:6b34c49b5285 12 # Running the application
Davidroid 0:6b34c49b5285 13
Davidroid 0:6b34c49b5285 14 ## Requirements
Davidroid 0:6b34c49b5285 15
Davidroid 0:6b34c49b5285 16 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 :
Davidroid 0:6b34c49b5285 17
Davidroid 0:6b34c49b5285 18 - [nRF Master Control Panel](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp) for Android.
Davidroid 0:6b34c49b5285 19
Davidroid 0:6b34c49b5285 20 - [LightBlue](https://itunes.apple.com/gb/app/lightblue-bluetooth-low-energy/id557428110?mt=8) for iPhone.
Davidroid 0:6b34c49b5285 21
Davidroid 0:6b34c49b5285 22 Hardware requirements are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
Davidroid 0:6b34c49b5285 23
Davidroid 0:6b34c49b5285 24 *NOTE:* If you have more than a single mbed board (e.g. nrf51dk or mkit) you can
Davidroid 0:6b34c49b5285 25 run the BLE_LED and BLE_LEDBlinker at the same time. For more information please
Davidroid 0:6b34c49b5285 26 refer to the BLE_LEDBlinker demo.
Davidroid 0:6b34c49b5285 27
Davidroid 0:6b34c49b5285 28 ## Building instructions
Davidroid 0:6b34c49b5285 29
Davidroid 0:6b34c49b5285 30 Building instructions for all samples are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
Davidroid 0:6b34c49b5285 31
Davidroid 0:6b34c49b5285 32 ## Checking for success
Davidroid 0:6b34c49b5285 33
Davidroid 0:6b34c49b5285 34 **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.
Davidroid 0:6b34c49b5285 35
Davidroid 0:6b34c49b5285 36
Davidroid 0:6b34c49b5285 37 1. Build the application and install it on your board as explained in the building instructions.
Davidroid 0:6b34c49b5285 38 1. Open the BLE scanner on your phone.
Davidroid 0:6b34c49b5285 39
Davidroid 0:6b34c49b5285 40 1. Start a scan.
Davidroid 0:6b34c49b5285 41
Davidroid 0:6b34c49b5285 42 ![](img/start_scan.png)
Davidroid 0:6b34c49b5285 43
Davidroid 0:6b34c49b5285 44 **figure 1** How to start scan using nRF Master Control Panel 4.0.5
Davidroid 0:6b34c49b5285 45
Davidroid 0:6b34c49b5285 46 1. Find your device; it should be named `LED`.
Davidroid 0:6b34c49b5285 47
Davidroid 0:6b34c49b5285 48 ![](img/scan_results.png)
Davidroid 0:6b34c49b5285 49
Davidroid 0:6b34c49b5285 50 **figure 2** Scan results using nRF Master Control Panel 4.0.5
Davidroid 0:6b34c49b5285 51
Davidroid 0:6b34c49b5285 52 1. Establish a connection with your device.
Davidroid 0:6b34c49b5285 53
Davidroid 0:6b34c49b5285 54 ![](img/connection.png)
Davidroid 0:6b34c49b5285 55
Davidroid 0:6b34c49b5285 56 **figure 3** How to establish a connection using Master Control Panel 4.0.5
Davidroid 0:6b34c49b5285 57
Davidroid 0:6b34c49b5285 58 1. Discover the services and the characteristics on the device. The *LED service* has the UUID `0xA000` and includes the *LED 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.
Davidroid 0:6b34c49b5285 59
Davidroid 0:6b34c49b5285 60 ![](img/discovery.png)
Davidroid 0:6b34c49b5285 61
Davidroid 0:6b34c49b5285 62 **figure 4** Representation of the Led service using Master Control Panel 4.0.5
Davidroid 0:6b34c49b5285 63
Davidroid 0:6b34c49b5285 64 1. Open the write pannel of the *LED state* characteristic.
Davidroid 0:6b34c49b5285 65
Davidroid 0:6b34c49b5285 66 ![](img/write_characteristic.png)
Davidroid 0:6b34c49b5285 67
Davidroid 0:6b34c49b5285 68 **figure 5** How to read and write a characteristic value using Master Control Panel 4.0.5
Davidroid 0:6b34c49b5285 69
Davidroid 0:6b34c49b5285 70
Davidroid 0:6b34c49b5285 71 1. The characteristic accept a 1 byte value:
Davidroid 0:6b34c49b5285 72
Davidroid 0:6b34c49b5285 73 ![](img/write_pannel.png)
Davidroid 0:6b34c49b5285 74
Davidroid 0:6b34c49b5285 75 **figure 6** Write characteristic pannel using Master Control Panel 4.0.5
Davidroid 0:6b34c49b5285 76
Davidroid 0:6b34c49b5285 77 * `0x00`: LED ON
Davidroid 0:6b34c49b5285 78
Davidroid 0:6b34c49b5285 79 ![](img/LED_ON.png)
Davidroid 0:6b34c49b5285 80
Davidroid 0:6b34c49b5285 81 **figure 6** Write characteristic pannel to set the LED on using Master Control Panel 4.0.5
Davidroid 0:6b34c49b5285 82
Davidroid 0:6b34c49b5285 83
Davidroid 0:6b34c49b5285 84 * `0x01`: LED OFF
Davidroid 0:6b34c49b5285 85
Davidroid 0:6b34c49b5285 86 ![](img/LED_OFF.png)
Davidroid 0:6b34c49b5285 87
Davidroid 0:6b34c49b5285 88 **figure 6** Write characteristic pannel to set the LED off using Master Control Panel 4.0.5
Davidroid 0:6b34c49b5285 89
Davidroid 0:6b34c49b5285 90
Davidroid 0:6b34c49b5285 91 1. Toggle the LED characteristic value and see the LED turn ON or turn OFF according to the value you set.
Davidroid 0:6b34c49b5285 92
Davidroid 0:6b34c49b5285 93 If you can see the characteristic, and the LED is turned on/off as you toggle its value, the application is working properly.