// TechyTron bluetooth-led-control — classic ESP32, Espressif Arduino core 3.x
#include <BLEDevice.h>
#include <BLEServer.h>
const char* serviceId="7e400001-b5a3-f393-e0a9-e50e24dcca9e";
const char* valueId="7e400002-b5a3-f393-e0a9-e50e24dcca9e";
class Commands:public BLECharacteristicCallbacks{void onWrite(BLECharacteristic* c) override{auto v=c->getValue();if(v.length()&&v[0]=='1')digitalWrite(25,HIGH);else if(v.length()&&v[0]=='0')digitalWrite(25,LOW);}};
class Lifecycle:public BLEServerCallbacks{void onDisconnect(BLEServer* server) override{server->startAdvertising();}};
void setup(){pinMode(25,OUTPUT);pinMode(26,INPUT_PULLUP);BLEDevice::init("TechyTron LED Lab");BLEServer* s=BLEDevice::createServer();s->setCallbacks(new Lifecycle());BLEService* service=s->createService(serviceId);BLECharacteristic* c=service->createCharacteristic(valueId,BLECharacteristic::PROPERTY_READ|BLECharacteristic::PROPERTY_WRITE);c->setValue("0");c->setCallbacks(new Commands());service->start();BLEAdvertising* ad=BLEDevice::getAdvertising();ad->addServiceUUID(serviceId);ad->start();}
void loop(){if(digitalRead(26)==LOW)digitalWrite(25,LOW);delay(10);}
