Добрый день.
Хочу поделиться как у меня получилось подключить 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)
Это все.
На всякий случай подчеркну, что добавлять надо только выделенные части кода, остальное там оставляем как есть.