Service UUID

Bonjour, je suis actuellement en train de faire un programme pour une communication en BLE entre une application sur MIT app inventor 2 cependant, je n’arrive pas à obtenir les caractéristiques UUID et les services UUID de mes capteurs.

Merci d’avance pour vos réponses.

Le bug est ligne 42 et il me semble que votre fil rouge est mal câblé...

enfin c’est ce que je vois

:slight_smile:

Blague à part... vous pensez nous avoir donné assez d’info?

Avez vous chargé la BluetoothLE extension ? Comment est configuré le service / qui fait quoi?

Bonjour, oui l'extension pour les modules BLE est ajouté sur MIT seulement, je ne sait pas comment obtenir les services UUID et les caractéristiques UUID de mes capteurs.

et vos capteurs, c’est quoI ?

Il y a une sonde de température et un capteur de débit

Voila les deux capteurs dont il faut récupérer les données:
https://www.gotronic.fr/art-sonde-etanche-ds18b20-19339.htm

je n'arrive pas à obtenir les caractéristiques UUID et les services UUID de mes capteurs.

Ben ce n'est pas surprenant vu que ce ne sont pas des capteurs bluetooth LE.

Il faut un arduino avec une couche BTLE dans la boucle et c'est à vous de faire le boulot d'exposer les services et characteristics qui vont bien depuis l'arduino.

Vous pouvez lire des trucs de ce genre pour y voir plus clair

Cela m'a aidé à comprendre comment fonctionne le Bluetooth LE sur Arduino cependant, je ne vois toujours pas comment trouver les services UUID de mes capteurs ou sinon faut-il que je les créer moi même ?

Nanard36:
Cela m’a aidé à comprendre comment fonctionne le Bluetooth LE sur Arduino cependant, je ne vois toujours pas comment trouver les services UUID de mes capteurs ou sinon faut-il que je les créer moi même ?

Bonsoir
comme expliqué plus haut

aucun de tes capteurs ne dispose d’un UUID propre

C’est votre Arduino « le vendeur de service » et qui après avoir lu les capteurs en utilisant le protocole adéquat va publier cela en réponse à une requête

Vos capteurs n’ont rien à voir avec BTLE, c’est comme si vous nous disiez « j’ai acheté une thermomètre à mercure qui est sur la fenêtre du salon et je n’arrive pas à voir sa température depuis mon téléphone, je ne comprends pas comment ça se fait »…

Désolé de vous apprendre que tous les objets du monde ne sont pas encore des objets connectés… :))

D'accord donc le UUID ne sera pas celui de mes capteurs car ils n'en n'ont pas mais celui de la carte arduino si je comprends ?
Je suis pas un pro en programmation donc je comprends pas tout mais la si je fais ça cela veut dire que sur MIT app inventor, je ne pourrais recevoir qu'une seule valeur?

C’est bien à la carte Arduino BLE de proposer 2 services : l’un pour l’information ‘température’ l’autre pour l’information ‘débit d’air’. Chaque service aura ses propres UUID. L’application sur Smartphone pourra alors accéder à l’un ou l’autre des informations.
Le BLE est quelque chose de très , très, très codifié !! Prévoir un travail de compréhension de ce média avant de tenter sa mise en oeuvre.

Heu la carte c’est une arduino UNO à laquelle il y a d’ajouté un module BLE donc ça fonctionne pareil ?
Et enfaite je voudrais que les deux données s’affichent en même temps sur l’application.

Heu la carte c'est une arduino UNO à laquelle il y a d'ajouté un module BLE

Référence du module BLE ? Que dit la documentation du module ?

