2018-03-05 19:38:48 +08:00
|
|
|
.. _ble_mesh:
|
|
|
|
|
|
|
|
Bluetooth: Mesh
|
|
|
|
###############
|
|
|
|
|
|
|
|
Overview
|
|
|
|
********
|
|
|
|
|
2021-06-08 15:32:13 +08:00
|
|
|
This sample demonstrates Bluetooth mesh functionality. It has several
|
|
|
|
standard mesh models, and supports provisioning over both the
|
2018-03-05 19:38:48 +08:00
|
|
|
Advertising and the GATT Provisioning Bearers (i.e. PB-ADV and PB-GATT).
|
|
|
|
The application also needs a functioning serial console, since that's
|
|
|
|
used for the Out-of-Band provisioning procedure.
|
|
|
|
|
2021-03-11 22:10:42 +08:00
|
|
|
On boards with LEDs, a Generic OnOff Server model exposes functionality for
|
|
|
|
controlling the first LED on the board over the mesh.
|
|
|
|
|
|
|
|
On boards with buttons, a Generic OnOff Client model will send Onoff messages
|
|
|
|
to all nodes in the network when the button is pressed.
|
|
|
|
|
2018-03-05 19:38:48 +08:00
|
|
|
Requirements
|
|
|
|
************
|
|
|
|
|
|
|
|
* A board with Bluetooth LE support, or
|
|
|
|
* QEMU with BlueZ running on the host
|
|
|
|
|
|
|
|
Building and Running
|
|
|
|
********************
|
|
|
|
|
2019-03-09 06:21:37 +08:00
|
|
|
This sample can be found under :zephyr_file:`samples/bluetooth/mesh` in the
|
2018-03-05 19:38:48 +08:00
|
|
|
Zephyr tree.
|
|
|
|
|
2019-03-07 22:59:20 +08:00
|
|
|
See :ref:`bluetooth samples section <bluetooth-samples>` for details on how
|
2018-03-05 19:38:48 +08:00
|
|
|
to run the sample inside QEMU.
|
|
|
|
|
|
|
|
For other boards, build and flash the application as follows:
|
|
|
|
|
|
|
|
.. zephyr-app-commands::
|
|
|
|
:zephyr-app: samples/bluetooth/mesh
|
|
|
|
:board: <board>
|
|
|
|
:goals: flash
|
|
|
|
:compact:
|
|
|
|
|
|
|
|
Refer to your :ref:`board's documentation <boards>` for alternative
|
|
|
|
flash instructions if your board doesn't support the ``flash`` target.
|
2021-03-11 22:10:42 +08:00
|
|
|
|
|
|
|
Interacting with the sample
|
|
|
|
***************************
|
|
|
|
|
|
|
|
The sample can either be provisioned into an existing mesh network with an
|
|
|
|
external provisioner device, or self-provision through a button press.
|
|
|
|
|
|
|
|
When provisioning with a provisioner device, the provisioner must give the
|
|
|
|
device an Application key and bind it to both Generic OnOff models.
|
|
|
|
|
2021-03-18 05:56:25 +08:00
|
|
|
When self-provisioning, the device will take a random unicast address and
|
2021-03-11 22:10:42 +08:00
|
|
|
bind a dummy Application key to these models.
|
|
|
|
|
|
|
|
Once provisioned, messages to the Generic OnOff Server will be used to turn
|
|
|
|
the LED on or off, and button presses will be used to broadcast OnOff
|
|
|
|
messages to all nodes in the same network.
|