80 lines
1.7 KiB
Arduino
80 lines
1.7 KiB
Arduino
|
//This example code is in the Public Domain (or CC0 licensed, at your option.)
|
||
|
//By Richard Li - 2020
|
||
|
//
|
||
|
//This example creates a bridge between Serial and Classical Bluetooth (SPP with authentication)
|
||
|
//and also demonstrate that SerialBT have the same functionalities of a normal Serial
|
||
|
|
||
|
#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
|
||
|
|
||
|
#if !defined(CONFIG_BT_SPP_ENABLED)
|
||
|
#error Serial Bluetooth not available or not enabled. It is only available for the ESP32 chip.
|
||
|
#endif
|
||
|
|
||
|
BluetoothSerial SerialBT;
|
||
|
boolean confirmRequestPending = true;
|
||
|
|
||
|
void BTConfirmRequestCallback(uint32_t numVal)
|
||
|
{
|
||
|
confirmRequestPending = true;
|
||
|
Serial.println(numVal);
|
||
|
}
|
||
|
|
||
|
void BTAuthCompleteCallback(boolean success)
|
||
|
{
|
||
|
confirmRequestPending = false;
|
||
|
if (success)
|
||
|
{
|
||
|
Serial.println("Pairing success!!");
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Serial.println("Pairing failed, rejected by user!!");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
void setup()
|
||
|
{
|
||
|
Serial.begin(115200);
|
||
|
SerialBT.enableSSP();
|
||
|
SerialBT.onConfirmRequest(BTConfirmRequestCallback);
|
||
|
SerialBT.onAuthComplete(BTAuthCompleteCallback);
|
||
|
SerialBT.begin("ESP32test"); //Bluetooth device name
|
||
|
Serial.println("The device started, now you can pair it with bluetooth!");
|
||
|
}
|
||
|
|
||
|
void loop()
|
||
|
{
|
||
|
if (confirmRequestPending)
|
||
|
{
|
||
|
if (Serial.available())
|
||
|
{
|
||
|
int dat = Serial.read();
|
||
|
if (dat == 'Y' || dat == 'y')
|
||
|
{
|
||
|
SerialBT.confirmReply(true);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SerialBT.confirmReply(false);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if (Serial.available())
|
||
|
{
|
||
|
SerialBT.write(Serial.read());
|
||
|
}
|
||
|
if (SerialBT.available())
|
||
|
{
|
||
|
Serial.write(SerialBT.read());
|
||
|
}
|
||
|
delay(20);
|
||
|
}
|
||
|
}
|