Bluetooth: связь с телефоном
Беспроводной последовательный порт: команды с Android-телефона.
Классическая ESP32 умеет то, чего не умеют S3 и C3: классический Bluetooth с профилем SPP — беспроводной последовательный порт. Для программы он выглядит как обычный Serial, только данные идут на телефон.
#include <BluetoothSerial.h>
#if !defined(CONFIG_BT_SPP_ENABLED)
#error "Нужна плата ESP32 с классическим Bluetooth (ESP32 Dev Module)"
#endif
BluetoothSerial SerialBT;
const int LED = 2;
void setup() {
Serial.begin(115200);
pinMode(LED, OUTPUT);
SerialBT.begin("ESP32-duino"); // имя, которое увидит телефон
Serial.println("Bluetooth запущен, ищите ESP32-duino");
}
void loop() {
if (SerialBT.available()) {
String cmd = SerialBT.readStringUntil('\n');
cmd.trim();
Serial.println("Получено: " + cmd);
if (cmd == "on") { digitalWrite(LED, HIGH); SerialBT.println("Светодиод включён"); }
else if (cmd == "off") { digitalWrite(LED, LOW); SerialBT.println("Светодиод выключен"); }
else SerialBT.println("Команды: on, off");
}
// всё, что пишем в мониторе порта, уходит на телефон
if (Serial.available()) SerialBT.write(Serial.read());
}Подключение телефона
- Загрузите скетч. В настройках Bluetooth телефона найдите ESP32-duino и выполните сопряжение.
- Установите из Google Play приложение Serial Bluetooth Terminal (автор Kai Morich).
- В приложении: меню → Devices → ESP32-duino, затем кнопка подключения вверху.
- Отправьте
onилиoff. Ответы платы появятся в окне терминала.
iPhone не поддерживает Bluetooth SPP, поэтому этот урок работает только с Android и компьютерами. Для iPhone используют Bluetooth LE — его умеют все ESP32.
Ошибка «Sketch too big» при сочетании Bluetooth и Wi-Fi в одном скетче? Выберите Инструменты → Partition Scheme → Huge APP (3MB No OTA).