init
This commit is contained in:
2
test/sketch.yaml
Normal file
2
test/sketch.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
default_port: /dev/ttyACM0
|
||||
default_fqbn: esp32:esp32:esp32s2
|
62
test/test.ino
Normal file
62
test/test.ino
Normal file
@ -0,0 +1,62 @@
|
||||
/*********
|
||||
Rui Santos
|
||||
Complete instructions at https://RandomNerdTutorials.com/esp32-ble-server-client/
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
*********/
|
||||
|
||||
#include "BLEDevice.h"
|
||||
#include <Wire.h>
|
||||
|
||||
//BLE Server name (the other ESP32 name running the server sketch)
|
||||
#define bleServerName "YourESP32"
|
||||
|
||||
/* UUID's of the service, characteristic that we want to read*/
|
||||
// BLE Service
|
||||
static BLEUUID bmeServiceUUID("91bad492-b950-4226-aa2b-4ede9fa42f59");
|
||||
|
||||
//Temperature Celsius Characteristic
|
||||
static BLEUUID temperatureCharacteristicUUID("cba1d466-344c-4be3-ab3f-189f80dd7518");
|
||||
|
||||
//Flags stating if should begin connecting and if the connection is up
|
||||
static boolean doConnect = false;
|
||||
static boolean connected = false;
|
||||
|
||||
//Address of the peripheral device. Address will be found during scanning...
|
||||
static BLEAddress* pServerAddress;
|
||||
|
||||
//Characteristicd that we want to read
|
||||
static BLERemoteCharacteristic* temperatureCharacteristic;
|
||||
|
||||
//Activate notify
|
||||
const uint8_t notificationOn[] = { 0x1, 0x0 };
|
||||
const uint8_t notificationOff[] = { 0x0, 0x0 };
|
||||
|
||||
//Variables to store temperature and humidity
|
||||
char* temperatureChar;
|
||||
|
||||
//Flags to check whether new temperature and humidity readings are available
|
||||
boolean newTemperature = false;
|
||||
boolean newHumidity = false;
|
||||
|
||||
//Connect to the BLE Server that has the name, Service, and Characteristics
|
||||
bool connectToServer(BLEAddress pAddress) {
|
||||
BLEClient* pClient = BLEDevice::createClient();
|
||||
|
||||
// If the flag "doConnect" is true then we have scanned for and found the desired
|
||||
// BLE Server with which we wish to connect. Now we connect to it. Once we are
|
||||
// connected we set the connected flag to be true.
|
||||
if (doConnect == true) {
|
||||
if (connectToServer(*pServerAddress)) {
|
||||
Serial.println("We are now connected to the BLE Server.");
|
||||
//Activate the Notify property of each Characteristic
|
||||
temperatureCharacteristic->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)notificationOn, 2, true);
|
||||
humidityCharacteristic->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)notificationOn, 2, true);
|
||||
connected = true;
|
||||
} else {
|
||||
Serial.println("We have failed to connect to the server; Restart your device to scan for nearby BLE server again.");
|
||||
}
|
||||
doConnect = false;
|
||||
}
|
||||
delay(1000); // Delay a second between loops.
|
||||
}
|
Reference in New Issue
Block a user