Upload files to "BLE_server_values"

This commit is contained in:
Adema 2025-04-03 13:11:51 +02:00
parent 30107682d9
commit 3e3c5bbb79

View File

@ -0,0 +1,85 @@
#include <NimBLEDevice.h>
#define SERVICE_UUID "12345678-1234-5678-1234-56789abcdef0"
#define CHARACTERISTIC_UUID "87654321-4321-6789-4321-fedcba987654"
NimBLEServer* pServer = nullptr;
NimBLEService* pService = nullptr;
NimBLECharacteristic* pCharacteristic = nullptr;
bool deviceConnected = false;
class MyServerCallbacks : public NimBLEServerCallbacks {
void onConnect(NimBLEServer* pServer) {
deviceConnected = true;
Serial.println("Client Connected!");
}
void onDisconnect(NimBLEServer* pServer) {
deviceConnected = false;
Serial.println("Client Disconnected!");
}
};
class MyCharacteristicCallbacks : public NimBLECharacteristicCallbacks {
void onRead(NimBLECharacteristic* pCharacteristic) {
Serial.println("Read request received!");
}
void onWrite(NimBLECharacteristic* pCharacteristic) {
Serial.println("Write request received!");
}
void onNotify(NimBLECharacteristic* pCharacteristic) {
Serial.println("Notify triggered!");
}
};
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("Initializing BLE Server...");
// Initialize BLE
NimBLEDevice::init("BLE_Server");
pServer = NimBLEDevice::createServer();
pServer->setCallbacks(new MyServerCallbacks());
// Create a service
pService = pServer->createService(SERVICE_UUID);
// Create a characteristic with notify
pCharacteristic = pService->createCharacteristic(CHARACTERISTIC_UUID,
NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE | NIMBLE_PROPERTY::NOTIFY);
pCharacteristic->setCallbacks(new MyCharacteristicCallbacks());
// Start the service
pService->start();
// Advertise the service
NimBLEAdvertising* pAdvertising = NimBLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->start();
Serial.println("Advertising started...");
}
void loop() {
// Send notifications every second if a client is connected
uint16_t values[4] = { 123, 456, 789, 1011};
values[0] = 999;
values[1] = analogRead(A0);
values[2] = analogRead(A1);
values[3] = analogRead(A2);
// Check if the device is connected and send notifications
//if (deviceConnected) {
pCharacteristic->setValue((uint8_t*)values, sizeof(values)); // Send data
pCharacteristic->notify(); // Notify client
Serial.println("Sent data to client");
//}
//delay(1000); // Update every second
}