This example uses the Health Thermometer Profile to send thermometer information: The canonical source for this example lives at https://github.com/ARMmbed/mbed-os-example-ble/tree/master/BLE_Thermometer

Thermometer

This example uses the Health Thermometer Profile to send thermometer information:

  • Sensor location: thermometer placement on the body. The default value in this application is the ear (``LOCATION_EAR``). The characteristic description shows the other possible values.
  • Temperature: the initial temperature is 39.6, and it's incremented by 0.1 every half second. It resets to 39.6 when it reaches 43.0.

For more information see:

  • Temperature Type: GATT characteristic details for temperature type (sensor location).

Running the application

Requirements

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 :

- nRF Master Control Panel for Android.

- LightBlue for iPhone.

Hardware requirements are in the main readme.

Building instructions

Building with mbed CLI

If you'd like to use mbed CLI to build this, then you should refer to the main readme. The instructions here relate to using the developer.mbed.org Online Compiler

In order to build this example in the mbed Online Compiler, first import the example using the ‘Import’ button on the right hand side.

Next, select a platform to build for. This must either be a platform that supports BLE, for example the NRF51-DK, or one of the following:

List of platforms supporting Bluetooth Low Energy

Or you must also add a piece of hardware and the supporting library that includes a Bluetooth Low Energy driver for that hardware, for example the K64F or NUCLEO_F401RE with the X-NUCLEO-IDB05A1

List of components supporting Bluetooth Low Energy.

Once you have selected your platform, compile the example and drag and drop the resulting binary onto your board.

For general instructions on using the mbed Online Compiler, please see the mbed Handbook

Checking for success

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.

  • Build the application and install it on your board as explained in the building instructions.
  • Open the BLE scanner on your phone.
  • Start a scan.

https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-ble-Thermometer/raw-file/a27dfda81620/img/start_scan.png

figure 1 How to start scan using nRF Master Control Panel 4.0.5

  • Find your device; it should be named *Therm*.

https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-ble-Thermometer/raw-file/a27dfda81620/img/scan_results.png

figure 2 Scan results using nRF Master Control Panel 4.0.5

  • Establish a connection with your device.

https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-ble-Thermometer/raw-file/a27dfda81620/img/connection.png

figure 3 How to establish a connection using Master Control Panel 4.0.5

  • Discover the services and the characteristics on the device. The *Health Thermometer* service has the UUID `0x1809` and includes the *Temperature Measurement* characteristic which has the UUID `0x2A1C`.

https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-ble-Thermometer/raw-file/a27dfda81620/img/discovery.png

figure 4 Representation of the Thermometer service using Master Control Panel 4.0.5

  • Register for the notifications sent by the *Temperature Measurement* characteristic.

https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-ble-Thermometer/raw-file/a27dfda81620/img/register_to_notifications.png

figure 5 How to register to notifications using Master Control Panel 4.0.5

  • You should see the temperature value change every half second. It begins at 39.6, goes up to 43.0 (in steps of 0.1), resets to 39.6 and so on.

https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-ble-Thermometer/raw-file/a27dfda81620/img/notifications.png

figure 6 Notifications view using Master Control Panel 4.0.5

Revisions of mbed-os.lib

