Upload files to "BLE_server_values"
This commit is contained in:
parent
30107682d9
commit
3e3c5bbb79
85
BLE_server_values/BLE_server_values.ino
Normal file
85
BLE_server_values/BLE_server_values.ino
Normal 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
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user