{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/10/15/esp32-bluetooth-low-energy-ble-sur-arduino-ide-serveur-dimpression/","llm_html_url":"https://tutos-gameserver.fr/2019/10/15/esp32-bluetooth-low-energy-ble-sur-arduino-ide-serveur-dimpression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/10/15/esp32-bluetooth-low-energy-ble-sur-arduino-ide-serveur-dimpression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"ESP32 Bluetooth Low Energy (BLE) sur Arduino IDE\n\n &#8211; Serveur d&rsquo;impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-10-15T03:30:55+00:00","modified_at":"2019-10-15T03:30:55+00:00","word_count":2641,"reading_time_seconds":793,"summary":"L&#39;ESP32 est livré non seulement avec le Wi-Fi mais également avec Bluetooth et Bluetooth Low Energy (BLE). Cet article est une introduction rapide à BLE avec l’ESP32. Dans un premier temps, nous explorerons ce qui est BLE et comment il peut être utilisé, puis nous examinerons quelques exemples avec l’ESP32 utilisant Arduino IDE. Pour une [&hellip;]","summary_points":["L&#39;ESP32 est livré non seulement avec le Wi-Fi mais également avec Bluetooth et Bluetooth Low Energy (BLE).","Cet article est une introduction rapide à BLE avec l’ESP32.","Dans un premier temps, nous explorerons ce qui est BLE et comment il peut être utilisé, puis nous examinerons quelques exemples avec l’ESP32 utilisant Arduino IDE.","Pour une introduction simple, nous allons créer un serveur ESP32 BLE et un scanner ESP32 BLE pour trouver ce serveur."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"79c51a992f083f445433e38a0c189614","plain_text":"L&#39;ESP32 est livré non seulement avec le Wi-Fi mais également avec Bluetooth et Bluetooth Low Energy (BLE). Cet article est une introduction rapide à BLE avec l’ESP32. Dans un premier temps, nous explorerons ce qui est BLE et comment il peut être utilisé, puis nous examinerons quelques exemples avec l’ESP32 utilisant Arduino IDE. Pour une introduction simple, nous allons créer un serveur ESP32 BLE et un scanner ESP32 BLE pour trouver ce serveur.\nPrésentation de Bluetooth Low Energy\nPour une introduction rapide à BLE, vous pouvez regarder la vidéo ci-dessous ou vous pouvez faire défiler l&#39;écran pour une explication écrite.\n\nLecture recommandée: Apprenez à utiliser l&#39;ESP32 Bluetooth Classic avec Arduino IDE pour échanger des données entre un smartphone ESP32 et un smartphone Android.\nQu&#39;est-ce que Bluetooth Low Energy?\nBluetooth Low Energy, en abrégé BLE, est une variante de Bluetooth à économie d&#39;énergie. La principale application de BLE est la transmission à courte distance de petites quantités de données (faible bande passante). Contrairement à Bluetooth toujours activé, BLE reste en mode veille, sauf lorsqu&#39;une connexion est établie.\nCela fait qu&#39;il consomme très peu d&#39;énergie. BLE consomme environ 100 fois moins d&#39;énergie que Bluetooth (selon le cas d&#39;utilisation).\n\n\n\nDe plus, BLE prend en charge non seulement la communication point à point, mais également le mode de diffusion et le réseau maillé.\nRegardez le tableau ci-dessous qui compare BLE et Bluetooth Classic de manière plus détaillée.\n\n\n\nVoir l&#39;image Souce\nEn raison de ses propriétés, BLE convient aux applications qui doivent échanger de petites quantités de données fonctionnant périodiquement sur une pile bouton. Par exemple, BLE est très utile dans les secteurs de la santé, de la forme physique, du suivi, des balises, de la sécurité et de la domotique.\n\n\n\nBLE Server et Client\nAvec Bluetooth Low Energy, il existe deux types de périphériques: le serveur et le client. L&#39;ESP32 peut agir en tant que client ou en tant que serveur.\nLe serveur annonce son existence afin qu&#39;il puisse être trouvé par d&#39;autres périphériques et contient les données que le client peut lire. Le client analyse les périphériques à proximité et, lorsqu&#39;il trouve le serveur recherché, il établit une connexion et écoute les données entrantes. Cela s&#39;appelle une communication point à point.\n\n\n\nComme mentionné précédemment, BLE prend également en charge le mode de diffusion et le réseau maillé:\n\nMode de diffusion: le serveur transmet les données à plusieurs clients connectés;\nRéseau maillé: tous les appareils sont connectés, il s&#39;agit d&#39;une connexion plusieurs à plusieurs.\n\nMême si les configurations de réseau de diffusion et de maillage sont possibles à mettre en œuvre, elles ont été développées très récemment. Il n’ya donc pas beaucoup d’exemples mis en œuvre pour l’ESP32 pour le moment.\nGATT\nGATT est synonyme d&#39;attributs génériques et définit une structure de données hiérarchique exposée aux périphériques BLE connectés. Cela signifie que le GATT définit la manière dont deux appareils BLE envoient et reçoivent des messages standard. Il est important de comprendre cette hiérarchie, car cela facilitera la compréhension de l’utilisation de BLE et de l’écriture de vos applications.\n\n\n\nService BLE\nLe niveau supérieur de la hiérarchie est un profil, composé d&#39;un ou de plusieurs services. En règle générale, un périphérique BLE contient plusieurs services.\nChaque service contient au moins une caractéristique ou peut également faire référence à d&#39;autres services. Un service est simplement un ensemble d&#39;informations, comme des lectures de capteurs, par exemple. \nIl existe des services prédéfinis pour plusieurs types de données définis par le SIG (groupe d&#39;intérêt spécial Bluetooth), tels que: Niveau de la batterie, Pression artérielle, Fréquence cardiaque, Pèse-personne, etc. Vous pouvez consulter ici d&#39;autres services définis.\n\n\n\nVoir l&#39;image Souce\nBLE Caractéristique\nLa caractéristique appartient toujours à un service et c’est là que les données réelles sont contenues dans la hiérarchie (valeur). La caractéristique a toujours deux attributs: la déclaration de la caractéristique (qui fournit des métadonnées sur les données) et la valeur de la caractéristique.\nDe plus, la valeur de caractéristique peut être suivie de descripteurs, qui développent davantage les métadonnées contenues dans la déclaration de caractéristique.\nLes propriétés décrivent comment la valeur de caractéristique peut être interagie. Fondamentalement, il contient les opérations et les procédures pouvant être utilisées avec la caractéristique:\n\nDiffuser\nLis\nÉcrire sans réponse\nÉcrire\nNotifier\nIndiquer\nÉcrit Signé Authentifié\nPropriétés étendues\n\nUUID\nChaque service, caractéristique et descripteur possède un UUID (identificateur unique universel). Un UUID est un numéro unique de 128 bits (16 octets). Par exemple:\n55072829-bc9e-4c53-938a-74a6d4c78776\nIl existe des UUID raccourcis pour tous les types, services et profils spécifiés dans le SIG (groupe d&#39;intérêt spécial Bluetooth).\nMais si votre application a besoin de son propre UUID, vous pouvez le générer à l&#39;aide de ce site Web de générateur d&#39;UUID.\nEn résumé, l&#39;UUID est utilisé pour identifier les informations de manière unique. Par exemple, il peut identifier un service particulier fourni par un périphérique Bluetooth.\nBLE avec ESP32\nL&#39;ESP32 peut agir en tant que serveur BLE ou en tant que client BLE. Il existe plusieurs exemples BLE pour l&#39;ESP32 dans la bibliothèque ESP32 BLE pour Arduino IDE. Cette bibliothèque est installée par défaut lorsque vous installez l’ESP32 sur l’EDI Arduino.\nRemarque: Le module complémentaire ESP32 doit être installé sur l&#39;IDE Arduino. Suivez l’un des prochains tutoriels pour préparer votre IDE Arduino à fonctionner avec l’ESP32, si ce n’est déjà fait.\nDans votre IDE Arduino, vous pouvez aller sur Fichier &gt; Exemples &gt; ESP32 BLE Arduino et explorez les exemples fournis avec la bibliothèque BLE.\n\n\n\nRemarque: pour voir les exemples ESP32, vous devez avoir sélectionné la carte ESP32 sur Outils &gt; Planche.\nPour une brève introduction à l&#39;ESP32 avec BLE sur l&#39;IDE Arduino, nous allons créer un serveur ESP32 BLE, puis un scanner ESP32 BLE pour trouver ce serveur. Nous allons utiliser et expliquer les exemples fournis avec la bibliothèque BLE.\nPour suivre cet exemple, vous avez besoin de deux cartes de développement ESP32. Nous allons utiliser la carte ESP32 DOIT DEVKIT V1.\nServeur ESP32 BLE\nPour créer un serveur ESP32 BLE, ouvrez votre IDE Arduino et accédez à Fichier &gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le Serveur BLE exemple. Le code suivant devrait charger:\n/ *\n    D&#39;après l&#39;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleServer.cpp\n    Porté sur Arduino ESP32 par Evandro Copercini\n    mises à jour par chegewara\n* /\n\n#comprendre \n#comprendre \n#comprendre \n\n// Voir ce qui suit pour générer des UUID:\n// https://www.uuidgenerator.net/\n\n#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;\n\nvoid setup() \n                                         BLECaractéristique :: PROPERTY_WRITE\n                                       )\n\n  pCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\n  pService-&gt; start ();\n  // BLEAdvertising * pAdvertising = pServer-&gt; getAdvertising (); // cela fonctionne toujours pour la compatibilité ascendante\n  BLEAdvertising * pAdvertising = BLEDevice :: getAdvertising ();\n  pAdvertising-&gt; addServiceUUID (SERVICE_UUID);\n  pAdvertising-&gt; setScanResponse (true);\n  pAdvertising-&gt; setMinPreferred (0x06); // fonctions qui aident avec le problème des connexions iPhone\n  pAdvertising-&gt; setMinPreferred (0x12);\n  BLEDevice :: startAdvertising ();\n  Serial.println (&quot;Caractéristique définie! Vous pouvez maintenant la lire dans votre téléphone!&quot;);\n\n\nboucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  délai (2000);\n\nVoir le code brut\nPour créer un serveur BLE, le code doit suivre les étapes suivantes:\n\nCréez un serveur BLE. Dans ce cas, l&#39;ESP32 agit en tant que serveur BLE.\nCréer un service BLE.\n  Créer une caractéristique BLE sur le service.\nCréez un descripteur BLE sur la caractéristique.\nDémarrer le service.\n  Commencez la publicité pour qu&#39;elle puisse être trouvée par d&#39;autres appareils.\n\nComment fonctionne le code\nJetons un coup d’œil sur le fonctionnement de l’exemple de code de serveur BLE.\nIl commence par importer les bibliothèques nécessaires aux capacités BLE.\n#comprendre \n#comprendre \n#comprendre \nEnsuite, vous devez définir un UUID pour le service et la caractéristique.\n#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;\nVous pouvez laisser les UUID par défaut ou vous rendre sur uuidgenerator.net pour créer des UUID aléatoires pour vos services et caractéristiques.\ndans le installer(), la communication série commence à un débit en bauds de 115200.\nSerial.begin (115200);\nEnsuite, vous créez un périphérique BLE appelé “MyESP32”. Vous pouvez changer ce nom en ce que vous voulez.\n// Créer le périphérique BLE\nBLEDevice :: init (&quot;MyESP32&quot;);\nDans la ligne suivante, vous définissez le périphérique BLE en tant que serveur.\nBLEServer * pServer = BLEDevice :: createServer ();\nEnsuite, vous créez un service pour le serveur BLE avec l’UUID défini précédemment.\n    BLEService * pService = pServer-&gt; createService (SERVICE_UUID);\nEnsuite, vous définissez la caractéristique pour ce service. Comme vous pouvez le constater, vous utilisez également l’UUID défini précédemment et vous devez transmettre en tant qu’arguments les propriétés de la caractéristique. Dans ce cas, c’est: LIRE et ÉCRIRE.\nBLECharacteristic * pCharacteristic = pService-&gt; createCharacteristic (\n                                     CHARACTERISTIC_UUID,\n                                     BLECaractéristique :: PROPERTY_READ |\n                                     BLECaractéristique :: PROPERTY_WRITE\n                                     )\nAprès avoir créé la caractéristique, vous pouvez définir sa valeur avec setValue () méthode.\npCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\nDans ce cas, nous définissons la valeur sur le texte «Hello World dit Neil». Vous pouvez changer ce texte comme bon vous semble. Dans les projets futurs, ce texte peut être une lecture de capteur, ou l&#39;état d&#39;une lampe, par exemple.\nEnfin, vous pouvez démarrer le service et la publicité afin que d&#39;autres périphériques BLE puissent analyser et trouver ce périphérique BLE.\nBLEAdvertising * pAdvertising = pServer-&gt; getAdvertising ();\npPublicité-&gt; start ();\nCeci est juste un exemple simple sur la façon de créer un serveur BLE. Dans ce code, rien n’est fait dans le boucle(), mais vous pouvez ajouter ce qui se passe lorsqu’un nouveau client se connecte (consultez l’exemple BLE_notify pour obtenir des conseils).\nESP32 BLE Scanner\nCréer un scanner ESP32 BLE est simple. Saisissez un autre ESP32 (pendant que l&#39;autre exécute l&#39;esquisse du serveur BLE). Dans votre IDE Arduino, accédez à Fichier&gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le BLE_scan exemple. Le code suivant devrait charger.\n/ *\n   D&#39;après l&#39;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleScan.cpp\n   Porté sur Arduino ESP32 par Evandro Copercini\n* /\n\n#comprendre \n#comprendre \n#comprendre \n#comprendre \n\nint scanTime = 5; //En secondes\nBLEScan * pBLEScan;\n\nclass MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks \n    void onResult (BLEAdvertisedDevice annoncisedDevice) \n      Serial.printf (&quot;Appareil annoncé:% s  n&quot;, advertisedDevice.toString (). C_str ());\n    \n;\n\nvoid setup() \n  Serial.begin (115200);\n  Serial.println (&quot;Numérisation ...&quot;);\n\n  BLEDevice :: init (&quot;&quot;);\n  pBLEScan = BLEDevice :: getScan (); // créer un nouveau scan\n  pBLEScan-&gt; setAdvertisedDeviceCallbacks (new MyAdvertisedDeviceCallbacks ());\n  pBLEScan-&gt; setActiveScan (true); // l&#39;analyse active consomme plus d&#39;énergie, mais permet d&#39;obtenir des résultats plus rapidement\n  pBLEScan-&gt; setInterval (100);\n  pBLEScan-&gt; setWindow (99); // valeur inférieure ou égale à setInterval\n\n\nboucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  BLEScanResults foundDevices = pBLEScan-&gt; start (scanTime, false);\n  Serial.print (&quot;Périphériques trouvés:&quot;);\n  Serial.println (foundDevices.getCount ());\n  Serial.println (&quot;Scan done!&quot;);\n  pBLEScan-&gt; clearResults (); // efface les résultats de la mémoire tampon BLEScan pour libérer de la mémoire\n  délai (2000);\n\nVoir le code brut\nCe code initialise l&#39;ESP32 en tant que périphérique BLE et recherche les périphériques à proximité. Téléchargez ce code sur votre ESP32. Vous voudrez peut-être déconnecter temporairement l’autre ESP32 de votre ordinateur afin d’être sûr de télécharger le code sur la bonne carte ESP32.\nUne fois le code chargé, vous devez allumer les deux cartes ESP32:\n\nUn ESP32 avec le schéma “BLE_server”;\nAutre avec esquisse ESP32 «BLE_scan».\n\n\n\n\nAccédez au moniteur série avec l’ESP32 exécutant l’exemple «BLE_scan», appuyez sur le bouton «ESP32» (avec l’esquisse «BLE_scan») pour redémarrer et attendez quelques secondes pendant la numérisation.\n\n\n\nLe scanner a trouvé deux périphériques: l’un est l’ESP32 (il porte le nom «MyESP32), et l&#39;autre est notre MiBand2.\n\n\n\nTest du serveur ESP32 BLE avec votre smartphone\nLa plupart des smartphones modernes devraient avoir des capacités BLE. J&#39;utilise actuellement un OnePlus 5, mais la plupart des smartphones devraient également fonctionner.\nVous pouvez numériser votre serveur ESP32 BLE avec votre smartphone et voir ses services et ses caractéristiques. Pour cela, nous utiliserons une application gratuite appelée nRF Connect pour mobile de Nordic, cela fonctionne sur Android (Google Play Store) et iOS (App Store).\nAccédez au Google Play Store ou à l&#39;App Store et recherchez «nRF Connect for Mobile». Installez l&#39;application et ouvrez-la.\n\n\n\nN&#39;oubliez pas d&#39;aller dans les paramètres Bluetooth et d&#39;activer l&#39;adaptateur Bluetooth sur votre smartphone. Vous pouvez également vouloir le rendre visible à d&#39;autres périphériques pour tester d&#39;autres esquisses ultérieurement.\n\n\n\nUne fois que tout est prêt dans votre smartphone et que l&#39;ESP32 exécute l&#39;esquisse du serveur BLE, dans l&#39;application, appuyez sur le bouton Rechercher pour rechercher les appareils à proximité. Vous devriez trouver un ESP32 avec le nom “MyESP32”.\n\n\n\nClique le &quot;Relier&quot; bouton.\nComme vous pouvez le voir sur la figure ci-dessous, l’ESP32 dispose d’un service avec l’UUID que vous avez défini précédemment. Si vous appuyez sur le service, le menu s’agrandit et affiche la caractéristique avec l’UUID que vous avez également défini.\n\n\n\nLa caractéristique a les propriétés READ et WRITE et la valeur est celle que vous avez précédemment définie dans l’esquisse du serveur BLE. Donc, tout fonctionne bien.\nEmballer\nDans ce tutoriel, nous vous avons montré les principes de base de Bluetooth Low Energy et quelques exemples avec l’ESP32. Nous avons exploré l’esquisse du serveur BLE et l’esquisse de numérisation BLE. Ce sont des exemples simples pour vous aider à démarrer avec BLE.\nL&#39;idée est d&#39;utiliser BLE pour envoyer ou recevoir des lectures de capteurs d&#39;autres appareils. Nous publierons davantage de tutoriels et de projets sur BLE avec l’ESP32, alors restez branchés!\nVoici un extrait de notre cours: Apprenez l’ESP32 avec Arduino IDE. Si vous aimez ESP32 et que vous souhaitez en savoir plus à ce sujet, nous vous recommandons de vous inscrire au cours Learn ESP32 with Arduino IDE.\nVous pourriez aussi aimer lire:\nMerci d&#39;avoir lu.\nMis à jour le 16 mai 2019\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["L&#39;ESP32 est livré non seulement avec le Wi-Fi mais également avec Bluetooth et Bluetooth Low Energy (BLE). Cet article est une introduction rapide à BLE avec l’ESP32. Dans un premier temps, nous explorerons ce qui est BLE et comment il peut être utilisé, puis nous examinerons quelques exemples avec l’ESP32 utilisant Arduino IDE. Pour une introduction simple, nous allons créer un serveur ESP32 BLE et un scanner ESP32 BLE pour trouver ce serveur.\nPrésentation de Bluetooth Low Energy\nPour une introduction rapide à BLE, vous pouvez regarder la vidéo ci-dessous ou vous pouvez faire défiler l&#39;écran pour une explication écrite.","Lecture recommandée: Apprenez à utiliser l&#39;ESP32 Bluetooth Classic avec Arduino IDE pour échanger des données entre un smartphone ESP32 et un smartphone Android.\nQu&#39;est-ce que Bluetooth Low Energy?\nBluetooth Low Energy, en abrégé BLE, est une variante de Bluetooth à économie d&#39;énergie. La principale application de BLE est la transmission à courte distance de petites quantités de données (faible bande passante). Contrairement à Bluetooth toujours activé, BLE reste en mode veille, sauf lorsqu&#39;une connexion est établie.\nCela fait qu&#39;il consomme très peu d&#39;énergie. BLE consomme environ 100 fois moins d&#39;énergie que Bluetooth (selon le cas d&#39;utilisation).","De plus, BLE prend en charge non seulement la communication point à point, mais également le mode de diffusion et le réseau maillé.\nRegardez le tableau ci-dessous qui compare BLE et Bluetooth Classic de manière plus détaillée.","Voir l&#39;image Souce\nEn raison de ses propriétés, BLE convient aux applications qui doivent échanger de petites quantités de données fonctionnant périodiquement sur une pile bouton. Par exemple, BLE est très utile dans les secteurs de la santé, de la forme physique, du suivi, des balises, de la sécurité et de la domotique.","BLE Server et Client\nAvec Bluetooth Low Energy, il existe deux types de périphériques: le serveur et le client. L&#39;ESP32 peut agir en tant que client ou en tant que serveur.\nLe serveur annonce son existence afin qu&#39;il puisse être trouvé par d&#39;autres périphériques et contient les données que le client peut lire. Le client analyse les périphériques à proximité et, lorsqu&#39;il trouve le serveur recherché, il établit une connexion et écoute les données entrantes. Cela s&#39;appelle une communication point à point.","Comme mentionné précédemment, BLE prend également en charge le mode de diffusion et le réseau maillé:","Mode de diffusion: le serveur transmet les données à plusieurs clients connectés;\nRéseau maillé: tous les appareils sont connectés, il s&#39;agit d&#39;une connexion plusieurs à plusieurs.","Même si les configurations de réseau de diffusion et de maillage sont possibles à mettre en œuvre, elles ont été développées très récemment. Il n’ya donc pas beaucoup d’exemples mis en œuvre pour l’ESP32 pour le moment.\nGATT\nGATT est synonyme d&#39;attributs génériques et définit une structure de données hiérarchique exposée aux périphériques BLE connectés. Cela signifie que le GATT définit la manière dont deux appareils BLE envoient et reçoivent des messages standard. Il est important de comprendre cette hiérarchie, car cela facilitera la compréhension de l’utilisation de BLE et de l’écriture de vos applications.","Service BLE\nLe niveau supérieur de la hiérarchie est un profil, composé d&#39;un ou de plusieurs services. En règle générale, un périphérique BLE contient plusieurs services.\nChaque service contient au moins une caractéristique ou peut également faire référence à d&#39;autres services. Un service est simplement un ensemble d&#39;informations, comme des lectures de capteurs, par exemple. \nIl existe des services prédéfinis pour plusieurs types de données définis par le SIG (groupe d&#39;intérêt spécial Bluetooth), tels que: Niveau de la batterie, Pression artérielle, Fréquence cardiaque, Pèse-personne, etc. Vous pouvez consulter ici d&#39;autres services définis.","Voir l&#39;image Souce\nBLE Caractéristique\nLa caractéristique appartient toujours à un service et c’est là que les données réelles sont contenues dans la hiérarchie (valeur). La caractéristique a toujours deux attributs: la déclaration de la caractéristique (qui fournit des métadonnées sur les données) et la valeur de la caractéristique.\nDe plus, la valeur de caractéristique peut être suivie de descripteurs, qui développent davantage les métadonnées contenues dans la déclaration de caractéristique.\nLes propriétés décrivent comment la valeur de caractéristique peut être interagie. Fondamentalement, il contient les opérations et les procédures pouvant être utilisées avec la caractéristique:","Diffuser\nLis\nÉcrire sans réponse\nÉcrire\nNotifier\nIndiquer\nÉcrit Signé Authentifié\nPropriétés étendues","UUID\nChaque service, caractéristique et descripteur possède un UUID (identificateur unique universel). Un UUID est un numéro unique de 128 bits (16 octets). Par exemple:\n55072829-bc9e-4c53-938a-74a6d4c78776\nIl existe des UUID raccourcis pour tous les types, services et profils spécifiés dans le SIG (groupe d&#39;intérêt spécial Bluetooth).\nMais si votre application a besoin de son propre UUID, vous pouvez le générer à l&#39;aide de ce site Web de générateur d&#39;UUID.\nEn résumé, l&#39;UUID est utilisé pour identifier les informations de manière unique. Par exemple, il peut identifier un service particulier fourni par un périphérique Bluetooth.\nBLE avec ESP32\nL&#39;ESP32 peut agir en tant que serveur BLE ou en tant que client BLE. Il existe plusieurs exemples BLE pour l&#39;ESP32 dans la bibliothèque ESP32 BLE pour Arduino IDE. Cette bibliothèque est installée par défaut lorsque vous installez l’ESP32 sur l’EDI Arduino.\nRemarque: Le module complémentaire ESP32 doit être installé sur l&#39;IDE Arduino. Suivez l’un des prochains tutoriels pour préparer votre IDE Arduino à fonctionner avec l’ESP32, si ce n’est déjà fait.\nDans votre IDE Arduino, vous pouvez aller sur Fichier &gt; Exemples &gt; ESP32 BLE Arduino et explorez les exemples fournis avec la bibliothèque BLE.","Remarque: pour voir les exemples ESP32, vous devez avoir sélectionné la carte ESP32 sur Outils &gt; Planche.\nPour une brève introduction à l&#39;ESP32 avec BLE sur l&#39;IDE Arduino, nous allons créer un serveur ESP32 BLE, puis un scanner ESP32 BLE pour trouver ce serveur. Nous allons utiliser et expliquer les exemples fournis avec la bibliothèque BLE.\nPour suivre cet exemple, vous avez besoin de deux cartes de développement ESP32. Nous allons utiliser la carte ESP32 DOIT DEVKIT V1.\nServeur ESP32 BLE\nPour créer un serveur ESP32 BLE, ouvrez votre IDE Arduino et accédez à Fichier &gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le Serveur BLE exemple. Le code suivant devrait charger:\n/ *\n    D&#39;après l&#39;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleServer.cpp\n    Porté sur Arduino ESP32 par Evandro Copercini\n    mises à jour par chegewara\n* /","#comprendre \n#comprendre \n#comprendre","// Voir ce qui suit pour générer des UUID:\n// https://www.uuidgenerator.net/","#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;","void setup() \n                                         BLECaractéristique :: PROPERTY_WRITE\n                                       )","  pCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\n  pService-&gt; start ();\n  // BLEAdvertising * pAdvertising = pServer-&gt; getAdvertising (); // cela fonctionne toujours pour la compatibilité ascendante\n  BLEAdvertising * pAdvertising = BLEDevice :: getAdvertising ();\n  pAdvertising-&gt; addServiceUUID (SERVICE_UUID);\n  pAdvertising-&gt; setScanResponse (true);\n  pAdvertising-&gt; setMinPreferred (0x06); // fonctions qui aident avec le problème des connexions iPhone\n  pAdvertising-&gt; setMinPreferred (0x12);\n  BLEDevice :: startAdvertising ();\n  Serial.println (&quot;Caractéristique définie! Vous pouvez maintenant la lire dans votre téléphone!&quot;);","boucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  délai (2000);","Voir le code brut\nPour créer un serveur BLE, le code doit suivre les étapes suivantes:","Créez un serveur BLE. Dans ce cas, l&#39;ESP32 agit en tant que serveur BLE.\nCréer un service BLE.\n  Créer une caractéristique BLE sur le service.\nCréez un descripteur BLE sur la caractéristique.\nDémarrer le service.\n  Commencez la publicité pour qu&#39;elle puisse être trouvée par d&#39;autres appareils.","Comment fonctionne le code\nJetons un coup d’œil sur le fonctionnement de l’exemple de code de serveur BLE.\nIl commence par importer les bibliothèques nécessaires aux capacités BLE.\n#comprendre \n#comprendre \n#comprendre \nEnsuite, vous devez définir un UUID pour le service et la caractéristique.\n#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;\nVous pouvez laisser les UUID par défaut ou vous rendre sur uuidgenerator.net pour créer des UUID aléatoires pour vos services et caractéristiques.\ndans le installer(), la communication série commence à un débit en bauds de 115200.\nSerial.begin (115200);\nEnsuite, vous créez un périphérique BLE appelé “MyESP32”. Vous pouvez changer ce nom en ce que vous voulez.\n// Créer le périphérique BLE\nBLEDevice :: init (&quot;MyESP32&quot;);\nDans la ligne suivante, vous définissez le périphérique BLE en tant que serveur.\nBLEServer * pServer = BLEDevice :: createServer ();\nEnsuite, vous créez un service pour le serveur BLE avec l’UUID défini précédemment.\n    BLEService * pService = pServer-&gt; createService (SERVICE_UUID);\nEnsuite, vous définissez la caractéristique pour ce service. Comme vous pouvez le constater, vous utilisez également l’UUID défini précédemment et vous devez transmettre en tant qu’arguments les propriétés de la caractéristique. Dans ce cas, c’est: LIRE et ÉCRIRE.\nBLECharacteristic * pCharacteristic = pService-&gt; createCharacteristic (\n                                     CHARACTERISTIC_UUID,\n                                     BLECaractéristique :: PROPERTY_READ |\n                                     BLECaractéristique :: PROPERTY_WRITE\n                                     )\nAprès avoir créé la caractéristique, vous pouvez définir sa valeur avec setValue () méthode.\npCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\nDans ce cas, nous définissons la valeur sur le texte «Hello World dit Neil». Vous pouvez changer ce texte comme bon vous semble. Dans les projets futurs, ce texte peut être une lecture de capteur, ou l&#39;état d&#39;une lampe, par exemple.\nEnfin, vous pouvez démarrer le service et la publicité afin que d&#39;autres périphériques BLE puissent analyser et trouver ce périphérique BLE.\nBLEAdvertising * pAdvertising = pServer-&gt; getAdvertising ();\npPublicité-&gt; start ();\nCeci est juste un exemple simple sur la façon de créer un serveur BLE. Dans ce code, rien n’est fait dans le boucle(), mais vous pouvez ajouter ce qui se passe lorsqu’un nouveau client se connecte (consultez l’exemple BLE_notify pour obtenir des conseils).\nESP32 BLE Scanner\nCréer un scanner ESP32 BLE est simple. Saisissez un autre ESP32 (pendant que l&#39;autre exécute l&#39;esquisse du serveur BLE). Dans votre IDE Arduino, accédez à Fichier&gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le BLE_scan exemple. Le code suivant devrait charger.\n/ *\n   D&#39;après l&#39;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleScan.cpp\n   Porté sur Arduino ESP32 par Evandro Copercini\n* /","#comprendre \n#comprendre \n#comprendre \n#comprendre","int scanTime = 5; //En secondes\nBLEScan * pBLEScan;","class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks \n    void onResult (BLEAdvertisedDevice annoncisedDevice) \n      Serial.printf (&quot;Appareil annoncé:% s  n&quot;, advertisedDevice.toString (). C_str ());\n    \n;","void setup() \n  Serial.begin (115200);\n  Serial.println (&quot;Numérisation ...&quot;);","  BLEDevice :: init (&quot;&quot;);\n  pBLEScan = BLEDevice :: getScan (); // créer un nouveau scan\n  pBLEScan-&gt; setAdvertisedDeviceCallbacks (new MyAdvertisedDeviceCallbacks ());\n  pBLEScan-&gt; setActiveScan (true); // l&#39;analyse active consomme plus d&#39;énergie, mais permet d&#39;obtenir des résultats plus rapidement\n  pBLEScan-&gt; setInterval (100);\n  pBLEScan-&gt; setWindow (99); // valeur inférieure ou égale à setInterval","boucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  BLEScanResults foundDevices = pBLEScan-&gt; start (scanTime, false);\n  Serial.print (&quot;Périphériques trouvés:&quot;);\n  Serial.println (foundDevices.getCount ());\n  Serial.println (&quot;Scan done!&quot;);\n  pBLEScan-&gt; clearResults (); // efface les résultats de la mémoire tampon BLEScan pour libérer de la mémoire\n  délai (2000);","Voir le code brut\nCe code initialise l&#39;ESP32 en tant que périphérique BLE et recherche les périphériques à proximité. Téléchargez ce code sur votre ESP32. Vous voudrez peut-être déconnecter temporairement l’autre ESP32 de votre ordinateur afin d’être sûr de télécharger le code sur la bonne carte ESP32.\nUne fois le code chargé, vous devez allumer les deux cartes ESP32:","Un ESP32 avec le schéma “BLE_server”;\nAutre avec esquisse ESP32 «BLE_scan».","Accédez au moniteur série avec l’ESP32 exécutant l’exemple «BLE_scan», appuyez sur le bouton «ESP32» (avec l’esquisse «BLE_scan») pour redémarrer et attendez quelques secondes pendant la numérisation.","Le scanner a trouvé deux périphériques: l’un est l’ESP32 (il porte le nom «MyESP32), et l&#39;autre est notre MiBand2.","Test du serveur ESP32 BLE avec votre smartphone\nLa plupart des smartphones modernes devraient avoir des capacités BLE. J&#39;utilise actuellement un OnePlus 5, mais la plupart des smartphones devraient également fonctionner.\nVous pouvez numériser votre serveur ESP32 BLE avec votre smartphone et voir ses services et ses caractéristiques. Pour cela, nous utiliserons une application gratuite appelée nRF Connect pour mobile de Nordic, cela fonctionne sur Android (Google Play Store) et iOS (App Store).\nAccédez au Google Play Store ou à l&#39;App Store et recherchez «nRF Connect for Mobile». Installez l&#39;application et ouvrez-la.","N&#39;oubliez pas d&#39;aller dans les paramètres Bluetooth et d&#39;activer l&#39;adaptateur Bluetooth sur votre smartphone. Vous pouvez également vouloir le rendre visible à d&#39;autres périphériques pour tester d&#39;autres esquisses ultérieurement.","Une fois que tout est prêt dans votre smartphone et que l&#39;ESP32 exécute l&#39;esquisse du serveur BLE, dans l&#39;application, appuyez sur le bouton Rechercher pour rechercher les appareils à proximité. Vous devriez trouver un ESP32 avec le nom “MyESP32”.","Clique le &quot;Relier&quot; bouton.\nComme vous pouvez le voir sur la figure ci-dessous, l’ESP32 dispose d’un service avec l’UUID que vous avez défini précédemment. Si vous appuyez sur le service, le menu s’agrandit et affiche la caractéristique avec l’UUID que vous avez également défini.","La caractéristique a les propriétés READ et WRITE et la valeur est celle que vous avez précédemment définie dans l’esquisse du serveur BLE. Donc, tout fonctionne bien.\nEmballer\nDans ce tutoriel, nous vous avons montré les principes de base de Bluetooth Low Energy et quelques exemples avec l’ESP32. Nous avons exploré l’esquisse du serveur BLE et l’esquisse de numérisation BLE. Ce sont des exemples simples pour vous aider à démarrer avec BLE.\nL&#39;idée est d&#39;utiliser BLE pour envoyer ou recevoir des lectures de capteurs d&#39;autres appareils. Nous publierons davantage de tutoriels et de projets sur BLE avec l’ESP32, alors restez branchés!\nVoici un extrait de notre cours: Apprenez l’ESP32 avec Arduino IDE. Si vous aimez ESP32 et que vous souhaitez en savoir plus à ce sujet, nous vous recommandons de vous inscrire au cours Learn ESP32 with Arduino IDE.\nVous pourriez aussi aimer lire:\nMerci d&#39;avoir lu.\nMis à jour le 16 mai 2019","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"L&#39;ESP32 est livré non seulement avec le Wi-Fi mais également avec Bluetooth et Bluetooth Low Energy (BLE). Cet article est une introduction rapide à BLE avec l’ESP32. Dans un premier temps, nous explorerons ce qui est BLE et comment il peut être utilisé, puis nous examinerons quelques exemples avec l’ESP32 utilisant Arduino IDE. Pour une introduction simple, nous allons créer un serveur ESP32 BLE et un scanner ESP32 BLE pour trouver ce serveur.\nPrésentation de Bluetooth Low Energy\nPour une introduction rapide à BLE, vous pouvez regarder la vidéo ci-dessous ou vous pouvez faire défiler l&#39;écran pour une explication écrite.","html":"<p>L&#039;ESP32 est livré non seulement avec le Wi-Fi mais également avec Bluetooth et Bluetooth Low Energy (BLE). Cet article est une introduction rapide à BLE avec l’ESP32. Dans un premier temps, nous explorerons ce qui est BLE et comment il peut être utilisé, puis nous examinerons quelques exemples avec l’ESP32 utilisant Arduino IDE. Pour une introduction simple, nous allons créer un serveur ESP32 BLE et un scanner ESP32 BLE pour trouver ce serveur.\nPrésentation de Bluetooth Low Energy\nPour une introduction rapide à BLE, vous pouvez regarder la vidéo ci-dessous ou vous pouvez faire défiler l&#039;écran pour une explication écrite.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Lecture recommandée: Apprenez à utiliser l&#39;ESP32 Bluetooth Classic avec Arduino IDE pour échanger des données entre un smartphone ESP32 et un smartphone Android.\nQu&#39;est-ce que Bluetooth Low Energy?\nBluetooth Low Energy, en abrégé BLE, est une variante de Bluetooth à économie d&#39;énergie. La principale application de BLE est la transmission à courte distance de petites quantités de données (faible bande passante). Contrairement à Bluetooth toujours activé, BLE reste en mode veille, sauf lorsqu&#39;une connexion est établie.\nCela fait qu&#39;il consomme très peu d&#39;énergie. BLE consomme environ 100 fois moins d&#39;énergie que Bluetooth (selon le cas d&#39;utilisation).","html":"<p>Lecture recommandée: Apprenez à utiliser l&#039;ESP32 Bluetooth Classic avec Arduino IDE pour échanger des données entre un smartphone ESP32 et un smartphone Android.\nQu&#039;est-ce que Bluetooth Low Energy?\nBluetooth Low Energy, en abrégé BLE, est une variante de Bluetooth à économie d&#039;énergie. La principale application de BLE est la transmission à courte distance de petites quantités de données (faible bande passante). Contrairement à Bluetooth toujours activé, BLE reste en mode veille, sauf lorsqu&#039;une connexion est établie.\nCela fait qu&#039;il consomme très peu d&#039;énergie. BLE consomme environ 100 fois moins d&#039;énergie que Bluetooth (selon le cas d&#039;utilisation).</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"De plus, BLE prend en charge non seulement la communication point à point, mais également le mode de diffusion et le réseau maillé.\nRegardez le tableau ci-dessous qui compare BLE et Bluetooth Classic de manière plus détaillée.","html":"<p>De plus, BLE prend en charge non seulement la communication point à point, mais également le mode de diffusion et le réseau maillé.\nRegardez le tableau ci-dessous qui compare BLE et Bluetooth Classic de manière plus détaillée.</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Voir l&#39;image Souce\nEn raison de ses propriétés, BLE convient aux applications qui doivent échanger de petites quantités de données fonctionnant périodiquement sur une pile bouton. Par exemple, BLE est très utile dans les secteurs de la santé, de la forme physique, du suivi, des balises, de la sécurité et de la domotique.","html":"<p>Voir l&#039;image Souce\nEn raison de ses propriétés, BLE convient aux applications qui doivent échanger de petites quantités de données fonctionnant périodiquement sur une pile bouton. Par exemple, BLE est très utile dans les secteurs de la santé, de la forme physique, du suivi, des balises, de la sécurité et de la domotique.</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"BLE Server et Client\nAvec Bluetooth Low Energy, il existe deux types de périphériques: le serveur et le client. L&#39;ESP32 peut agir en tant que client ou en tant que serveur.\nLe serveur annonce son existence afin qu&#39;il puisse être trouvé par d&#39;autres périphériques et contient les données que le client peut lire. Le client analyse les périphériques à proximité et, lorsqu&#39;il trouve le serveur recherché, il établit une connexion et écoute les données entrantes. Cela s&#39;appelle une communication point à point.","html":"<p>BLE Server et Client\nAvec Bluetooth Low Energy, il existe deux types de périphériques: le serveur et le client. L&#039;ESP32 peut agir en tant que client ou en tant que serveur.\nLe serveur annonce son existence afin qu&#039;il puisse être trouvé par d&#039;autres périphériques et contient les données que le client peut lire. Le client analyse les périphériques à proximité et, lorsqu&#039;il trouve le serveur recherché, il établit une connexion et écoute les données entrantes. Cela s&#039;appelle une communication point à point.</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Comme mentionné précédemment, BLE prend également en charge le mode de diffusion et le réseau maillé:","html":"<p>Comme mentionné précédemment, BLE prend également en charge le mode de diffusion et le réseau maillé:</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"Mode de diffusion: le serveur transmet les données à plusieurs clients connectés;\nRéseau maillé: tous les appareils sont connectés, il s&#39;agit d&#39;une connexion plusieurs à plusieurs.","html":"<p>Mode de diffusion: le serveur transmet les données à plusieurs clients connectés;\nRéseau maillé: tous les appareils sont connectés, il s&#039;agit d&#039;une connexion plusieurs à plusieurs.</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"Même si les configurations de réseau de diffusion et de maillage sont possibles à mettre en œuvre, elles ont été développées très récemment. Il n’ya donc pas beaucoup d’exemples mis en œuvre pour l’ESP32 pour le moment.\nGATT\nGATT est synonyme d&#39;attributs génériques et définit une structure de données hiérarchique exposée aux périphériques BLE connectés. Cela signifie que le GATT définit la manière dont deux appareils BLE envoient et reçoivent des messages standard. Il est important de comprendre cette hiérarchie, car cela facilitera la compréhension de l’utilisation de BLE et de l’écriture de vos applications.","html":"<p>Même si les configurations de réseau de diffusion et de maillage sont possibles à mettre en œuvre, elles ont été développées très récemment. Il n’ya donc pas beaucoup d’exemples mis en œuvre pour l’ESP32 pour le moment.\nGATT\nGATT est synonyme d&#039;attributs génériques et définit une structure de données hiérarchique exposée aux périphériques BLE connectés. Cela signifie que le GATT définit la manière dont deux appareils BLE envoient et reçoivent des messages standard. Il est important de comprendre cette hiérarchie, car cela facilitera la compréhension de l’utilisation de BLE et de l’écriture de vos applications.</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"Service BLE\nLe niveau supérieur de la hiérarchie est un profil, composé d&#39;un ou de plusieurs services. En règle générale, un périphérique BLE contient plusieurs services.\nChaque service contient au moins une caractéristique ou peut également faire référence à d&#39;autres services. Un service est simplement un ensemble d&#39;informations, comme des lectures de capteurs, par exemple. \nIl existe des services prédéfinis pour plusieurs types de données définis par le SIG (groupe d&#39;intérêt spécial Bluetooth), tels que: Niveau de la batterie, Pression artérielle, Fréquence cardiaque, Pèse-personne, etc. Vous pouvez consulter ici d&#39;autres services définis.","html":"<p>Service BLE\nLe niveau supérieur de la hiérarchie est un profil, composé d&#039;un ou de plusieurs services. En règle générale, un périphérique BLE contient plusieurs services.\nChaque service contient au moins une caractéristique ou peut également faire référence à d&#039;autres services. Un service est simplement un ensemble d&#039;informations, comme des lectures de capteurs, par exemple. \nIl existe des services prédéfinis pour plusieurs types de données définis par le SIG (groupe d&#039;intérêt spécial Bluetooth), tels que: Niveau de la batterie, Pression artérielle, Fréquence cardiaque, Pèse-personne, etc. Vous pouvez consulter ici d&#039;autres services définis.</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Voir l&#39;image Souce\nBLE Caractéristique\nLa caractéristique appartient toujours à un service et c’est là que les données réelles sont contenues dans la hiérarchie (valeur). La caractéristique a toujours deux attributs: la déclaration de la caractéristique (qui fournit des métadonnées sur les données) et la valeur de la caractéristique.\nDe plus, la valeur de caractéristique peut être suivie de descripteurs, qui développent davantage les métadonnées contenues dans la déclaration de caractéristique.\nLes propriétés décrivent comment la valeur de caractéristique peut être interagie. Fondamentalement, il contient les opérations et les procédures pouvant être utilisées avec la caractéristique:","html":"<p>Voir l&#039;image Souce\nBLE Caractéristique\nLa caractéristique appartient toujours à un service et c’est là que les données réelles sont contenues dans la hiérarchie (valeur). La caractéristique a toujours deux attributs: la déclaration de la caractéristique (qui fournit des métadonnées sur les données) et la valeur de la caractéristique.\nDe plus, la valeur de caractéristique peut être suivie de descripteurs, qui développent davantage les métadonnées contenues dans la déclaration de caractéristique.\nLes propriétés décrivent comment la valeur de caractéristique peut être interagie. Fondamentalement, il contient les opérations et les procédures pouvant être utilisées avec la caractéristique:</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"Diffuser\nLis\nÉcrire sans réponse\nÉcrire\nNotifier\nIndiquer\nÉcrit Signé Authentifié\nPropriétés étendues","html":"<p>Diffuser\nLis\nÉcrire sans réponse\nÉcrire\nNotifier\nIndiquer\nÉcrit Signé Authentifié\nPropriétés étendues</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"UUID\nChaque service, caractéristique et descripteur possède un UUID (identificateur unique universel). Un UUID est un numéro unique de 128 bits (16 octets). Par exemple:\n55072829-bc9e-4c53-938a-74a6d4c78776\nIl existe des UUID raccourcis pour tous les types, services et profils spécifiés dans le SIG (groupe d&#39;intérêt spécial Bluetooth).\nMais si votre application a besoin de son propre UUID, vous pouvez le générer à l&#39;aide de ce site Web de générateur d&#39;UUID.\nEn résumé, l&#39;UUID est utilisé pour identifier les informations de manière unique. Par exemple, il peut identifier un service particulier fourni par un périphérique Bluetooth.\nBLE avec ESP32\nL&#39;ESP32 peut agir en tant que serveur BLE ou en tant que client BLE. Il existe plusieurs exemples BLE pour l&#39;ESP32 dans la bibliothèque ESP32 BLE pour Arduino IDE. Cette bibliothèque est installée par défaut lorsque vous installez l’ESP32 sur l’EDI Arduino.\nRemarque: Le module complémentaire ESP32 doit être installé sur l&#39;IDE Arduino. Suivez l’un des prochains tutoriels pour préparer votre IDE Arduino à fonctionner avec l’ESP32, si ce n’est déjà fait.\nDans votre IDE Arduino, vous pouvez aller sur Fichier &gt; Exemples &gt; ESP32 BLE Arduino et explorez les exemples fournis avec la bibliothèque BLE.","html":"<p>UUID\nChaque service, caractéristique et descripteur possède un UUID (identificateur unique universel). Un UUID est un numéro unique de 128 bits (16 octets). Par exemple:\n55072829-bc9e-4c53-938a-74a6d4c78776\nIl existe des UUID raccourcis pour tous les types, services et profils spécifiés dans le SIG (groupe d&#039;intérêt spécial Bluetooth).\nMais si votre application a besoin de son propre UUID, vous pouvez le générer à l&#039;aide de ce site Web de générateur d&#039;UUID.\nEn résumé, l&#039;UUID est utilisé pour identifier les informations de manière unique. Par exemple, il peut identifier un service particulier fourni par un périphérique Bluetooth.\nBLE avec ESP32\nL&#039;ESP32 peut agir en tant que serveur BLE ou en tant que client BLE. Il existe plusieurs exemples BLE pour l&#039;ESP32 dans la bibliothèque ESP32 BLE pour Arduino IDE. Cette bibliothèque est installée par défaut lorsque vous installez l’ESP32 sur l’EDI Arduino.\nRemarque: Le module complémentaire ESP32 doit être installé sur l&#039;IDE Arduino. Suivez l’un des prochains tutoriels pour préparer votre IDE Arduino à fonctionner avec l’ESP32, si ce n’est déjà fait.\nDans votre IDE Arduino, vous pouvez aller sur Fichier &gt; Exemples &gt; ESP32 BLE Arduino et explorez les exemples fournis avec la bibliothèque BLE.</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"Remarque: pour voir les exemples ESP32, vous devez avoir sélectionné la carte ESP32 sur Outils &gt; Planche.\nPour une brève introduction à l&#39;ESP32 avec BLE sur l&#39;IDE Arduino, nous allons créer un serveur ESP32 BLE, puis un scanner ESP32 BLE pour trouver ce serveur. Nous allons utiliser et expliquer les exemples fournis avec la bibliothèque BLE.\nPour suivre cet exemple, vous avez besoin de deux cartes de développement ESP32. Nous allons utiliser la carte ESP32 DOIT DEVKIT V1.\nServeur ESP32 BLE\nPour créer un serveur ESP32 BLE, ouvrez votre IDE Arduino et accédez à Fichier &gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le Serveur BLE exemple. Le code suivant devrait charger:\n/ *\n    D&#39;après l&#39;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleServer.cpp\n    Porté sur Arduino ESP32 par Evandro Copercini\n    mises à jour par chegewara\n* /","html":"<p>Remarque: pour voir les exemples ESP32, vous devez avoir sélectionné la carte ESP32 sur Outils &gt; Planche.\nPour une brève introduction à l&#039;ESP32 avec BLE sur l&#039;IDE Arduino, nous allons créer un serveur ESP32 BLE, puis un scanner ESP32 BLE pour trouver ce serveur. Nous allons utiliser et expliquer les exemples fournis avec la bibliothèque BLE.\nPour suivre cet exemple, vous avez besoin de deux cartes de développement ESP32. Nous allons utiliser la carte ESP32 DOIT DEVKIT V1.\nServeur ESP32 BLE\nPour créer un serveur ESP32 BLE, ouvrez votre IDE Arduino et accédez à Fichier &gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le Serveur BLE exemple. Le code suivant devrait charger:\n/ *\n    D&#039;après l&#039;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleServer.cpp\n    Porté sur Arduino ESP32 par Evandro Copercini\n    mises à jour par chegewara\n* /</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"#comprendre \n#comprendre \n#comprendre","html":"<p>#comprendre \n#comprendre \n#comprendre</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"// Voir ce qui suit pour générer des UUID:\n// https://www.uuidgenerator.net/","html":"<p>// Voir ce qui suit pour générer des UUID:\n// https://www.uuidgenerator.net/</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;","html":"<p>#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"void setup() \n                                         BLECaractéristique :: PROPERTY_WRITE\n                                       )","html":"<p>void setup() \n                                         BLECaractéristique :: PROPERTY_WRITE\n                                       )</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"  pCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\n  pService-&gt; start ();\n  // BLEAdvertising * pAdvertising = pServer-&gt; getAdvertising (); // cela fonctionne toujours pour la compatibilité ascendante\n  BLEAdvertising * pAdvertising = BLEDevice :: getAdvertising ();\n  pAdvertising-&gt; addServiceUUID (SERVICE_UUID);\n  pAdvertising-&gt; setScanResponse (true);\n  pAdvertising-&gt; setMinPreferred (0x06); // fonctions qui aident avec le problème des connexions iPhone\n  pAdvertising-&gt; setMinPreferred (0x12);\n  BLEDevice :: startAdvertising ();\n  Serial.println (&quot;Caractéristique définie! Vous pouvez maintenant la lire dans votre téléphone!&quot;);","html":"<p>  pCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\n  pService-&gt; start ();\n  // BLEAdvertising * pAdvertising = pServer-&gt; getAdvertising (); // cela fonctionne toujours pour la compatibilité ascendante\n  BLEAdvertising * pAdvertising = BLEDevice :: getAdvertising ();\n  pAdvertising-&gt; addServiceUUID (SERVICE_UUID);\n  pAdvertising-&gt; setScanResponse (true);\n  pAdvertising-&gt; setMinPreferred (0x06); // fonctions qui aident avec le problème des connexions iPhone\n  pAdvertising-&gt; setMinPreferred (0x12);\n  BLEDevice :: startAdvertising ();\n  Serial.println (&quot;Caractéristique définie! Vous pouvez maintenant la lire dans votre téléphone!&quot;);</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"boucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  délai (2000);","html":"<p>boucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  délai (2000);</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"Voir le code brut\nPour créer un serveur BLE, le code doit suivre les étapes suivantes:","html":"<p>Voir le code brut\nPour créer un serveur BLE, le code doit suivre les étapes suivantes:</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"Créez un serveur BLE. Dans ce cas, l&#39;ESP32 agit en tant que serveur BLE.\nCréer un service BLE.\n  Créer une caractéristique BLE sur le service.\nCréez un descripteur BLE sur la caractéristique.\nDémarrer le service.\n  Commencez la publicité pour qu&#39;elle puisse être trouvée par d&#39;autres appareils.","html":"<p>Créez un serveur BLE. Dans ce cas, l&#039;ESP32 agit en tant que serveur BLE.\nCréer un service BLE.\n  Créer une caractéristique BLE sur le service.\nCréez un descripteur BLE sur la caractéristique.\nDémarrer le service.\n  Commencez la publicité pour qu&#039;elle puisse être trouvée par d&#039;autres appareils.</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"Comment fonctionne le code\nJetons un coup d’œil sur le fonctionnement de l’exemple de code de serveur BLE.\nIl commence par importer les bibliothèques nécessaires aux capacités BLE.\n#comprendre \n#comprendre \n#comprendre \nEnsuite, vous devez définir un UUID pour le service et la caractéristique.\n#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;\nVous pouvez laisser les UUID par défaut ou vous rendre sur uuidgenerator.net pour créer des UUID aléatoires pour vos services et caractéristiques.\ndans le installer(), la communication série commence à un débit en bauds de 115200.\nSerial.begin (115200);\nEnsuite, vous créez un périphérique BLE appelé “MyESP32”. Vous pouvez changer ce nom en ce que vous voulez.\n// Créer le périphérique BLE\nBLEDevice :: init (&quot;MyESP32&quot;);\nDans la ligne suivante, vous définissez le périphérique BLE en tant que serveur.\nBLEServer * pServer = BLEDevice :: createServer ();\nEnsuite, vous créez un service pour le serveur BLE avec l’UUID défini précédemment.\n    BLEService * pService = pServer-&gt; createService (SERVICE_UUID);\nEnsuite, vous définissez la caractéristique pour ce service. Comme vous pouvez le constater, vous utilisez également l’UUID défini précédemment et vous devez transmettre en tant qu’arguments les propriétés de la caractéristique. Dans ce cas, c’est: LIRE et ÉCRIRE.\nBLECharacteristic * pCharacteristic = pService-&gt; createCharacteristic (\n                                     CHARACTERISTIC_UUID,\n                                     BLECaractéristique :: PROPERTY_READ |\n                                     BLECaractéristique :: PROPERTY_WRITE\n                                     )\nAprès avoir créé la caractéristique, vous pouvez définir sa valeur avec setValue () méthode.\npCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\nDans ce cas, nous définissons la valeur sur le texte «Hello World dit Neil». Vous pouvez changer ce texte comme bon vous semble. Dans les projets futurs, ce texte peut être une lecture de capteur, ou l&#39;état d&#39;une lampe, par exemple.\nEnfin, vous pouvez démarrer le service et la publicité afin que d&#39;autres périphériques BLE puissent analyser et trouver ce périphérique BLE.\nBLEAdvertising * pAdvertising = pServer-&gt; getAdvertising ();\npPublicité-&gt; start ();\nCeci est juste un exemple simple sur la façon de créer un serveur BLE. Dans ce code, rien n’est fait dans le boucle(), mais vous pouvez ajouter ce qui se passe lorsqu’un nouveau client se connecte (consultez l’exemple BLE_notify pour obtenir des conseils).\nESP32 BLE Scanner\nCréer un scanner ESP32 BLE est simple. Saisissez un autre ESP32 (pendant que l&#39;autre exécute l&#39;esquisse du serveur BLE). Dans votre IDE Arduino, accédez à Fichier&gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le BLE_scan exemple. Le code suivant devrait charger.\n/ *\n   D&#39;après l&#39;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleScan.cpp\n   Porté sur Arduino ESP32 par Evandro Copercini\n* /","html":"<p>Comment fonctionne le code\nJetons un coup d’œil sur le fonctionnement de l’exemple de code de serveur BLE.\nIl commence par importer les bibliothèques nécessaires aux capacités BLE.\n#comprendre \n#comprendre \n#comprendre \nEnsuite, vous devez définir un UUID pour le service et la caractéristique.\n#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;\nVous pouvez laisser les UUID par défaut ou vous rendre sur uuidgenerator.net pour créer des UUID aléatoires pour vos services et caractéristiques.\ndans le installer(), la communication série commence à un débit en bauds de 115200.\nSerial.begin (115200);\nEnsuite, vous créez un périphérique BLE appelé “MyESP32”. Vous pouvez changer ce nom en ce que vous voulez.\n// Créer le périphérique BLE\nBLEDevice :: init (&quot;MyESP32&quot;);\nDans la ligne suivante, vous définissez le périphérique BLE en tant que serveur.\nBLEServer * pServer = BLEDevice :: createServer ();\nEnsuite, vous créez un service pour le serveur BLE avec l’UUID défini précédemment.\n    BLEService * pService = pServer-&gt; createService (SERVICE_UUID);\nEnsuite, vous définissez la caractéristique pour ce service. Comme vous pouvez le constater, vous utilisez également l’UUID défini précédemment et vous devez transmettre en tant qu’arguments les propriétés de la caractéristique. Dans ce cas, c’est: LIRE et ÉCRIRE.\nBLECharacteristic * pCharacteristic = pService-&gt; createCharacteristic (\n                                     CHARACTERISTIC_UUID,\n                                     BLECaractéristique :: PROPERTY_READ |\n                                     BLECaractéristique :: PROPERTY_WRITE\n                                     )\nAprès avoir créé la caractéristique, vous pouvez définir sa valeur avec setValue () méthode.\npCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\nDans ce cas, nous définissons la valeur sur le texte «Hello World dit Neil». Vous pouvez changer ce texte comme bon vous semble. Dans les projets futurs, ce texte peut être une lecture de capteur, ou l&#039;état d&#039;une lampe, par exemple.\nEnfin, vous pouvez démarrer le service et la publicité afin que d&#039;autres périphériques BLE puissent analyser et trouver ce périphérique BLE.\nBLEAdvertising * pAdvertising = pServer-&gt; getAdvertising ();\npPublicité-&gt; start ();\nCeci est juste un exemple simple sur la façon de créer un serveur BLE. Dans ce code, rien n’est fait dans le boucle(), mais vous pouvez ajouter ce qui se passe lorsqu’un nouveau client se connecte (consultez l’exemple BLE_notify pour obtenir des conseils).\nESP32 BLE Scanner\nCréer un scanner ESP32 BLE est simple. Saisissez un autre ESP32 (pendant que l&#039;autre exécute l&#039;esquisse du serveur BLE). Dans votre IDE Arduino, accédez à Fichier&gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le BLE_scan exemple. Le code suivant devrait charger.\n/ *\n   D&#039;après l&#039;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleScan.cpp\n   Porté sur Arduino ESP32 par Evandro Copercini\n* /</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"#comprendre \n#comprendre \n#comprendre \n#comprendre","html":"<p>#comprendre \n#comprendre \n#comprendre \n#comprendre</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"int scanTime = 5; //En secondes\nBLEScan * pBLEScan;","html":"<p>int scanTime = 5; //En secondes\nBLEScan * pBLEScan;</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks \n    void onResult (BLEAdvertisedDevice annoncisedDevice) \n      Serial.printf (&quot;Appareil annoncé:% s  n&quot;, advertisedDevice.toString (). C_str ());\n    \n;","html":"<p>class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks \n    void onResult (BLEAdvertisedDevice annoncisedDevice) \n      Serial.printf (&quot;Appareil annoncé:% s  n&quot;, advertisedDevice.toString (). C_str ());\n    \n;</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"void setup() \n  Serial.begin (115200);\n  Serial.println (&quot;Numérisation ...&quot;);","html":"<p>void setup() \n  Serial.begin (115200);\n  Serial.println (&quot;Numérisation ...&quot;);</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"  BLEDevice :: init (&quot;&quot;);\n  pBLEScan = BLEDevice :: getScan (); // créer un nouveau scan\n  pBLEScan-&gt; setAdvertisedDeviceCallbacks (new MyAdvertisedDeviceCallbacks ());\n  pBLEScan-&gt; setActiveScan (true); // l&#39;analyse active consomme plus d&#39;énergie, mais permet d&#39;obtenir des résultats plus rapidement\n  pBLEScan-&gt; setInterval (100);\n  pBLEScan-&gt; setWindow (99); // valeur inférieure ou égale à setInterval","html":"<p>  BLEDevice :: init (&quot;&quot;);\n  pBLEScan = BLEDevice :: getScan (); // créer un nouveau scan\n  pBLEScan-&gt; setAdvertisedDeviceCallbacks (new MyAdvertisedDeviceCallbacks ());\n  pBLEScan-&gt; setActiveScan (true); // l&#039;analyse active consomme plus d&#039;énergie, mais permet d&#039;obtenir des résultats plus rapidement\n  pBLEScan-&gt; setInterval (100);\n  pBLEScan-&gt; setWindow (99); // valeur inférieure ou égale à setInterval</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"boucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  BLEScanResults foundDevices = pBLEScan-&gt; start (scanTime, false);\n  Serial.print (&quot;Périphériques trouvés:&quot;);\n  Serial.println (foundDevices.getCount ());\n  Serial.println (&quot;Scan done!&quot;);\n  pBLEScan-&gt; clearResults (); // efface les résultats de la mémoire tampon BLEScan pour libérer de la mémoire\n  délai (2000);","html":"<p>boucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  BLEScanResults foundDevices = pBLEScan-&gt; start (scanTime, false);\n  Serial.print (&quot;Périphériques trouvés:&quot;);\n  Serial.println (foundDevices.getCount ());\n  Serial.println (&quot;Scan done!&quot;);\n  pBLEScan-&gt; clearResults (); // efface les résultats de la mémoire tampon BLEScan pour libérer de la mémoire\n  délai (2000);</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"Voir le code brut\nCe code initialise l&#39;ESP32 en tant que périphérique BLE et recherche les périphériques à proximité. Téléchargez ce code sur votre ESP32. Vous voudrez peut-être déconnecter temporairement l’autre ESP32 de votre ordinateur afin d’être sûr de télécharger le code sur la bonne carte ESP32.\nUne fois le code chargé, vous devez allumer les deux cartes ESP32:","html":"<p>Voir le code brut\nCe code initialise l&#039;ESP32 en tant que périphérique BLE et recherche les périphériques à proximité. Téléchargez ce code sur votre ESP32. Vous voudrez peut-être déconnecter temporairement l’autre ESP32 de votre ordinateur afin d’être sûr de télécharger le code sur la bonne carte ESP32.\nUne fois le code chargé, vous devez allumer les deux cartes ESP32:</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"Un ESP32 avec le schéma “BLE_server”;\nAutre avec esquisse ESP32 «BLE_scan».","html":"<p>Un ESP32 avec le schéma “BLE_server”;\nAutre avec esquisse ESP32 «BLE_scan».</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"Accédez au moniteur série avec l’ESP32 exécutant l’exemple «BLE_scan», appuyez sur le bouton «ESP32» (avec l’esquisse «BLE_scan») pour redémarrer et attendez quelques secondes pendant la numérisation.","html":"<p>Accédez au moniteur série avec l’ESP32 exécutant l’exemple «BLE_scan», appuyez sur le bouton «ESP32» (avec l’esquisse «BLE_scan») pour redémarrer et attendez quelques secondes pendant la numérisation.</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"Le scanner a trouvé deux périphériques: l’un est l’ESP32 (il porte le nom «MyESP32), et l&#39;autre est notre MiBand2.","html":"<p>Le scanner a trouvé deux périphériques: l’un est l’ESP32 (il porte le nom «MyESP32), et l&#039;autre est notre MiBand2.</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"Test du serveur ESP32 BLE avec votre smartphone\nLa plupart des smartphones modernes devraient avoir des capacités BLE. J&#39;utilise actuellement un OnePlus 5, mais la plupart des smartphones devraient également fonctionner.\nVous pouvez numériser votre serveur ESP32 BLE avec votre smartphone et voir ses services et ses caractéristiques. Pour cela, nous utiliserons une application gratuite appelée nRF Connect pour mobile de Nordic, cela fonctionne sur Android (Google Play Store) et iOS (App Store).\nAccédez au Google Play Store ou à l&#39;App Store et recherchez «nRF Connect for Mobile». Installez l&#39;application et ouvrez-la.","html":"<p>Test du serveur ESP32 BLE avec votre smartphone\nLa plupart des smartphones modernes devraient avoir des capacités BLE. J&#039;utilise actuellement un OnePlus 5, mais la plupart des smartphones devraient également fonctionner.\nVous pouvez numériser votre serveur ESP32 BLE avec votre smartphone et voir ses services et ses caractéristiques. Pour cela, nous utiliserons une application gratuite appelée nRF Connect pour mobile de Nordic, cela fonctionne sur Android (Google Play Store) et iOS (App Store).\nAccédez au Google Play Store ou à l&#039;App Store et recherchez «nRF Connect for Mobile». Installez l&#039;application et ouvrez-la.</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"N&#39;oubliez pas d&#39;aller dans les paramètres Bluetooth et d&#39;activer l&#39;adaptateur Bluetooth sur votre smartphone. Vous pouvez également vouloir le rendre visible à d&#39;autres périphériques pour tester d&#39;autres esquisses ultérieurement.","html":"<p>N&#039;oubliez pas d&#039;aller dans les paramètres Bluetooth et d&#039;activer l&#039;adaptateur Bluetooth sur votre smartphone. Vous pouvez également vouloir le rendre visible à d&#039;autres périphériques pour tester d&#039;autres esquisses ultérieurement.</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"Une fois que tout est prêt dans votre smartphone et que l&#39;ESP32 exécute l&#39;esquisse du serveur BLE, dans l&#39;application, appuyez sur le bouton Rechercher pour rechercher les appareils à proximité. Vous devriez trouver un ESP32 avec le nom “MyESP32”.","html":"<p>Une fois que tout est prêt dans votre smartphone et que l&#039;ESP32 exécute l&#039;esquisse du serveur BLE, dans l&#039;application, appuyez sur le bouton Rechercher pour rechercher les appareils à proximité. Vous devriez trouver un ESP32 avec le nom “MyESP32”.</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"Clique le &quot;Relier&quot; bouton.\nComme vous pouvez le voir sur la figure ci-dessous, l’ESP32 dispose d’un service avec l’UUID que vous avez défini précédemment. Si vous appuyez sur le service, le menu s’agrandit et affiche la caractéristique avec l’UUID que vous avez également défini.","html":"<p>Clique le &quot;Relier&quot; bouton.\nComme vous pouvez le voir sur la figure ci-dessous, l’ESP32 dispose d’un service avec l’UUID que vous avez défini précédemment. Si vous appuyez sur le service, le menu s’agrandit et affiche la caractéristique avec l’UUID que vous avez également défini.</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"La caractéristique a les propriétés READ et WRITE et la valeur est celle que vous avez précédemment définie dans l’esquisse du serveur BLE. Donc, tout fonctionne bien.\nEmballer\nDans ce tutoriel, nous vous avons montré les principes de base de Bluetooth Low Energy et quelques exemples avec l’ESP32. Nous avons exploré l’esquisse du serveur BLE et l’esquisse de numérisation BLE. Ce sont des exemples simples pour vous aider à démarrer avec BLE.\nL&#39;idée est d&#39;utiliser BLE pour envoyer ou recevoir des lectures de capteurs d&#39;autres appareils. Nous publierons davantage de tutoriels et de projets sur BLE avec l’ESP32, alors restez branchés!\nVoici un extrait de notre cours: Apprenez l’ESP32 avec Arduino IDE. Si vous aimez ESP32 et que vous souhaitez en savoir plus à ce sujet, nous vous recommandons de vous inscrire au cours Learn ESP32 with Arduino IDE.\nVous pourriez aussi aimer lire:\nMerci d&#39;avoir lu.\nMis à jour le 16 mai 2019","html":"<p>La caractéristique a les propriétés READ et WRITE et la valeur est celle que vous avez précédemment définie dans l’esquisse du serveur BLE. Donc, tout fonctionne bien.\nEmballer\nDans ce tutoriel, nous vous avons montré les principes de base de Bluetooth Low Energy et quelques exemples avec l’ESP32. Nous avons exploré l’esquisse du serveur BLE et l’esquisse de numérisation BLE. Ce sont des exemples simples pour vous aider à démarrer avec BLE.\nL&#039;idée est d&#039;utiliser BLE pour envoyer ou recevoir des lectures de capteurs d&#039;autres appareils. Nous publierons davantage de tutoriels et de projets sur BLE avec l’ESP32, alors restez branchés!\nVoici un extrait de notre cours: Apprenez l’ESP32 avec Arduino IDE. Si vous aimez ESP32 et que vous souhaitez en savoir plus à ce sujet, nous vous recommandons de vous inscrire au cours Learn ESP32 with Arduino IDE.\nVous pourriez aussi aimer lire:\nMerci d&#039;avoir lu.\nMis à jour le 16 mai 2019</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"L&#39;ESP32 est livré non seulement avec le Wi-Fi mais également avec Bluetooth et Bluetooth Low Energy (BLE). Cet article est une introduction rapide à BLE avec l’ESP32. Dans un premier temps, nous explorerons ce qui est BLE et comment il peut être utilisé, puis nous examinerons quelques exemples avec l’ESP32 utilisant Arduino IDE. Pour une introduction simple, nous allons créer un serveur ESP32 BLE et un scanner ESP32 BLE pour trouver ce serveur.\nPrésentation de Bluetooth Low Energy\nPour une introduction rapide à BLE, vous pouvez regarder la vidéo ci-dessous ou vous pouvez faire défiler l&#39;écran pour une explication écrite."},{"id":"text-2","heading":"Text","content":"Lecture recommandée: Apprenez à utiliser l&#39;ESP32 Bluetooth Classic avec Arduino IDE pour échanger des données entre un smartphone ESP32 et un smartphone Android.\nQu&#39;est-ce que Bluetooth Low Energy?\nBluetooth Low Energy, en abrégé BLE, est une variante de Bluetooth à économie d&#39;énergie. La principale application de BLE est la transmission à courte distance de petites quantités de données (faible bande passante). Contrairement à Bluetooth toujours activé, BLE reste en mode veille, sauf lorsqu&#39;une connexion est établie.\nCela fait qu&#39;il consomme très peu d&#39;énergie. BLE consomme environ 100 fois moins d&#39;énergie que Bluetooth (selon le cas d&#39;utilisation)."},{"id":"text-3","heading":"Text","content":"De plus, BLE prend en charge non seulement la communication point à point, mais également le mode de diffusion et le réseau maillé.\nRegardez le tableau ci-dessous qui compare BLE et Bluetooth Classic de manière plus détaillée."},{"id":"text-4","heading":"Text","content":"Voir l&#39;image Souce\nEn raison de ses propriétés, BLE convient aux applications qui doivent échanger de petites quantités de données fonctionnant périodiquement sur une pile bouton. Par exemple, BLE est très utile dans les secteurs de la santé, de la forme physique, du suivi, des balises, de la sécurité et de la domotique."},{"id":"text-5","heading":"Text","content":"BLE Server et Client\nAvec Bluetooth Low Energy, il existe deux types de périphériques: le serveur et le client. L&#39;ESP32 peut agir en tant que client ou en tant que serveur.\nLe serveur annonce son existence afin qu&#39;il puisse être trouvé par d&#39;autres périphériques et contient les données que le client peut lire. Le client analyse les périphériques à proximité et, lorsqu&#39;il trouve le serveur recherché, il établit une connexion et écoute les données entrantes. Cela s&#39;appelle une communication point à point."},{"id":"text-6","heading":"Text","content":"Comme mentionné précédemment, BLE prend également en charge le mode de diffusion et le réseau maillé:"},{"id":"text-7","heading":"Text","content":"Mode de diffusion: le serveur transmet les données à plusieurs clients connectés;\nRéseau maillé: tous les appareils sont connectés, il s&#39;agit d&#39;une connexion plusieurs à plusieurs."},{"id":"text-8","heading":"Text","content":"Même si les configurations de réseau de diffusion et de maillage sont possibles à mettre en œuvre, elles ont été développées très récemment. Il n’ya donc pas beaucoup d’exemples mis en œuvre pour l’ESP32 pour le moment.\nGATT\nGATT est synonyme d&#39;attributs génériques et définit une structure de données hiérarchique exposée aux périphériques BLE connectés. Cela signifie que le GATT définit la manière dont deux appareils BLE envoient et reçoivent des messages standard. Il est important de comprendre cette hiérarchie, car cela facilitera la compréhension de l’utilisation de BLE et de l’écriture de vos applications."},{"id":"text-9","heading":"Text","content":"Service BLE\nLe niveau supérieur de la hiérarchie est un profil, composé d&#39;un ou de plusieurs services. En règle générale, un périphérique BLE contient plusieurs services.\nChaque service contient au moins une caractéristique ou peut également faire référence à d&#39;autres services. Un service est simplement un ensemble d&#39;informations, comme des lectures de capteurs, par exemple. \nIl existe des services prédéfinis pour plusieurs types de données définis par le SIG (groupe d&#39;intérêt spécial Bluetooth), tels que: Niveau de la batterie, Pression artérielle, Fréquence cardiaque, Pèse-personne, etc. Vous pouvez consulter ici d&#39;autres services définis."},{"id":"text-10","heading":"Text","content":"Voir l&#39;image Souce\nBLE Caractéristique\nLa caractéristique appartient toujours à un service et c’est là que les données réelles sont contenues dans la hiérarchie (valeur). La caractéristique a toujours deux attributs: la déclaration de la caractéristique (qui fournit des métadonnées sur les données) et la valeur de la caractéristique.\nDe plus, la valeur de caractéristique peut être suivie de descripteurs, qui développent davantage les métadonnées contenues dans la déclaration de caractéristique.\nLes propriétés décrivent comment la valeur de caractéristique peut être interagie. Fondamentalement, il contient les opérations et les procédures pouvant être utilisées avec la caractéristique:"},{"id":"text-11","heading":"Text","content":"Diffuser\nLis\nÉcrire sans réponse\nÉcrire\nNotifier\nIndiquer\nÉcrit Signé Authentifié\nPropriétés étendues"},{"id":"text-12","heading":"Text","content":"UUID\nChaque service, caractéristique et descripteur possède un UUID (identificateur unique universel). Un UUID est un numéro unique de 128 bits (16 octets). Par exemple:\n55072829-bc9e-4c53-938a-74a6d4c78776\nIl existe des UUID raccourcis pour tous les types, services et profils spécifiés dans le SIG (groupe d&#39;intérêt spécial Bluetooth).\nMais si votre application a besoin de son propre UUID, vous pouvez le générer à l&#39;aide de ce site Web de générateur d&#39;UUID.\nEn résumé, l&#39;UUID est utilisé pour identifier les informations de manière unique. Par exemple, il peut identifier un service particulier fourni par un périphérique Bluetooth.\nBLE avec ESP32\nL&#39;ESP32 peut agir en tant que serveur BLE ou en tant que client BLE. Il existe plusieurs exemples BLE pour l&#39;ESP32 dans la bibliothèque ESP32 BLE pour Arduino IDE. Cette bibliothèque est installée par défaut lorsque vous installez l’ESP32 sur l’EDI Arduino.\nRemarque: Le module complémentaire ESP32 doit être installé sur l&#39;IDE Arduino. Suivez l’un des prochains tutoriels pour préparer votre IDE Arduino à fonctionner avec l’ESP32, si ce n’est déjà fait.\nDans votre IDE Arduino, vous pouvez aller sur Fichier &gt; Exemples &gt; ESP32 BLE Arduino et explorez les exemples fournis avec la bibliothèque BLE."},{"id":"text-13","heading":"Text","content":"Remarque: pour voir les exemples ESP32, vous devez avoir sélectionné la carte ESP32 sur Outils &gt; Planche.\nPour une brève introduction à l&#39;ESP32 avec BLE sur l&#39;IDE Arduino, nous allons créer un serveur ESP32 BLE, puis un scanner ESP32 BLE pour trouver ce serveur. Nous allons utiliser et expliquer les exemples fournis avec la bibliothèque BLE.\nPour suivre cet exemple, vous avez besoin de deux cartes de développement ESP32. Nous allons utiliser la carte ESP32 DOIT DEVKIT V1.\nServeur ESP32 BLE\nPour créer un serveur ESP32 BLE, ouvrez votre IDE Arduino et accédez à Fichier &gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le Serveur BLE exemple. Le code suivant devrait charger:\n/ *\n    D&#39;après l&#39;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleServer.cpp\n    Porté sur Arduino ESP32 par Evandro Copercini\n    mises à jour par chegewara\n* /"},{"id":"text-14","heading":"Text","content":"#comprendre \n#comprendre \n#comprendre"},{"id":"text-15","heading":"Text","content":"// Voir ce qui suit pour générer des UUID:\n// https://www.uuidgenerator.net/"},{"id":"text-16","heading":"Text","content":"#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;"},{"id":"text-17","heading":"Text","content":"void setup() \n                                         BLECaractéristique :: PROPERTY_WRITE\n                                       )"},{"id":"text-18","heading":"Text","content":"  pCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\n  pService-&gt; start ();\n  // BLEAdvertising * pAdvertising = pServer-&gt; getAdvertising (); // cela fonctionne toujours pour la compatibilité ascendante\n  BLEAdvertising * pAdvertising = BLEDevice :: getAdvertising ();\n  pAdvertising-&gt; addServiceUUID (SERVICE_UUID);\n  pAdvertising-&gt; setScanResponse (true);\n  pAdvertising-&gt; setMinPreferred (0x06); // fonctions qui aident avec le problème des connexions iPhone\n  pAdvertising-&gt; setMinPreferred (0x12);\n  BLEDevice :: startAdvertising ();\n  Serial.println (&quot;Caractéristique définie! Vous pouvez maintenant la lire dans votre téléphone!&quot;);"},{"id":"text-19","heading":"Text","content":"boucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  délai (2000);"},{"id":"text-20","heading":"Text","content":"Voir le code brut\nPour créer un serveur BLE, le code doit suivre les étapes suivantes:"},{"id":"text-21","heading":"Text","content":"Créez un serveur BLE. Dans ce cas, l&#39;ESP32 agit en tant que serveur BLE.\nCréer un service BLE.\n  Créer une caractéristique BLE sur le service.\nCréez un descripteur BLE sur la caractéristique.\nDémarrer le service.\n  Commencez la publicité pour qu&#39;elle puisse être trouvée par d&#39;autres appareils."},{"id":"text-22","heading":"Text","content":"Comment fonctionne le code\nJetons un coup d’œil sur le fonctionnement de l’exemple de code de serveur BLE.\nIl commence par importer les bibliothèques nécessaires aux capacités BLE.\n#comprendre \n#comprendre \n#comprendre \nEnsuite, vous devez définir un UUID pour le service et la caractéristique.\n#define SERVICE_UUID &quot;4fafc201-1fb5-459e-8fcc-c5c9c331914b&quot;\n#define CHARACTERISTIC_UUID &quot;beb5483e-36e1-4688-b7f5-ea07361b26a8&quot;\nVous pouvez laisser les UUID par défaut ou vous rendre sur uuidgenerator.net pour créer des UUID aléatoires pour vos services et caractéristiques.\ndans le installer(), la communication série commence à un débit en bauds de 115200.\nSerial.begin (115200);\nEnsuite, vous créez un périphérique BLE appelé “MyESP32”. Vous pouvez changer ce nom en ce que vous voulez.\n// Créer le périphérique BLE\nBLEDevice :: init (&quot;MyESP32&quot;);\nDans la ligne suivante, vous définissez le périphérique BLE en tant que serveur.\nBLEServer * pServer = BLEDevice :: createServer ();\nEnsuite, vous créez un service pour le serveur BLE avec l’UUID défini précédemment.\n    BLEService * pService = pServer-&gt; createService (SERVICE_UUID);\nEnsuite, vous définissez la caractéristique pour ce service. Comme vous pouvez le constater, vous utilisez également l’UUID défini précédemment et vous devez transmettre en tant qu’arguments les propriétés de la caractéristique. Dans ce cas, c’est: LIRE et ÉCRIRE.\nBLECharacteristic * pCharacteristic = pService-&gt; createCharacteristic (\n                                     CHARACTERISTIC_UUID,\n                                     BLECaractéristique :: PROPERTY_READ |\n                                     BLECaractéristique :: PROPERTY_WRITE\n                                     )\nAprès avoir créé la caractéristique, vous pouvez définir sa valeur avec setValue () méthode.\npCharacteristic-&gt; setValue (&quot;Bonjour le monde dit Neil&quot;);\nDans ce cas, nous définissons la valeur sur le texte «Hello World dit Neil». Vous pouvez changer ce texte comme bon vous semble. Dans les projets futurs, ce texte peut être une lecture de capteur, ou l&#39;état d&#39;une lampe, par exemple.\nEnfin, vous pouvez démarrer le service et la publicité afin que d&#39;autres périphériques BLE puissent analyser et trouver ce périphérique BLE.\nBLEAdvertising * pAdvertising = pServer-&gt; getAdvertising ();\npPublicité-&gt; start ();\nCeci est juste un exemple simple sur la façon de créer un serveur BLE. Dans ce code, rien n’est fait dans le boucle(), mais vous pouvez ajouter ce qui se passe lorsqu’un nouveau client se connecte (consultez l’exemple BLE_notify pour obtenir des conseils).\nESP32 BLE Scanner\nCréer un scanner ESP32 BLE est simple. Saisissez un autre ESP32 (pendant que l&#39;autre exécute l&#39;esquisse du serveur BLE). Dans votre IDE Arduino, accédez à Fichier&gt; Exemples &gt; ESP32 BLE Arduino et sélectionnez le BLE_scan exemple. Le code suivant devrait charger.\n/ *\n   D&#39;après l&#39;exemple de Neil Kolban pour IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleScan.cpp\n   Porté sur Arduino ESP32 par Evandro Copercini\n* /"},{"id":"text-23","heading":"Text","content":"#comprendre \n#comprendre \n#comprendre \n#comprendre"},{"id":"text-24","heading":"Text","content":"int scanTime = 5; //En secondes\nBLEScan * pBLEScan;"},{"id":"text-25","heading":"Text","content":"class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks \n    void onResult (BLEAdvertisedDevice annoncisedDevice) \n      Serial.printf (&quot;Appareil annoncé:% s  n&quot;, advertisedDevice.toString (). C_str ());\n    \n;"},{"id":"text-26","heading":"Text","content":"void setup() \n  Serial.begin (115200);\n  Serial.println (&quot;Numérisation ...&quot;);"},{"id":"text-27","heading":"Text","content":"  BLEDevice :: init (&quot;&quot;);\n  pBLEScan = BLEDevice :: getScan (); // créer un nouveau scan\n  pBLEScan-&gt; setAdvertisedDeviceCallbacks (new MyAdvertisedDeviceCallbacks ());\n  pBLEScan-&gt; setActiveScan (true); // l&#39;analyse active consomme plus d&#39;énergie, mais permet d&#39;obtenir des résultats plus rapidement\n  pBLEScan-&gt; setInterval (100);\n  pBLEScan-&gt; setWindow (99); // valeur inférieure ou égale à setInterval"},{"id":"text-28","heading":"Text","content":"boucle vide () \n  // mettez votre code principal ici, pour exécuter à plusieurs reprises:\n  BLEScanResults foundDevices = pBLEScan-&gt; start (scanTime, false);\n  Serial.print (&quot;Périphériques trouvés:&quot;);\n  Serial.println (foundDevices.getCount ());\n  Serial.println (&quot;Scan done!&quot;);\n  pBLEScan-&gt; clearResults (); // efface les résultats de la mémoire tampon BLEScan pour libérer de la mémoire\n  délai (2000);"},{"id":"text-29","heading":"Text","content":"Voir le code brut\nCe code initialise l&#39;ESP32 en tant que périphérique BLE et recherche les périphériques à proximité. Téléchargez ce code sur votre ESP32. Vous voudrez peut-être déconnecter temporairement l’autre ESP32 de votre ordinateur afin d’être sûr de télécharger le code sur la bonne carte ESP32.\nUne fois le code chargé, vous devez allumer les deux cartes ESP32:"},{"id":"text-30","heading":"Text","content":"Un ESP32 avec le schéma “BLE_server”;\nAutre avec esquisse ESP32 «BLE_scan»."},{"id":"text-31","heading":"Text","content":"Accédez au moniteur série avec l’ESP32 exécutant l’exemple «BLE_scan», appuyez sur le bouton «ESP32» (avec l’esquisse «BLE_scan») pour redémarrer et attendez quelques secondes pendant la numérisation."},{"id":"text-32","heading":"Text","content":"Le scanner a trouvé deux périphériques: l’un est l’ESP32 (il porte le nom «MyESP32), et l&#39;autre est notre MiBand2."},{"id":"text-33","heading":"Text","content":"Test du serveur ESP32 BLE avec votre smartphone\nLa plupart des smartphones modernes devraient avoir des capacités BLE. J&#39;utilise actuellement un OnePlus 5, mais la plupart des smartphones devraient également fonctionner.\nVous pouvez numériser votre serveur ESP32 BLE avec votre smartphone et voir ses services et ses caractéristiques. Pour cela, nous utiliserons une application gratuite appelée nRF Connect pour mobile de Nordic, cela fonctionne sur Android (Google Play Store) et iOS (App Store).\nAccédez au Google Play Store ou à l&#39;App Store et recherchez «nRF Connect for Mobile». Installez l&#39;application et ouvrez-la."},{"id":"text-34","heading":"Text","content":"N&#39;oubliez pas d&#39;aller dans les paramètres Bluetooth et d&#39;activer l&#39;adaptateur Bluetooth sur votre smartphone. Vous pouvez également vouloir le rendre visible à d&#39;autres périphériques pour tester d&#39;autres esquisses ultérieurement."},{"id":"text-35","heading":"Text","content":"Une fois que tout est prêt dans votre smartphone et que l&#39;ESP32 exécute l&#39;esquisse du serveur BLE, dans l&#39;application, appuyez sur le bouton Rechercher pour rechercher les appareils à proximité. Vous devriez trouver un ESP32 avec le nom “MyESP32”."},{"id":"text-36","heading":"Text","content":"Clique le &quot;Relier&quot; bouton.\nComme vous pouvez le voir sur la figure ci-dessous, l’ESP32 dispose d’un service avec l’UUID que vous avez défini précédemment. Si vous appuyez sur le service, le menu s’agrandit et affiche la caractéristique avec l’UUID que vous avez également défini."},{"id":"text-37","heading":"Text","content":"La caractéristique a les propriétés READ et WRITE et la valeur est celle que vous avez précédemment définie dans l’esquisse du serveur BLE. Donc, tout fonctionne bien.\nEmballer\nDans ce tutoriel, nous vous avons montré les principes de base de Bluetooth Low Energy et quelques exemples avec l’ESP32. Nous avons exploré l’esquisse du serveur BLE et l’esquisse de numérisation BLE. Ce sont des exemples simples pour vous aider à démarrer avec BLE.\nL&#39;idée est d&#39;utiliser BLE pour envoyer ou recevoir des lectures de capteurs d&#39;autres appareils. Nous publierons davantage de tutoriels et de projets sur BLE avec l’ESP32, alors restez branchés!\nVoici un extrait de notre cours: Apprenez l’ESP32 avec Arduino IDE. Si vous aimez ESP32 et que vous souhaitez en savoir plus à ce sujet, nous vous recommandons de vous inscrire au cours Learn ESP32 with Arduino IDE.\nVous pourriez aussi aimer lire:\nMerci d&#39;avoir lu.\nMis à jour le 16 mai 2019"},{"id":"text-38","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/10/Bluetooth-Intro-Thumbnail-Copy.jpg"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/10/15/esp32-bluetooth-low-energy-ble-sur-arduino-ide-serveur-dimpression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/10/15/esp32-bluetooth-low-energy-ble-sur-arduino-ide-serveur-dimpression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/10/15/esp32-bluetooth-low-energy-ble-sur-arduino-ide-serveur-dimpression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}