#include #include #include #include #define SERVICE_UUID "7cddf5af-453f-40fa-808e-37ae6ad8facd" BLECharacteristic temphumidSense (BLEUUID("3383a686-a53c-42e4-a88c-e0e1de4c4bda"), BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_INDICATE); BLEDescriptor temphumidDescriptor(BLEUUID((uint16_t)0x2901)); bool clientConnected = false; class MyServerCallbacks: public BLEServerCallbacks { void onConnect (BLEServer * pServer) { clientConnected = true; }; void onDisconnect (BLEServer * pServer) { clientConnected = false; } }; void setup () { Serial.begin(115200); BLEDevice::init("esp32-Server"); BLEServer *pServer = BLEDevice::createServer(); pServer->setCallbacks(new MyServerCallbacks()); BLEService *pSensor = pServer-> createService(SERVICE_UUID); pSensor-> addCharacteristic(&temphumidSense); temphumidDescriptor.setValue("In Degree Celcius"); temphumidSense.addDescriptor(&temphumidDescriptor); temphumidSense.addDescriptor(new BLE2902()); pServer->getAdvertising()->addServiceUUID(SERVICE_UUID); pSensor-> start(); // Start the service pServer-> getAdvertising()->start ();// Starts the discovery of ESP32 Serial.println("Waiting for a client to connect ..."); } void loop () { if (clientConnected) { temphumidSense.setValue("1234"); temphumidSense.notify(); // Send the Temperature reading to the application! Serial.println("Sent string"); } else { Serial.println("Not connected"); } delay(2000); }