#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEBeacon.h>
const char* uuid = "73697475-6D73-6974-756D-736974756D15";
const uint16_t major = 1111;
const uint16_t minor = 1125;
const int txPower = -4; // +–4 dBm output
const int advInterval = 500; // ms
void setup() {
Serial.begin(115200);
BLEDevice::init("Beacon");
BLEServer* pServer = BLEDevice::createServer();
BLEBeacon beacon;
beacon.setManufacturerId(0x004C); // Apple’s Company ID for iBeacon
beacon.setProximityUUID(BLEUUID(uuid));
beacon.setMajor(major);
beacon.setMinor(minor);
beacon.setSignalPower(txPower);
BLEAdvertising* pAdv = pServer->getAdvertising();
pAdv->setAdvertisementType(ADVERTISEMENT_TYPE_NON_CONNECTABLE_UNDIRECTED);
pAdv->setMinInterval(advInterval);
pAdv->setMaxInterval(advInterval);
pAdv->setManufacturerData(beacon.getData());
pAdv->start();
Serial.println("iBeacon started");
}
void loop() {
// nothing needed—advertising happens in hardware
delay(1000);
}