ble_beacon.ino

Kit de desarrollo e-paper ESP32-S3 M5Stack PaperDIY Complete Kit · Archivo : ble_beacon.ino · Lenguaje : C++ (Arduino) · Uso : Diffuser un signal Bluetooth Low Energy (BLE) comme balise.

Crea un servicio BLE personalizado visible para los teléfonos inteligentes.

Utiliza la pila BLE nativa de ESP32. El dispositivo transmite un UUID de servicio. Use una aplicación como 'nRF Connect' en Android/iOS para detectar el dispositivo 'M5PaperDIY_Beacon' y leer la característica. El modo BLE consume menos energía que WiFi.

ble_beacon.ino

#include <Arduino.h>
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>

BLECharacteristic *pCharacteristic;
bool deviceConnected = false;

class MyServerCallbacks: public BLEServerCallbacks {
    void onConnect(BLEServer* pServer) {
      deviceConnected = true;
    };
    void onDisconnect(BLEServer* pServer) {
      deviceConnected = false;
    }
};

void setup() {
  Serial.begin(115200);
  BLEDevice::init("M5PaperDIY_Beacon");
  BLEServer *pServer = BLEDevice::createServer();
  pServer->setCallbacks(new MyServerCallbacks());
  BLEService *pService = pServer->createService("12345678-1234-1234-1234-1234567890ab");
  pCharacteristic = pService->createCharacteristic(
                      "abcdefab-1234-1234-1234-1234567890ab",
                      BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE
                    );
  pCharacteristic->setValue("Hello from ESP32-S3");
  pService->start();
  BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
  pAdvertising->addServiceUUID("12345678-1234-1234-1234-1234567890ab");
  pAdvertising->setScanResponse(true);
  pAdvertising->start();
  Serial.println("BLE Beacon started");
}

void loop() {
  delay(1000);
}

← Volver a la ficha