Go Down

Topic: exemple d'utilisation d'un HM-10 bluetooth LE (Read 19144 times) previous topic - next topic

J-M-L

Quote
J'ai réussi à le connecter sur mon ordi sous Windows 8
ça veut dire quoi?
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

al1fch

#16
Apr 27, 2018, 01:49 pm Last Edit: Apr 27, 2018, 03:22 pm by al1fch
Bonjour
Quote
Comment faites-vous pour faire apparaître un port "COM" sous Windows?
pas de profil SPP en BLE, donc pas de port COM virtuel !!

Certains fabricants de puces BLE ou modules proposent des solutions 'maison' pour de la transmission série par BLE
ces définitions 'propriétaires' ne sont pas actuellement connues des systèmes d'exploitations de PC et nécessitent des softs spécifiques ....à développer.

Sous Android on trouve quelque applis , dont Serial Bluetooth permettant une connection en terminal avec un HM-10 ou une puce BLE avec la config (service/caractéristique) 'UART' de nrf


al1fch

#17
Apr 27, 2018, 01:54 pm Last Edit: Dec 29, 2018, 02:01 pm by al1fch
HM-10 en balise iBeacon

plutôt que créer un fil spécifique j'opte pour un prolongement de celui de J-M-L

La manip' décrite içi permet de configurer un  module HM-10 en balise iBeacon se réveillant toutes les 7 secondes puis passant en mode sommeil (180 µA) .
Ainsi configuré le HM-10 , en solo sans carte Arduino, devient une balise iBeacon.
 L'iBeacon HM-10 est identifiée comme telle par un scanner de balises tournant sous Android :


Tenant compte des recommendations de J-M-L dans son message initial j'ai opté pour un 'vrai' HM-10 avec présence des deux quartz/oscillateurs à quartz.

L'achat a été effectué début avril à la boutique ALL ELECTRONICS MALL d'Aliexpress



A réception j'ai découvert que le firmware n'est pas le 'Bolutek' décrit par J-M-L mais un firmware récent(6.03) de 'HMSoft'. Il  semble posséder des commandes AT supplémentaires. (je joins le pdf)
La commande HELP ne donne pas le liste des commandes AT mais un lien vers le site du fabricant où il est possible de trouver docs, outils et firmwares.

Pour passer en mode iBeacon voici les commandes envoyées au module :
Code: [Select]
AT+RENEW
AT+RESET
AT+ADVIF
AT+ADTY3
AT+IBEA1
AT+DELO2
AT+PWRM0
AT+RESET

La commande AT+ADVI permet de définir l'intervalle entre deux activités de l'iBeacon (F est la valeur maximale et correspond à 7 secondes)

D'autres commandes permettraient de redéfinir la totalité de l'UUID ainsi que les valeurs de 'Major' et 'Minor'

