Senin, 10 November 2025

Menggunakan Bluetooth Low Energy (BLE) pada ESP32

 Berikut contoh script .ino untuk menggunakan Bluetooth Low Energy (BLE) pada ESP32 dengan Arduino IDE. Script ini membuat ESP32 bertindak sebagai BLE server yang mengirimkan data ke perangkat BLE client (misalnya smartphone).

🧬 Script BLE ESP32 (BLE Server)

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

BLEServer* pServer = NULL;
BLECharacteristic* pCharacteristic = NULL;
bool deviceConnected = false;

#define SERVICE_UUID        "12345678-1234-1234-1234-123456789abc"
#define CHARACTERISTIC_UUID "abcd1234-ab12-cd34-ef56-abcdef123456"

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

  void onDisconnect(BLEServer* pServer) {
    deviceConnected = false;
  }
};

void setup() {
  Serial.begin(115200);
  BLEDevice::init("ESP32_BLE");
  pServer = BLEDevice::createServer();
  pServer->setCallbacks(new MyServerCallbacks());

  BLEService *pService = pServer->createService(SERVICE_UUID);
  pCharacteristic = pService->createCharacteristic(
                      CHARACTERISTIC_UUID,
                      BLECharacteristic::PROPERTY_READ |
                      BLECharacteristic::PROPERTY_NOTIFY
                    );

  pCharacteristic->addDescriptor(new BLE2902());
  pCharacteristic->setValue("Hello BLE");
  pService->start();

  pServer->getAdvertising()->start();
  Serial.println("BLE server aktif. Silakan konek ke 'ESP32_BLE'");
}

void loop() {
  if (deviceConnected) {
    pCharacteristic->setValue("Data baru dari ESP32");
    pCharacteristic->notify();
    delay(1000);
  }
}
 

📱 Cara Menguji

  • Upload ke ESP32

  • Gunakan aplikasi seperti nRF Connect (Android/iOS) untuk scan dan konek ke ESP32_BLE

  • Buka layanan dan karakteristik untuk melihat notifikasi data

Kalau kamu ingin versi BLE client (ESP32 sebagai penerima data), atau ingin menambahkan fitur seperti kontrol LED via BLE, 

 


 

 

Referensi

Wi-Fi hotspot dengan captive portal