ble_beacon.ino

Kit de développement e-paper ESP32-S3 M5Stack PaperDIY Complete Kit · Fichier : ble_beacon.ino · Langage : C++ (Arduino) · Usage : Diffuser un signal Bluetooth Low Energy (BLE) comme balise.

Crée un service BLE personnalisé visible par les smartphones.

Utilise la pile BLE native de l'ESP32. Le périphérique diffuse un UUID de service. Utilisez une application comme 'nRF Connect' sur Android/iOS pour détecter le périphérique 'M5PaperDIY_Beacon' et lire la caractéristique. Le mode BLE consomme moins que le 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);
}

← Retour à la fiche