(Remarque : on en est au message #13 et on n'a pas encore toutes les informations pour répondre.
Relire les messages épinglés en tête de forum ou il est question des informations à fournir impérativement pour avoir de l'aide)

Non... la carte Arduino (enfin celles de base) n'a pas de composant BTLE non plus. il faut ajouter un module BTLE - une fois ce module ajouté - en fonction de ses spécifications vous aurez différentes fonctions

Si vous prenez le HM-10 par exemple, il a un ensemble de services et chaque service a un ensemble de caractéristiques associées. Les caractéristiques sont les valeurs, certaines peuvent être en mode lecture, d'autres en écritures et d'autres les 2 à la fois.

Tous les services sur le HM-10 sont prédéfinis sauf un qui est personnalisable (custom). Les services et caractéristiques prédéfinis sont ceux où l'UUID et le nom sont définis par le standard Bluetooth. Par exemple, la caractéristique 0x2A00 est le nom du périphérique. Tout cela est bien défini, cf la liste des services et les Characteristics

Le HM-10 utilise la caractéristique personnalisable pour envoyer et recevoir les données via l'interface série - donc dans votre cas vous pourriez prendre un arduino, y attacher vos capteurs et un HM-10, lire les valeurs et stocker une représentation de ces valeurs dans la caractéristique personnalisable (le service custom). Comme sur un HM-10 La caractéristique personnalisée peut contenir jusqu'à 20 octets ça laisse de la marge sur le codage, vous pouvez soit y mettre de l'ASCII, soit plus compact les 2 octets de votre int représentant la lecture du capteur et laisser le calcul associé être effectué côté téléphone.

Une fois la valeur réglée, le HM-10 envoie une notification indiquant au périphérique distant "j'ai une donnée mise à jour si tu veux venir la lire" et le périphérique distant (votre application sur le téléphone) écoute les notifications et quand il en reçoit une, il sait qu'il y a une nouvelle valeur, donc il lit les données et renvoie un message disant "c'est bon je l'ai lue".

voici un bon article à lire sur le HM-10 pour tout comprendre

si vous êtes débutant il faut sans doute mieux ne pas commencer par là cependant... maitrisez la programmation de base, faites les tutos d'eskimon...

Je suis désolé mais je suis obligé car c'est pour mon projet de Terminale.
Actuellement, je suis avec ce module ci: Module BLE Link TEL0073 DFRobot - Bluetooth | GO TRONIC

Donc j’ai regardé avec mon application qui est comme ça (fichier joint) je doit juste mettre 1 caractéristique service pour la carte qui va envoyer les données et ensuite 2 caractéristiques valeurs suivant ce que l’application demande ?

Nanard36:
Je suis désolé mais je suis obligé car c'est pour mon projet de Terminale.
Actuellement, je suis avec ce module ci: Module BLE Link TEL0073 DFRobot - Bluetooth | GO TRONIC

Vous êtes obligé à quoi? ne pas commencer par la base et apprendre correctement? et obligé de foncer sans rien comprendre? la soutenance va être difficile...

Votre projet tel que défini n'a même pas besoin de BTLE... balancez simplement les valeurs en appairant votre composant en BT (Serial profile) et il y a 2 millions de tutos sur MIT inventor pour lire des données en provenance d'un arduino sur port série bluetooth

Au début j'ai commencé à programmer normalement en avec du Bluetooth classique sauf que je me suis rendu compte que cela ne fonctionnait pas donc j'ai installé l'extension BLE et là j'ai fait ce qu'il y a juste avant sauf que je ne comprenait pas comment accéder aux caractéristiques UUID et au service UUID c'est juste ça car la programmation sur MIT est assez simple car j'ai regardé des tutos

Nanard36:
Au début j'ai commencé à programmer normalement en avec du Bluetooth classique sauf que je me suis rendu compte que cela ne fonctionnait pas donc j'ai installé l'extension BLE et là j'ai fait ce qu'il y a juste avant sauf que je ne comprenait pas comment accéder aux caractéristiques UUID et au service UUID c'est juste ça car la programmation sur MIT est assez simple car j'ai regardé des tutos

fallait fixer le premier problème. jouer avec le BTLE est plus compliqué...