mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-11-03 23:51:39 +01:00 
			
		
		
		
	
		
			
	
	
		
			76 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Arduino
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			1.6 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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |