Bluetooth Mesh Sensor Demonstration#
Mesh Network Implementation#
The demonstration implementation process can be divided into four main phases:
Unprovisioned mode: After the demo firmware is installed, the device starts in unprovisioned mode.
Provisioning: The devices are provisioned to a Bluetooth mesh network and network security is set up.
Configuration: The group, publish, and subscribe, and application security are configured.
Normal operation: The sensor server(s) can be controlled by the client(s).
In the first phase, all the devices are unprovisioned and transmitting unprovisioned beacons. They do not have any network keys or application keys configured, and publish and subscribe settings are not set. In this state, the devices are simply waiting for the provisioner to assign them into a Bluetooth mesh network, and configure publish and subscribe settings and mesh models. In this state, the devices can be detected by the smartphone application.
In the provisioning phase, the provisioner adds sensor servers and clients to the Bluetooth mesh network. A network key is generated and distributed to the nodes and each node is assigned a unicast address.
In the configuration phase, the provisioner configures groups, publish, and subscribe settings; generates application keys; and binds mesh models to application keys.
After provisioning and configuration, the Bluetooth mesh network is operational, and clients can be used to configure and request data from the sensors.
Running the Example#
This section assumes you have installed the BT Mesh – Sensor Client Example demo binary to one of the devices and the BT Mesh – Sensor Thermometer Example to the other.
Provision and configure the sample apps using the Silicon Labs Bluetooth Mesh mobile application as described in QSG176: Bluetooth® Mesh Quick-Start Guide for SDK v2.x and v3.x.
Open a serial console in Simplicity Studio for each. If you reset the devices, this is what you will observe on the console for the client and server before provisioning:
And this is what you will see in the device display for the client and server, respectively:
After provisioning, the displays should be as below:
Press PB0 on the client device to select the temperature sensor. Now the LCD on the client device will display the temperature reported by the server. Pressing it again will show the people count and lightness (these are not added to the server side, but can be installed as a component and configured):