1

Topic: ESP32 // Liolin 32 // Bluetooth Support

Добрый День!

Планируется ли поддержка встроенного модуля Bluetooth от ESP32?

Нужно просто использовать эту библиотеку:

https://github.com/espressif/arduino-es … oothSerial

Или эту:

#include "SimpleBLE.h"
SimpleBLE ble;

Спасибо.

2

Re: ESP32 // Liolin 32 // Bluetooth Support

Добрый день.

Хочу поделиться как у меня получилось подключить ESP32 к RemoteXY по простому Bluetooth с использованием библиотеки BluetoothSerial.

Сразу скажу, я не супер программист и С++ толком не знаю поэтому думаю можно было это сделать и по другому.
Буду давать с частями кода из оригинала, чтобы было понятно куда вставлять изменения

1. В основном файле  .ino
//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// определение режима соединения и подключение библиотеки RemoteXY
//#define REMOTEXY_MODE__HARDSERIAL
#define REMOTEXY_MODE__BTSERIAL // <---Это добавлено
#include "BluetoothSerial.h"  // <---Это добавлено
BluetoothSerial SerialBT;      // <---Это добавлено

#include "RemoteXY.h"

// настройки соединения
#define REMOTEXY_SERIAL SerialBT  // <---Это сам сериал
#define REMOTEXY_SERIAL_SPEED 19200

2. Скопировал используемые файлы библиотеки RemoteXY в папку со своим основным скетчем .ino
RemoteXY.h, RemoteXY_API.h, RemoteXY_Lib.h, RemoteXY_Serial.h, serial.h (в архиве с библиотекой они разбросаны по разным папкам думаю без труда найдете, там их не много)

3. Дополнения в RemoteXY.h

#if defined(REMOTEXY_MODE__HARDSERIAL) || defined(REMOTEXY_MODE__SERIAL) || defined(REMOTEXY_MODE__HC05_HARDSERIAL) 
  #define REMOTEXY_MOD__SERIAL
  #define REMOTEXY_PORT__HARDSERIAL
//********************* добавлено для ESP32 BluetoothSerial **************************
#elif defined(REMOTEXY_MODE__BTSERIAL)
  #define REMOTEXY_MOD__SERIAL
  #define REMOTEXY_PORT__BTSERIAL 
//************************************************************************************ 
#elif defined(REMOTEXY_MODE__SOFTSERIAL) || defined(REMOTEXY_MODE__SOFTWARESERIAL) || defined(REMOTEXY_MODE__HC05_SOFTSERIAL)
  #define REMOTEXY_MOD__SERIAL
  #define REMOTEXY_PORT__SOFTSERIAL


#else
  #error RemoteXY mode does not defined or defined error: REMOTEXY_MODE__XXXXXXX
#endif

4.Добавлено в serial.h
#if defined(REMOTEXY_PORT__HARDSERIAL)
  CRemoteXY (const void * _conf, void * _var, const char * _accessPassword, HardwareSerial * _serial, long _serialSpeed) {
    initSerial (_serial, _serialSpeed);
    init (_conf, _var, _accessPassword);
  }
//********************* добавлено для ESP32 BluetoothSerial ************************** 
#elif defined(REMOTEXY_PORT__BTSERIAL)
  CRemoteXY (const void * _conf, void * _var, const char * _accessPassword, BluetoothSerial * _serial) {
    initSerial (_serial);
    init (_conf, _var, _accessPassword);
  }
//************************************************************************************   
#elif defined(REMOTEXY_PORT__SOFTSERIAL)

и еще ниже

#if defined(REMOTEXY_PORT__HARDSERIAL)
#define RemoteXY_Init() remotexy = new CRemoteXY (RemoteXY_CONF_PROGMEM, &RemoteXY, REMOTEXY_ACCESS_PASSWORD, &REMOTEXY_SERIAL, REMOTEXY_SERIAL_SPEED)
//********************* добавлено для ESP32 BluetoothSerial **************************
#elif defined(REMOTEXY_PORT__BTSERIAL)
#define RemoteXY_Init() remotexy = new CRemoteXY (RemoteXY_CONF_PROGMEM, &RemoteXY, REMOTEXY_ACCESS_PASSWORD, &REMOTEXY_SERIAL)
//************************************************************************************
#elif defined(REMOTEXY_PORT__SOFTSERIAL)
#define RemoteXY_Init() remotexy = new CRemoteXY (RemoteXY_CONF_PROGMEM, &RemoteXY, REMOTEXY_ACCESS_PASSWORD, REMOTEXY_SERIAL_RX, REMOTEXY_SERIAL_TX, REMOTEXY_SERIAL_SPEED)

#endif

5. Добавлено в  RemoteXY_Serial.h
#if defined(REMOTEXY_PORT__HARDSERIAL)
  HardwareSerial * serial;
  void initSerial (HardwareSerial * _serial, long _serialSpeed) {
    serial = _serial;
    serial->begin (_serialSpeed);
  }
//********************* добавлено для ESP32 BluetoothSerial ************************** 
#elif defined(REMOTEXY_PORT__BTSERIAL)
  BluetoothSerial * serial;
  void initSerial (BluetoothSerial * _serial) {
    serial = _serial;
    serial->begin ("ESP32test");
  }
//**************************************************************************************   
#elif defined(REMOTEXY_PORT__SOFTSERIAL)

Это все.

На всякий случай подчеркну, что добавлять надо только выделенные части кода, остальное там оставляем как есть.

3

Re: ESP32 // Liolin 32 // Bluetooth Support

Еще забыл про одну мелочь. Чтобы библиотеки подключались из папки со скетчем, а не из пути указанного в ArduinoIDE
include библиотек должно быть

в кавычках : #include "RemoteXY.h" 

А не в <> : #include <RemoteXY.h>

Так для всех скопированных в папку со скетчем файлов объявлений *.h