aboutsummaryrefslogtreecommitdiffstats
path: root/arduino/libraries/Bluefruit52Lib/examples/Peripheral/beacon/beacon.ino
diff options
context:
space:
mode:
Diffstat (limited to 'arduino/libraries/Bluefruit52Lib/examples/Peripheral/beacon/beacon.ino')
-rwxr-xr-xarduino/libraries/Bluefruit52Lib/examples/Peripheral/beacon/beacon.ino93
1 files changed, 93 insertions, 0 deletions
diff --git a/arduino/libraries/Bluefruit52Lib/examples/Peripheral/beacon/beacon.ino b/arduino/libraries/Bluefruit52Lib/examples/Peripheral/beacon/beacon.ino
new file mode 100755
index 0000000..5897eb8
--- /dev/null
+++ b/arduino/libraries/Bluefruit52Lib/examples/Peripheral/beacon/beacon.ino
@@ -0,0 +1,93 @@
+/*********************************************************************
+ This is an example for our nRF52 based Bluefruit LE modules
+
+ Pick one up today in the adafruit shop!
+
+ Adafruit invests time and resources providing this open source code,
+ please support Adafruit and open-source hardware by purchasing
+ products from Adafruit!
+
+ MIT license, check LICENSE for more information
+ All text above, and the splash screen below must be included in
+ any redistribution
+*********************************************************************/
+#include <bluefruit.h>
+
+// Beacon uses the Manufacturer Specific Data field in the advertising
+// packet, which means you must provide a valid Manufacturer ID. Update
+// the field below to an appropriate value. For a list of valid IDs see:
+// https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
+// 0x004C is Apple (for example)
+#define MANUFACTURER_ID 0x004C
+
+// AirLocate UUID: E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
+uint8_t beaconUuid[16] =
+{
+ 0xE2, 0xC5, 0x6D, 0xB5, 0xDF, 0xFB, 0x48, 0xD2,
+ 0xB0, 0x60, 0xD0, 0xF5, 0xA7, 0x10, 0x96, 0xE0,
+};
+
+// A valid Beacon packet consists of the following information:
+// UUID, Major, Minor, RSSI @ 1M
+BLEBeacon beacon(beaconUuid, 0x0000, 0x0000, -54);
+
+void setup()
+{
+ Serial.begin(115200);
+ while ( !Serial ) delay(10); // for nrf52840 with native usb
+
+ Serial.println("Bluefruit52 Beacon Example");
+ Serial.println("--------------------------\n");
+
+ Bluefruit.begin();
+
+ // off Blue LED for lowest power consumption
+ Bluefruit.autoConnLed(false);
+
+ // Set max power. Accepted values are: -40, -30, -20, -16, -12, -8, -4, 0, 4
+ Bluefruit.setTxPower(0);
+ Bluefruit.setName("Bluefruit52");
+
+ // Manufacturer ID is required for Manufacturer Specific Data
+ beacon.setManufacturer(MANUFACTURER_ID);
+
+ // Setup the advertising packet
+ startAdv();
+
+ Serial.println("Broadcasting beacon, open your beacon app to test");
+
+ // Suspend Loop() to save power, since we didn't have any code there
+ suspendLoop();
+}
+
+void startAdv(void)
+{
+ // Advertising packet
+ // Set the beacon payload using the BLEBeacon class populated
+ // earlier in this example
+ Bluefruit.Advertising.setBeacon(beacon);
+
+ // Secondary Scan Response packet (optional)
+ // Since there is no room for 'Name' in Advertising packet
+ Bluefruit.ScanResponse.addName();
+
+ /* Start Advertising
+ * - Enable auto advertising if disconnected
+ * - Timeout for fast mode is 30 seconds
+ * - Start(timeout) with timeout = 0 will advertise forever (until connected)
+ *
+ * Apple Beacon specs
+ * - Type: Non connectable, undirected
+ * - Fixed interval: 100 ms -> fast = slow = 100 ms
+ */
+ //Bluefruit.Advertising.setType(BLE_GAP_ADV_TYPE_ADV_NONCONN_IND);
+ Bluefruit.Advertising.restartOnDisconnect(true);
+ Bluefruit.Advertising.setInterval(160, 160); // in unit of 0.625 ms
+ Bluefruit.Advertising.setFastTimeout(30); // number of seconds in fast mode
+ Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds
+}
+
+void loop()
+{
+ // loop is already suspended, CPU will not run loop() at all
+}