Pages

Subscribe Twitter Twitter

Thursday, August 15, 2019

BLE Scanner: ESP32 BLE_Write Arduino

Ide Project:

Di sini kita akan membahas secara singkat contoh BLE_write yang ditemukan di Files> Examples> ESP32 BLE Arduino. Contoh ini memungkinkan untuk dapat dibaca oleh serial monitor software Arduino IDE, dimana sebelumnya pesan tersebut ditulis di ponsel melalui aplikasi BLE scanner.

Alat & Bahan:

1. ESP32 dan kabel USB
2. Software Arduino IDE (pada pc)
3. Aplikasi BLE scanner (pada ponsel)

Program:

.
.
/*
    Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleWrite.cpp
    Ported to Arduino ESP32 by Evandro Copercini
*/


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

// See the following for generating UUIDs:
// https://www.uuidgenerator.net/

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


class MyCallbacks: public BLECharacteristicCallbacks {
void onWrite(BLECharacteristic *pCharacteristic) {
std::string value = pCharacteristic->getValue();

if (value.length() > 0) {
Serial.println("*********");
Serial.print("New value: ");
for (int i = 0; i < value.length(); i++)
Serial.print(value[i]);

Serial.println();
Serial.println("*********");
}
}
};

void setup() {
Serial.begin(115200);

Serial.println("1- Download and install an BLE scanner app in your phone");
Serial.println("2- Scan for BLE devices in the app");
Serial.println("3- Connect to MyESP32");
Serial.println("4- Go to CUSTOM CHARACTERISTIC in CUSTOM SERVICE and write something");
Serial.println("5- See the magic =)");

BLEDevice::init("MyESP32");
BLEServer *pServer = BLEDevice::createServer();

BLEService *pService = pServer->createService(SERVICE_UUID);

BLECharacteristic *pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);

pCharacteristic->setCallbacks(new MyCallbacks());

pCharacteristic->setValue("Hello World");
pService->start();

BLEAdvertising *pAdvertising = pServer->getAdvertising();
pAdvertising->start();
}

void loop() {
// put your main code here, to run repeatedly:
delay(2000);
}
.


Hasil:

1. Jalankan program diatas, kemudian buka serial monitor pada software Arduino IDE. Pastikan set baud 115200.

2. Buka aplikasi BLE scanner dan hubungan ke 'MyESP32' (nama bluetooth yang sudah kita setting) sesudah scan BLE device.



3. Untuk menulis pesan pilih Custom service> W , lalu kirimkan.


4. Amati tampilan serial monitor pada software Arduino IDE.


0 comments:

Post a Comment