Всем здравствуйте! Потихоньку изучаю беспроводные возможности данного микроконтроллера, с 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(...)
Опять я криво читаю
Спасибо!