Начало работы с Bluetooth на ESP32

ESP32 - это мощный недорогой микроконтроллер, который широко используется при разработке проектов Интернета вещей. Он популярен благодаря высокой вычислительной мощности, низкому энергопотреблению и встроенным возможностям Wi-Fi и Bluetooth.

Bluetooth Classic - это протокол беспроводной связи, который используется для подключения устройств на короткие расстояния. Он существует уже давно и широко используется в таких устройствах, как смартфоны, ноутбуки и аудиооборудование.

Использование встроенного модуля Bluetooth Classic от ESP32 может быть выгодным, поскольку позволяет разработчикам легко внедрять функциональность Bluetooth Classic в свои проекты без необходимости во внешнем модуле. Это может упростить процесс проектирования и снизить затраты, при этом обеспечивая надежное и высокопроизводительное соединение Bluetooth. Кроме того, поскольку ESP32 является универсальным микроконтроллером, его можно использовать для широкого спектра проектов Интернета вещей, требующих подключения по Bluetooth.

Работа с Bluetooth Classic на ESP32

Встроенный модуль Bluetooth Classic в ESP32 можно использовать для связи с другими устройствами Bluetooth Classic несколькими способами, в том числе:

  • Работа в качестве сервера Bluetooth Classic: ESP32 можно настроить как сервер, который прослушивает входящие запросы на подключение от других устройств Bluetooth Classic. После установления соединения между устройствами можно обмениваться данными с помощью SPP или других профилей.
  • Работа в качестве клиента Bluetooth Classic: ESP32 также можно настроить как клиент, который инициирует подключения к другим устройствам Bluetooth Classic. После установления соединения ESP32 может отправлять и получать данные на другое устройство и с него.
  • Соединение Bluetooth и Wi-Fi: Встроенный модуль Bluetooth Classic ESP32 можно использовать в сочетании с его возможностями Wi-Fi для создания моста между сетями Bluetooth и Wi-Fi. Это позволяет устройствам взаимодействовать друг с другом по Bluetooth, сохраняя при этом возможность подключения к Интернету и другим сетевым ресурсам через Wi-Fi.

Материалы, которые нам понадобятся:

  • Плата ESP32
  • Светодиод
  • Резистор (рекомендуется 220 Ом)
  • Макетная плата
  • Соединительные провода

Подключение тестового макета

  • Подключите длинный конец светодиода (положительный) к одному из выводов GPIO ESP32. Например, вы можете подключить его к GPIO 12.
  • Подключите короткую часть светодиода (отрицательную) к макетной плате.
  • Подключите один конец резистора к короткому ответвлению светодиода, а другой конец - к контакту земли (GND) на ESP32.

Программирование ESP32

  • Подключите ESP32 к компьютеру с помощью USB-кабеля.
  • Откройте Arduino IDE, выберите соответствующую плату и порт и создайте новый эскиз.
  • Скопируйте код из раздела Кода
  • Загрузите код на плату

Код Arduino для интерфейса ESP32 Bluetooth Classic со светодиодом

#include <BluetoothSerial.h>
BluetoothSerial SerialBT;

Этот код включает библиотеку BluetoothSerial, которая обеспечивает поддержку связи Bluetooth Classic на ESP32. Затем создается объект BluetoothSerial для обработки связи по Bluetooth.

 void setup()

{ SerialBT.begin("ESP32 LED"); //set the name of the Bluetooth module

pinMode(2, OUTPUT); //set GPIO 2 as output }

 Это функция setup (), которая запускается один раз при включении питания платы ESP32 или сбросе настроек. Здесь мы используем функцию SerialBT.begin() для запуска связи Bluetooth Classic и устанавливаем имя модуля Bluetooth равным "ESP32". Мы также используем функцию pinMode () для установки GPIO 2 в качестве выходного вывода, что означает, что мы можем использовать его для отправки сигналов на светодиод.

void loop() {
if (SerialBT.available()) {
if (c == '1') { //if the data is '1'
digitalWrite(2, HIGH); //turn LED on 4
SerialBT.println("LED on"); //send message back to app }
 if (c == '0') {
 //if the data is '0' digitalWrite(2, LOW); //turn LED off
SerialBT.println("LED off"); //send message back to app
} } delay(20); //delay for stability
}

Это функция loop(), которая выполняется непрерывно при включенном питании платы ESP32. Сначала она проверяет, доступны ли какие-либо данные для считывания с модуля Bluetooth с помощью функции SerialBT.available(). Если имеются доступные данные, они считываются с помощью функции SerialBT.read() и сохраняются в переменной c. Если данные равны "1", индикатор включается с помощью функции digitalWrite (), а сообщение "Светодиод включен" отправляется обратно в приложение с помощью функции SerialBT.println (). Аналогично, если данные равны "0", индикатор гаснет и в приложение отправляется сообщение "LED off". Функция delay () используется для обеспечения стабильности работы программы.

Подключаемся с телефона к ESP32 по Bluetooth

  • Загрузите приложение Bluetooth serial terminal
  • Откройте приложение Bluetooth serial terminal на своем смартфоне.
  • Подключитесь к плате ESP32, выбрав ее из списка доступных устройств.
  • После подключения вы можете отправлять команды на плату ESP32, набрав "1", чтобы включить светодиод, или "0", чтобы выключить его в приложении последовательного терминала Bluetooth. Светодиод должен включаться и гаснуть соответственно

Полный код программы:

#include <BluetoothSerial.h>B
luetoothSerial SerialBT;
void setup()
{
SerialBT.begin("ESP32 LED"); //set the name of the Bluetooth module
pinMode(2, OUTPUT); //set GPIO 2 as output
}
void loop() {
if (SerialBT.available()) { //check if data is available
char c = SerialBT.read(); //read the data
if (c == '1') { //if the data is '1'
digitalWrite(2, HIGH); //turn LED on
SerialBT.println("LED on");
}
if (c == '0') { //if the data is '0'
digitalWrite(2, LOW); //turn LED off
SerialBT.println("LED off");
}
}
delay(20); //delay for stability }

 

Загрузка...