ESP32 Bluetooth Low Energy (BLE) – Connexion à un bracelet de fitness pour déclencher une ampoule

ESP32 BLE Client – Connecting to Fitness Band to Trigger Bulb

bonjour monsieur,
pouvez-vous m’aider, je ne suis pas un codeur Arduino.
je suis coincé là-dessus. Dans le code, la boucle ne s’arrête jamais.
Je veux déclencher 2 relais en utilisant BLE et également définir
La zone de distance d’activation à 5 mètres de l’esp32 afin qu’il
se déclenche uniquement lorsque l’appareil BLE est à 5 mètres. Lorsqu’il est détecté
je veux qu’il reste allumé, pendant l’exécution du code, le relais s’allume et
s’éteint toutes les 2 secondes. j’espère que vous le réparerez pour moi.
Merci Anand.
(le code est 🙂

#include //Fichier d’en-tête pour BLE

serviceUUID BLEUUID statique(« 0000fff0-0000-1000-8000-00805f9b34fb »);
BLEUUID statique charUUID(« 0000fff0-0000-1000-8000-00805f9b34fb »);
Chaîne My_BLE_Address = « c1:b4:70:74:fb:66 » ;
statique BLERemoteCharacteristic* pRemoteCharacteristic ;

BLEScan* pBLEScan;
BLEScanResults trouvéDevices ;

BLEAddress statique *Server_BLE_Address ;
Chaîne Scaned_BLE_Address ;

booléen apparié = faux ;
booléen chkConnet = faux ;

bool connectToserver (BLEAddress pAddress)
{

BLEClient* pClient = BLEDevice::createClient();
Serial.println( » – Client créé »);

// Connectez-vous au serveur BLE.
pClient->connect(pAdresse);
Serial.println( » – Connecté »);
BLERemoteService* pRemoteService = pClient->getService(serviceUUID);
si (pRemoteService != nullptr)
{
Serial.println( » – J’ai trouvé notre service »);
renvoie vrai ;
}
autre
renvoie faux ;

pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID);
si (pRemoteCharacteristic != nullptr)
Serial.println( » – Trouvé notre caractéristique »);

renvoie vrai ;
}

classe MyAdvertisedDeviceCallbacks : public BLEAdvertisedDeviceCallbacks
{
void onResult (BLEAdvertisedDevice annoncéDevice)
{
Serial.printf(« Résultat de l’analyse : %s \n »,advertedDevice.toString().c_str());
Server_BLE_Address = new BLEAddress(advertisedDevice.getAddress());
Scaned_BLE_Address = Server_BLE_Address->toString().c_str();
}
} ;

configuration vide()
{
Série.begin(115200);
Serial.println(« Projet-4 »);

BLEDevice::init(«  »);
pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks (nouveau MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true);

pinMode(12, SORTIE);
pinMode(14, SORTIE);
}

boucle vide()
{

foundDevices = pBLEScan->start(3);
Serial.println(chkConnet);
si (chkConnet == faux)
{
tandis que (foundDevices.getCount() >= 1)
{
if (Scaned_BLE_Address == My_BLE_Address && paired == false)
{
Serial.println(« connexion….. »);
si (connectToserver(*Server_BLE_Address))
{
jumelé = vrai ;
Serial.println(« ON »);
si (chkConnet == faux)
{
écriture numérique (12, ÉLEVÉ) ;
écriture numérique (14, ÉLEVÉ) ;
chkConnet = vrai ;
Serial.println(« Activé »);
}
casser;
}
autre
{
Serial.println(« Échec du couplage »);
casser;
}
}
casser;
}
}
tandis que (foundDevices.getCount() == 0)
{
Serial.println(« *************** »);
Serial.println(foundDevices.getCount());

Serial.println(« hors de portée »);
jumelé = faux ;

si (chkConnet == vrai)
{
écriture numérique (12, FAIBLE) ;
écriture numérique (14, FAIBLE) ;
chkConnet = faux ;
Serial.println(« OFF »);
}
ESP.restart();
casser;
}
}

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

YouTube video

  • ELEGOO 3PCS Carte de Développement ESP32 Type-C, 2,4 GHz WiFi + Bluetooth Dual Core Carte de Contrôle pour Arduino, Support MicroPython, NodeMCU, AP/STA/AP+STA, Puce CP2102
  • ELEGOO 2PCS ESP32 Carte de développement Type-C, 2,4 GHz WiFi + Bluetooth Dual Core Microcontrôleur pour Arduino, Support MicroPython, NodeMCU, AP/STA/AP+STA, Puce CP2102