====== Bluetooth Low Energy ======
Bluetooth is a standardized protocol for sending and receiving data via a 2.4GHz wireless link. It's a secure protocol, and it's perfect for short-range, low-power, low-cost, wireless transmissions between electronic devices.
{{:configuration:ble1.png?600|}}
Since Software version 4.4.0.100 all netmodule device support Bluetooth Low Energy via SDK. The following step by step description will guide you to configure a BLE Scanner on a NB800.
===== Step 1. Change Bluetooth Mode =====
For using bluetooth via SDK you need to enable the interface for the SDK environment via the WEB GUI:
{{:configuration:ble.png|}}
===== Step 2. Run Script =====
Afterwards you can run the following BLE Script. The script is scanning the surrounded available BLE device/tags and will show you the bluetooth advertising data. It will stop automatically after 20 detected devices/tags.
nb_bt_mode(BT1, BT_MODE_SCAN);
for (i = 0; i < 20; i++) {
devices = nb_bt_dev_list(BT1);
printf("%d: %d\n", i, length(devices));
for (d = 0; d < length(devices); d++) {
dev_info = nb_bt_dev_info(BT1, devices[d]);
}
sleep(1);
}
nb_bt_mode(BT1, BT_MODE_OFF);
For more BLE SDK functionality, please check our [[https://share.netmodule.com/public/system-software/latest/NB_SDK_API_Manual.pdf|SDK API]]
You can check the available data details of the surrounded beacons with adding "dump(dev_info);" into the FOR Loop.The Output will look this:
struct(15): {
.Name = string[12]: "ThermoBeacon"
.Trusted = bool: false
.Adapter = int: 0
.LegacyPairing = bool: false
.Paired = bool: false
.ServicesResolved = bool: false
.Alias = string[12]: "ThermoBeacon"
.Connected = bool: false
.ManufacturerData = array(1): {
[0] struct(2): {
.Value = array(20): {
[0] int: 0
[1] int: 0
[2] int: 140
[3] int: 7
[4] int: 0
[5] int: 0
[6] int: 71
[7] int: 233
[8] int: 126
[9] int: 1
[10] int: 238
[11] int: 13
[12] int: 0
[13] int: 0
[14] int: 252
[15] int: 0
[16] int: 167
[17] int: 140
[18] int: 0
[19] int: 0
}
.Key = int: 17
}
}
.Address = string[17]: "E9:47:00:00:07:8C"
.Blocked = bool: false
.RSSI = int: -68
.Addresstype = string[6]: "public"
.UUIDs = array(1): {
[0] string[36]: "0000fff0-0000-1000-8000-00805f9b34fb"
}
.TxPower = int: 0
}