ESP32でBLEを使う
code:arduino
/*
*/
#define SERVICE_UUID "35B270BA-0040-4585-AAA9-129E1DF63B71" #define CHARACTERISTIC_UUID "077F60A3-C8F7-420E-9F42-88E3CEE5B963" class MyCallbacks : public BLECharacteristicCallbacks {
void onWrite(BLECharacteristic *pCharacteristic) {
std::string value = pCharacteristic->getValue();
if (value.length() > 0) {
String ledState = value.c_str();
Serial.println(ledState);
}
else {
Serial.println("value.length() is 0");
}
}
};
void setup() {
Serial.begin(9600);
BLE2904 *p2904Descriptor = new BLE2904();
p2904Descriptor->setFormat(BLE2904::FORMAT_UTF8);
BLEDevice::init("ESP32_BLE_SERVER");
BLEServer *pServer = BLEDevice::createServer();
BLEService *pService = pServer->createService(SERVICE_UUID);
BLECharacteristic *pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE
);
pCharacteristic->addDescriptor(p2904Descriptor);
pCharacteristic->setCallbacks(new MyCallbacks());
pService->start();
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinPreferred(0x06);
pAdvertising->setMinPreferred(0x12);
BLEDevice::startAdvertising();
Serial.println("Characteristic defined!");
}
void loop() {
// put your main code here, to run repeatedly:
delay(3000);
Serial.println("It works");
}