Revision Date Message Actions
80:dfa5a944cfcb 2019-08-15 Merge pull request #252 from donatieng/mbed_os_update File  Diff  Annotate
78:e590e273909a 2019-02-27 Updating mbed-os to mbed-os-5.11.5 File  Diff  Annotate
77:23f1631ab104 2019-02-25 Merge pull request #217 from adbridge/master File  Diff  Annotate
76:5726142fa5b1 2019-02-13 Updating mbed-os to mbed-os-5.11.2 File  Diff  Annotate
75:3a5a6a9b4ac1 2019-01-14 Merge pull request #207 from adbridge/master File  Diff  Annotate
74:b082fa6d75eb 2019-01-14 Merge pull request #208 from ARMmbed/mbed-os-5.11.0-oob File  Diff  Annotate
73:b2ffd4a530cc 2018-12-14 Updating mbed-os to mbed-os-5.10.4 File  Diff  Annotate
71:0a748641901e 2018-11-07 Merge pull request #189 from ARMmbed/donatieng-patch-1 File  Diff  Annotate
70:1bf06fcea3a8 2018-10-22 Merge pull request #187 from cmonr/master File  Diff  Annotate
69:071c932635cb 2018-09-26 Merge pull request #183 from ARMmbed/mbed-os-5.10.0-oob File  Diff  Annotate
67:11b7bd9c690b 2018-08-29 Merge pull request #172 from 0xc0170/master File  Diff  Annotate
66:5009747e81ef 2018-08-23 Updating mbed-os to mbed-os-5.9.5 File  Diff  Annotate
65:be650d624593 2018-08-08 Merge pull request #168 from cmonr/master File  Diff  Annotate
64:1e067f296a8c 2018-07-18 Merge pull request #166 from cmonr/master File  Diff  Annotate
63:248ea1f25ad1 2018-07-06 Merge pull request #163 from adbridge/master File  Diff  Annotate
62:a70ee8a1291e 2018-06-22 Merge pull request #160 from adbridge/master File  Diff  Annotate
61:8fe393d306b0 2018-06-20 Merge pull request #159 from ARMmbed/mbed-os-5.9.0-oob File  Diff  Annotate
60:bdb3ad07cfe1 2018-06-11 Merge pull request #158 from adbridge/master File  Diff  Annotate
59:6995963fb1da 2018-06-05 Merge pull request #151 from paul-szczepanek-arm/privacy File  Diff  Annotate
58:f22c8c3f5adc 2018-04-04 Merge pull request #141 from adbridge/master File  Diff  Annotate
57:5593aa5ec722 2018-04-04 Merge pull request #142 from ARMmbed/mbed-os-5.8.0-oob File  Diff  Annotate
56:c42e0241bbfd 2018-03-23 Merge pull request #139 from cmonr/master File  Diff  Annotate
55:cb5e332f11f4 2018-03-23 Merge pull request #137 from adbridge/master File  Diff  Annotate
54:1aa9b64c08d8 2018-02-13 Merge pull request #135 from adbridge/master File  Diff  Annotate
53:dd04e9faa210 2018-01-31 Merge pull request #134 from cmonr/master File  Diff  Annotate
52:8c8694ef5246 2018-01-17 Merge pull request #133 from adbridge/master File  Diff  Annotate
51:b7f13dfae381 2018-01-09 Merge pull request #129 from adbridge/master File  Diff  Annotate
49:8f4d02da8ffe 2017-12-20 Merge pull request #126 from ARMmbed/mbed-os-5.7.0-oob File  Diff  Annotate
48:303393ee3b92 2017-12-05 Merge pull request #119 from adbridge/master File  Diff  Annotate
47:c20d19bee97c 2017-11-23 Merge pull request #115 from adbridge/master File  Diff  Annotate
46:e493bd0ce681 2017-11-07 Merge pull request #113 from adbridge/master File  Diff  Annotate
45:c8b623f957bc 2017-11-03 Merge pull request #110 from 0xc0170/master File  Diff  Annotate
43:7c0745dffb07 2017-10-11 Merge pull request #108 from adbridge/master File  Diff  Annotate
42:2d958ad39b2f 2017-09-29 Merge pull request #106 from 0xc0170/master File  Diff  Annotate
41:46f7ca613951 2017-09-20 Merge pull request #103 from ARMmbed/5.6_sanity File  Diff  Annotate
40:949860e5efa5 2017-09-08 Merge pull request #102 from adbridge/master File  Diff  Annotate
39:9d3be3bdeb0c 2017-08-08 Merge pull request #100 from 0xc0170/master File  Diff  Annotate
37:ae6030c58a82 2017-07-19 Merge pull request #97 from 0xc0170/master File  Diff  Annotate
35:527ded8ffa54 2017-07-11 Merge pull request #93 from adbridge/master File  Diff  Annotate
34:fd3d3023d633 2017-06-22 Merge pull request #89 from adbridge/master File  Diff  Annotate
32:aca43db70fdb 2017-06-20 Merge pull request #88 from adbridge/master File  Diff  Annotate
30:93985d530872 2017-06-08 Merge pull request #82 from adbridge/master File  Diff  Annotate
29:f9c9e4ac53a7 2017-05-25 Merge pull request #81 from adbridge/master File  Diff  Annotate
28:ddf75b9b2313 2017-05-10 Merge pull request #79 from adbridge/master File  Diff  Annotate
26:f0027acb90a1 2017-05-09 Merge pull request #77 from 0xc0170/master File  Diff  Annotate
25:e14fcc3e13c1 2017-04-05 Merge pull request #70 from 0xc0170/master File  Diff  Annotate
22:614b2199b8f1 2017-03-14 Merge pull request #68 from adbridge/master File  Diff  Annotate
21:18f4bed1cb42 2017-03-09 Merge pull request #66 from ARMmbed/oob_test_mbed-os-5.4 File  Diff  Annotate
20:7244bd8577e9 2017-03-01 Merge pull request #55 from adbridge/master File  Diff  Annotate
18:42eca924030f 2017-02-15 Merge pull request #52 from 0xc0170/master File  Diff  Annotate
17:13e1f316040b 2017-02-02 Merge pull request #48 from adbridge/master File  Diff  Annotate
16:0aadb5b22e14 2017-01-26 Merge pull request #46 from adbridge/master File  Diff  Annotate
15:dfd6a697b36e 2016-12-15 Update mbed-os revision to mbed-os 5.3.0. File  Diff  Annotate
14:15c46347f178 2016-12-15 Merge pull request #42 from ARMmbed/mbed-os-5.3.0-rc3 File  Diff  Annotate
13:cd407816c592 2016-10-28 Updating mbed-os to mbed-os-5.2.1 File  Diff  Annotate
12:c09d56624581 2016-10-24 Updating mbed-os to mbed-os-5.2.0 File  Diff  Annotate
11:4e356c89ad66 2016-10-24 Merge pull request #32 from ARMmbed/oob File  Diff  Annotate
10:78d62353099e 2016-10-05 Updating mbed-os to mbed-os-5.1.5 File  Diff  Annotate
9:16a20f415898 2016-09-16 Updating mbed-os to mbed-os-5.1.4 File  Diff  Annotate
8:e0542ed5b7c3 2016-08-20 Updating mbed-os to mbed-os-5.1.2 File  Diff  Annotate