* Set IDF to v3.2 * Remove BLE submodule * Add BLE lib source * Update Camera example to support OV3660
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|     Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleWrite.cpp
 | |
|     Ported to Arduino ESP32 by Evandro Copercini
 | |
| */
 | |
| 
 | |
| #include <BLEDevice.h>
 | |
| #include <BLEUtils.h>
 | |
| #include <BLEServer.h>
 | |
| 
 | |
| // See the following for generating UUIDs:
 | |
| // https://www.uuidgenerator.net/
 | |
| 
 | |
| #define SERVICE_UUID        "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
 | |
| #define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
 | |
| 
 | |
| 
 | |
| class MyCallbacks: public BLECharacteristicCallbacks {
 | |
|     void onWrite(BLECharacteristic *pCharacteristic) {
 | |
|       std::string value = pCharacteristic->getValue();
 | |
| 
 | |
|       if (value.length() > 0) {
 | |
|         Serial.println("*********");
 | |
|         Serial.print("New value: ");
 | |
|         for (int i = 0; i < value.length(); i++)
 | |
|           Serial.print(value[i]);
 | |
| 
 | |
|         Serial.println();
 | |
|         Serial.println("*********");
 | |
|       }
 | |
|     }
 | |
| };
 | |
| 
 | |
| void setup() {
 | |
|   Serial.begin(115200);
 | |
| 
 | |
|   Serial.println("1- Download and install an BLE scanner app in your phone");
 | |
|   Serial.println("2- Scan for BLE devices in the app");
 | |
|   Serial.println("3- Connect to MyESP32");
 | |
|   Serial.println("4- Go to CUSTOM CHARACTERISTIC in CUSTOM SERVICE and write something");
 | |
|   Serial.println("5- See the magic =)");
 | |
| 
 | |
|   BLEDevice::init("MyESP32");
 | |
|   BLEServer *pServer = BLEDevice::createServer();
 | |
| 
 | |
|   BLEService *pService = pServer->createService(SERVICE_UUID);
 | |
| 
 | |
|   BLECharacteristic *pCharacteristic = pService->createCharacteristic(
 | |
|                                          CHARACTERISTIC_UUID,
 | |
|                                          BLECharacteristic::PROPERTY_READ |
 | |
|                                          BLECharacteristic::PROPERTY_WRITE
 | |
|                                        );
 | |
| 
 | |
|   pCharacteristic->setCallbacks(new MyCallbacks());
 | |
| 
 | |
|   pCharacteristic->setValue("Hello World");
 | |
|   pService->start();
 | |
| 
 | |
|   BLEAdvertising *pAdvertising = pServer->getAdvertising();
 | |
|   pAdvertising->start();
 | |
| }
 | |
| 
 | |
| void loop() {
 | |
|   // put your main code here, to run repeatedly:
 | |
|   delay(2000);
 | |
| } |