-
-
Save sarasantos/6787ee0e5c45e497170a3f45d561e56d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleServer.cpp | |
Ported to Arduino ESP32 by Evandro Copercini | |
updates by chegewara | |
*/ | |
#include <BLEDevice.h> | |
#include <BLEUtils.h> | |
#include <BLEServer.h> | |
// Set your new MAC Address | |
uint8_t newMACAddress[] = {0x90, 0x84, 0x2B, 0x4A, 0x3A, 0x0A}; | |
// See the following for generating UUIDs: | |
// https://www.uuidgenerator.net/ | |
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b" | |
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8" | |
void setup() { | |
Serial.begin(115200); | |
Serial.println("Starting BLE work!"); | |
esp_base_mac_addr_set(&newMACAddress[0]); | |
BLEDevice::init("Long name works now"); | |
BLEServer *pServer = BLEDevice::createServer(); | |
BLEService *pService = pServer->createService(SERVICE_UUID); | |
BLECharacteristic *pCharacteristic = pService->createCharacteristic( | |
CHARACTERISTIC_UUID, | |
BLECharacteristic::PROPERTY_READ | | |
BLECharacteristic::PROPERTY_WRITE | |
); | |
pCharacteristic->setValue("Hello World says Neil"); | |
pService->start(); | |
// BLEAdvertising *pAdvertising = pServer->getAdvertising(); // this still is working for backward compatibility | |
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising(); | |
pAdvertising->addServiceUUID(SERVICE_UUID); | |
pAdvertising->setScanResponse(true); | |
pAdvertising->setMinPreferred(0x06); // functions that help with iPhone connections issue | |
pAdvertising->setMinPreferred(0x12); | |
BLEDevice::startAdvertising(); | |
Serial.println("Characteristic defined! Now you can read it in your phone!"); | |
} | |
void loop() { | |
// put your main code here, to run repeatedly: | |
delay(2000); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thank you very much ;-)