ESP32 включение и выключение встроенного светодиода по Bluetooth

Всем здравствуйте! Потихоньку изучаю беспроводные возможности данного микроконтроллера, с wi-fi получилось создать точку доступа и смартфоном управлять встроенным светодиодом через Http. Теперь хочу сделать новый скетч, когда смартфон соединяется по блютуз с ESP32, загорается встроенный светодиод, при разрыве подключения, соответственно гаснет. Я так понимаю, нужно что бы ESP выступала в роли сервера и ожидала подключения к ней(с паролем), или работала как сканер ожидая нужный блютуз девайс с уникальным идентификатором. Подскажите как правильней и проще код сделать (Что бы понять новичку, что к чему)

//ESP32
// скетч - тест мигание встроенным светодиодом с передачей длительностей пауз переключения по блютуз встроенному
#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

BluetoothSerial SerialBT;
String inputString;// строки данных
const int LED = 2;//встроенный светодиод (вывод I/O 2)
int n = 500; // исходная длительность
bool fl = false;
void setup() {
  SerialBT.begin("ESP32test"); //НАЗВАНИЕ БЛЮТУЗ МОДУЛЯ
  pinMode(LED, OUTPUT);
}

void loop() {
  CheckSerial();
  if (fl == false) {
    delay(n);
    digitalWrite(LED, HIGH);
    delay(n);
    digitalWrite(LED, LOW);
  }
}
//
//ФУНКЦИИ ПРИЁМА И ОБРАБОТКИ КОМАНД-ДАННЫХ
void CheckSerial()
{
  //
  while (SerialBT.available())//считываем строку данных пока они поступают
  {
    char inChar = (char)SerialBT.read();
    if (inChar == '\n' || inChar == ' ')   //если окончание строки или запрос на загрузку
    {
      MakeCmd();//обрабатываем её данной функцией
      break;
    }
    else inputString += inChar;// иначе удлиняем строку на один символ
  }

}
//
void MakeCmd()
{
  int y = inputString.length(); // присваиваем переменной у число символов в строке
  if (y < 1 || y > 4) {
    inputString = "";  //если их меньше 1 или больше 4, выходим из функции
    return;
  }
  String cmd = inputString; // передаём строку другой переменной
  inputString = "";//"обнуляем переменную"
  //
  if (cmd != "0" && cmd != "1") {
    n = cmd.toInt();  //задаём длительность между переключениями светодиода
    fl = false;
  }
  if (cmd == "0") {
    digitalWrite(LED, LOW);
    fl = true;
  }
  if (cmd == "1") {
    digitalWrite(LED, HIGH);
    fl = true;
  }
  //
}

//

Например:

SerialBT.register_callback(...)

Опять я криво читаю :slight_smile:

Спасибо!