ble_beacon_broadcast.ino

M5Stack PaperDIY Complete Kit · Fichier : ble_beacon_broadcast.ino · Langage : C++ (Arduino) · Usage : Diffuser un signal Bluetooth Low Energy (BLE) pour identifier le PaperDIY comme balise.

Configure la carte comme serveur BLE pour envoyer des données ou être détectée par un smartphone.

Utilise la pile BLE native de l'ESP32-S3. Compatible avec les applications de scan BLE sur iOS et Android. Assurez-vous que l'antenne Bluetooth est bien dégagée dans le boîtier 3D préassemblé.

ble_beacon_broadcast.ino

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

#define SERVICE_UUID        "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"

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("PaperDIY Beacon");
  BLEServer *pServer = BLEDevice::createServer();
  pServer->setCallbacks(new MyServerCallbacks());
  BLEService *pService = pServer->createService(SERVICE_UUID);
  pCharacteristic = pService->createCharacteristic(
                      CHARACTERISTIC_UUID,
                      BLECharacteristic::PROPERTY_READ |
                      BLECharacteristic::PROPERTY_WRITE |
                      BLECharacteristic::PROPERTY_NOTIFY |
                      BLECharacteristic::PROPERTY_INDICATE
                    );
  pCharacteristic->setValue("Hello from PaperDIY");
  pService->start();
  BLEAdvertising *pAdvertising = pServer->getAdvertising();
  pAdvertising->start();
  Serial.println("BLE Advertising started");
}

void loop() {
  delay(1000);
  if (!deviceConnected) {
    Serial.println("Not connected");
  }
}

← Retour à la fiche