N'ayant pas d'autre HM-10 sous la main pur servir de scanner d'iBeacon j'ai testé avec des scanners Android et avec un ESP32 doté du programme de scanner de beacons joint, (ce programme sait identifier les iBeacons (proposées par Apple, et 2 autres types de beacons : Eddystone URL et Eddystone TLM (proposés par Google)

Voilà  le retour de l'ESP32 en scanner :
Code: [Select]
Scan done! Devices found: 1

Advertised Device: Name: ,
Address: 3c:a3:08:a0:49:9c,
manufacturer data: 4c00021574278bdab64445208f0c720eaf05993507e201acc5

iBeacon Frame
ID: 004C Major: 2018 Minor: 428
UUID: 359905af-0e72-0c8f-2045-44b6da8b2774 Power: -59

içi les valeurs de 'Major' et 'Minor' avaient été redéfinies par des commandes AT+MARJ et AT+MINO

En fait l'essentiel de l'information est dans la trame :
Code: [Select]
4c00021574278bdab64445208f0c720eaf05993507e201acc5

4c00    02   15   74 27 8b da b6 44 45 20 8f 0c 72 0e af 05 99 35   07e2 01ac c5
Apple   iB   ln   ---------------------UUID----------------------   Maj  Min  dbm 


L'identifiant 0x004C utilisé permet à ce HM-10 d'être  vu comme produit Apple par l'utilitaire nrfConnect (Android)

J-M-L

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

al1fch

#19
Jan 03, 2019, 10:43 am Last Edit: Jan 03, 2019, 05:04 pm by al1fch
Bonjour

Le fabricant du 'vrai HM-10'  Jinan Huamao Technology fait évoluer ses modules en publiant des mises à jour de firmwares. Une version 7.01 pour CC2541 vient de sortir en ce début janvier 2019 avec des ajouts intéressants pour le BLE (voit le fichier joint).

Je trouve içi mes HM-10  ils ont une puce CC2541 et étaient livrés avec le firmware Jinan Huamo 6.06,
firmware apparement plus complet que ceux d'autres module 'HM-10' et bien documenté.
+Un bootloader est intégré permettant la mise à jour facile par port série USB.

al1fch

#20
Jan 03, 2019, 05:24 pm Last Edit: Jan 03, 2019, 06:27 pm by al1fch
Après la configuration d'un HM-10 en balise iBeacon cf message #17 (en 'solo', sans carte Arduino), voici un test de détection de balise par un autre HM-10 avec une tentative d'estimation de distance (estimation , pas mesure !!)

Le HM-10 en iBeacon configuré comme précédement , avec la puissance d'émission de 0dB par défaut, annonce à l'environnment :   "à 1m on me voit avec un RSSI de -59 dB"


Prenons comme récepteur un second HM-10, içi relié au PC par un adaptateur USB/Série.
Voici la séquence des 4  commandes à envoyer pour que ce second HM-10 scanne l'environnement .
En réponse on voit en fin de ligne des données reçues l'adresse et le RSSI de plusieurs 'devices BLE'

Code: [Select]

AT+RESET
AT+ROLE1
AT+IMME1

AT+DISI?

REPONSE :
OK+DISIS
OK+DISC:00000000:00000000000000000000000000000000:0000000000:A4C1383C15F7:-070
OK+DISC:00000000:00000000000000000000000000000000:0000000000:88C62681707A:-085
OK+DISC:00000000:00000000000000000000000000000000:0000000000:7ED43ED3ED8F:-086
OK+DISC:00000000:00000000000000000000000000000000:0000000000:50F421C85CAC:-091
OK+DISC:00000000:00000000000000000000000000000000:0000000000:4C65A8DB1C7F:-061
OK+DISC:4C000215:74278BDAB64445208F0C720EAF059935:07E201ACC5:3CA308A0499C:-069  (iBeacon HM10 , RSSI=-59 à 1m)
OK+DISCE

La balise iBeacon HM-10 est le dernier des 6 appareils  détectés, son RSSI est  estimé à -69dB, soit 10dB de moins que s'il était placé à 1 mètre.

Pour estimer la distance, avoir une idée de sa valeur approximative, on trouve diverses formules théoriques ou empiriques dont celle çi  qui me donne une estimation à 5m tout à réaliste içi avec N=2.


Pour une distance réelle donnée plusieurs paramètres on de l'influence sur le RRSI du signal reçu : orientation relative des antennes, milieu, réflexions.....donc pas question de faire de la localisation par triangulation.... par contre une détection de proximité parait envisageable.

En émission la commande AT+POWEn permet de sélectionner l'une des 4 puissances d'émission suivantes : -23dB, -6dB, 0dB et +6dB. paramètre supplémentaire pour gérer la distance de détection souhaitée.

lesept

Je suppose que dans ta formule, les deux valeurs MeasuredPower et RSSI sont en dB ?

Il faudrait tester avec des distances plus courtes, j'ai peur que la précision que tu obtiens pourrait se dégrader vers 1 ou 2 mètres.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

al1fch

#22
Jan 03, 2019, 07:08 pm Last Edit: Jan 03, 2019, 07:24 pm by al1fch
oui, 'Measured Power', mal nommée dans le document,  est en fait le 'RSSI à 1m' testé par le fabricant du device

Les essais sont à faire....j'ai juste voulu signaler une piste à explorer.

En détection de proximité l'essentiel est la répétabilité des résultats pour situer le seuil de détection, peu importe la 'vraie valeur".

Pour ce qui est de la non pertinence du RSSI en vue d'une localisation voilà une étude.

Go Up