Se faire un iBeacon

  • Ce sujet contient 23 réponses, 9 participants et a été mis à jour pour la dernière fois par Anonyme, le 19 Sep. 2015, 18:25.
15 sujets de 1 à 15 (sur un total de 24)
  • Auteur
    Messages
  • #7604
    Anonyme

      Cette fois ci, je vous propose de vous fabriquer un iBeacon.

      Mais c’est quoi un iBeacon ?

      Pour faire simple, il s’agit d’un système de localisation à l’image de ce qui se fai(sai)t pour les bateaux.. Pour que les bateaux puissent se localiser, on a installé des phares le long des côtes. Pour identifier un phare, il suffit de connaître la fréquence de « clignotement » du phare.

      Un iBeacon c’est pareil mais en version actualisée à base de radio. Un iBeacon émet un signal de façon régulière, ce signal contenant un identifiant unique. Le récepteur (un smartphone) extrapole alors la distance par rapport à ce iBeacon.

      Pour un détail plus complet, je vous envoi sur l’article de Wikipédia :

      https://fr.wikipedia.org/wiki/IBeacon” class=”bbcode_url”>https://fr.wikipedia.org/wiki/IBeacon

      Bon par contre, comme d’hab’ il y a des erreurs… Un iBeacon ne fait qu’émettre un signal, il n’envoi aucune autre info ! Le « Ainsi les iBeacons pourront vous envoyer des notifications personnalisées des produits en vente autour de vous… » : c’est faux !!! C’est le smartphone qui fait le job en fonction du iBeacon détecté !

      L’article en anglais est bien mieux (mais en anglais) :

      https://en.wikipedia.org/wiki/IBeacon” class=”bbcode_url”>https://en.wikipedia.org/wiki/IBeacon

      Je vous propose donc de fabriquer votre propre iBeacon. Une fois que l’on sait que la technologie est en fait du Bluetooth Low Energy 4.0, il suffit maintenant de trouver le bon composant… et voici le graal, la pièce maîtresse qu’il vous faut : un HM-10.
      [attachment=2]HM10.jpg[/attachment]

      Cerise sur le gâteau, ça vaut environ 10 €.

      $6.50 ici http://imall.itead.cc/serial-port-ble-module-master-slave-hm-10.html” class=”bbcode_url”>http://imall.itead.cc/serial-port-ble-module-master-slave-hm-10.html

      Perso j’ai pris sur eBay : http://www.ebay.fr/itm/291369381872?_trksid=p2057872.m2749.l2649&var=590487198714&ssPageName=STRK%3AMEBIDX%3AIT” class=”bbcode_url”>http://www.ebay.fr/itm/291369381872?_trksid=p2057872.m2749.l2649&var=590487198714&ssPageName=STRK%3AMEBIDX%3AIT

      Ce module est vraiment petit : 27 x 13 mm.

      Une fois configuré, il ne consomme que 0,18 mA et peut donc être alimenté par un Arduino sans aucun souci. Par contre, ça fonctionne en 3,3 V => à ne pas brancher directement sur un Arduino en 5 V !!!!

      Il existe des modèles qui incluent un Level Shifter, forcément c’est un peu plus cher et plus grand.
      [attachment=1]HM10_plus.jpg[/attachment]

      Une fois en possession de votre HM-10, il ne reste qu’à lui envoyer les commandes de configuration pour le transformer en iBeacon. La communication avec le module se fait en série. Ca peut-être fait depuis un PC ou un Arduino, à vous de voir.

      Il vous faut déterminer un nom unique à votre module. Perso je les appelle « Boris1 », « Boris2 », …

      Il vous faut décider d’un identifiant unique pour votre module. Il s’agit de 2 nombres (un majeur et un mineur) entre 0 et 65535 … qu’il faut convertir en hexa décimal (utilisez la calculatrice de votre PC / Mac en mode programmeur).

      En mode « base 10 » vous saisissez votre nombre et vous changer en mode « base 16 », vous obtenez alors un nombre sous la forme 0x####. Ce sont les « #### » qui nous intéresse.

      Voici les commandes à passer : (vitesse 9600 bauds)

      AT => histoire de voir si on cause bien avec le module, il nous répond « OK »

      AT+RENEW => on remet la configuration « sortie d’usine »

      AT+RESET => on lui demande de faire un reboot

      AT => pour voir si on cause toujours avec le module, il doit répondre « OK »

      AT+MARJ0x#### => pour donner au module le premier nombre (le majeur)

      AT+MINO0x#### => et le second nombre (le mineur)

      AT+ADVI5 => la fréquence à laquelle le module va émettre son signal

      AT+NAMEnomunique => Pour fixer le nom unique du module (ex : Boris1)

      AT+ATDY3 => empêche qu’un périphérique ne s’associe en Bluetooth

      AT+IBEA1 => on active le mode iBeacon

      AT+DELO2 => le iBeacon ne fait qu’émettre

      AT+PWR0 => active le mode économie d’énergie du module, on passe de 8 mA à 0,18 mA

      AT+RESET => on termine en lui demandant de faire un reboot

      Voilà, vous avez maintenant un iBeacon en fonction !

      Et vous ne savez plus vous connecter, la commande « AT » ne fonctionne plus… C’est qu’en fait le module n’est plus en « écoute », il est juste en mode j’émets mes infos iBeacon. Pour réactiver l’écoute, il faut lui envoyer n’importe quoi d’une longueur minimale de 80 caractères, jusqu’à ce qu’il nous réponde « OK ». Là il est à nouveau en écoute active.

      Je précise de suite que je n’ai rien inventé, tout est dans ce doc : http://www.blueluminance.com/HM-10-as-iBeacon.pdf” class=”bbcode_url”>http://www.blueluminance.com/HM-10-as-iBeacon.pdf

      En pièce jointe de ce message : [attachment=0]HM-10-as-iBeacon.pdf[/attachment]
      Je vous laisse vous y plonger, il explique notamment comment effectuer la connexion du module en série, comment l’alimenter par des piles, …

      Voilà, une fois que vous avez votre module, il ne vous reste plus qu’à l’installer dans votre Droïde et si vous en avez pris 2, d’en mettre un second dans votre poche (avec une alim), ou encore dans votre MSE-6, votre Fusion Furnace, etc. …

      Pourquoi je vous parle de ça ? A quoi ça sert pour notre R2 que l’on construit avec amour ? Winter is coming… euh, non : une surprise arrive… :D

      #45382
      Anonyme

        Super tuto, tu va nous faire un beau ptit programme Androïd spéciale R2 pour tes fiches ? :)

        L’iBeacon te donne la distance (enfin le tel portable) mais est il capable de donner la direction aussi? (via une trigonométrie ça doit être faisable nan?)

        Tu as testé le Eddystone (l’iBeacon a la mode google)? (http://googledevelopers.blogspot.fr/2015/07/lighting-way-with-ble-beacons.html?linkId=15518168)

        #45383
        Xoff
        Bloqué

          excellent

          vivement la suite :dance: :dance: :dance:

          #45384
          Anonyme

            Très intéressant ton tuto. :welldone: . Cela me fait du boulot en plus. Quand j’ai vu le titre, je pensait que tu partais dans le modélisme naval.

            Valar dohaerys.

            #45385
            Anonyme

              ah ah moi aussi je fais mumuse avec du bacon, non du ibeacon! (c’est malin Boris, tu m’a fait envie avec ça et qui qui va en patir, bah c’est R2!!!). ça faisait tellement longtemps que je l’avais pas testé que la pile neuve était mort…

              Si tu veux que je te fasse beta testeur avec ton appli, n’hésite pas :) (mais je n’utilise pas le même ibeacon que toi…)

              [attachment=0]ibeacon2.jpg[/attachment]

              #45386
              Anonyme

                J’avais trouvé ton idée très originale lors du Building day et maintenant je vois que cela prend forme. Du très très bon travail Boris. :welldone: :welldone:

                Je ne vais pas avoir le temps de me pencher sur le dossier avant Facts, mais j’intégrai bien ce genre de chose à ma radiocommande.(Android)

                #45387
                Anonyme

                  Oui j’avance effectivement sur une application smartphone :D

                  L’idée est de faire un jeu de chasse pour les visiteurs de conventions/salons… on met des iBeacons sur nous, dans nos R2, sur le stand…

                  Quand le visiteur se trouve à moins de 2 mètres d’un iBeacon, ça lui fait gagner une “carte” correspondant à ce qui a été découvert.

                  Exemple : j’ai un iBeacon dans la poche. Je paramètre l’application avec ce iBeacon et y affecte une photo de moi. Quand le visiteur (qui a installé l’application sur son smartphone) s’approche de moi : ça débloque la “carte” Boris :-D

                  Histoire d’avancer, il y a quelques infos qu’il faut déterminer en “dur”. (attention, je réfléchis en écrivant, donc mon bla bla va être verbeux et il risque de manquer quelques mots à droite ou à gauche)

                  Je précise de suite que la prise de tête qui va venir autour de ça… n’est que purement technique : en utilisation, jamais ça ne sera visible par quelqu’un !!!

                  Ce sont des infos dont vous avez besoins lorsque vous paramétrez votre iBeacon.

                  1/ Un UUID : commun à l’ensemble de la communauté… monde !

                  Je propose d’en générer 1 et de s’y tenir.

                  Allez, je me lance… tadaaaa : E5CAF8CF-590C-42DC-9CF0-2929552156A7

                  J’ai utilisé ce site web pour l’obtenir : https://guidgenerator.com/online-guid-generator.aspx” class=”bbcode_url”>https://guidgenerator.com/online-guid-generator.aspx

                  2/ Une “région”

                  Idem que pour l’UUID : c’est pour tout le monde.

                  C’est une chaine de caractère. Je propose (et allez, j’impose) “Builders:D

                  3/ Identifiant Major / Minor

                  Pour rappel, pour chacun, ça va de 0 à 65535. (un hexa sur 4 position 0x####)

                  Ca donne un truc style : 0x1234 0x5678, soit 8 digits disponibles.

                  Je propose de fixer :

                  – un identifiant par pays/club/asso/… sur 2 digits = 255 possibilités

                  – un identifiant par builder : 4 digits = 65535 possibilités

                  – un identifiant par objet du builder : 2 digits = 255 possibilités

                  On peut donc avoir 255 clubs, chaque club peut avoir 65535 membres, chaque membre peut avoir 255 iBeacons.

                  Par ordre, le major est l’identifiant du builder, le minor est l’assemblage club puis objet.

                  Chaque club a juste à tenir à jour une liste des identifiants affectés à chaque builder. (en auto-gestion par les builders)

                  Exemple :

                  Je définie les R2 Builders Francophone comme : 0x2F (et hop, je valide)

                  Je fixe l’identifiant pour le builder Boris : 0X2606 (et hop, je valide)

                  et enfin pour chacun de mes objets auquel j’affecte un iBeacon, je vais de 0x00 à 0xFF

                  Ce qui donne au complet pour le iBeacon que j’ai dans la poche : 0X2606 0x2F01

                  Le iBeacon que je mets dans mon R2-D2 : 0X2606 0x2F02

                  Celui que je mettrais dans ma souris MSE-6 : 0X2606 0x2F03

                  Mon identifiant 0X2606 peut être utilisé par un membre d’un autre club : pas de conflit possible.

                  #45388
                  Xoff
                  Bloqué

                    avec les explications et exemples, ça semble simple et efficace :welldone:

                    #45389
                    Anonyme

                      Boris c’est top ! :welldone:

                      #45390
                      Alkagios
                      Bloqué

                        Tu m’expliqueras à Fact car j’ai rien compris :confused:

                        Tchao,

                        Mike

                        #45391
                        Anonyme

                          Mike wrote:

                          Tu m’expliqueras à Fact car j’ai rien compris :confused:

                          Tchao,

                          Mike

                          on est deux alors … j’attendais FACTS aussi ;)

                          #45392
                          Anonyme

                            question : qu’est ce que l’on fait avec l’ UUID “E5CAF8CF-590C-42DC-9CF0-2929552156A7

                            qui gère les identifiants au sein du club ?

                            Je prends e-fan : “0X2607

                            Après il faut que un gentil membre développe une application à mettre sur une tablette ou un smartphone (bidule qui me gonfle(le smartphone))

                            #45393
                            Xoff
                            Bloqué

                              e-fan wrote:

                              question : qu’est ce que l’on fait avec l’ UUID “E5CAF8CF-590C-42DC-9CF0-2929552156A7

                              qui gère les identifiants au sein du club ?

                              Je prends e-fan : “0X2607

                              Après il faut que un gentil membre développe une application à mettre sur une tablette ou un smartphone (bidule qui me gonfle(le smartphone))

                              je vais gérer cela avec Boris ;)

                              reçu également un module pour tester avec vous

                              je prends lolo080 : R2-M5 0X2608 et R2-D2 0X2609

                              #45394
                              Anonyme

                                Le mien doit être à bord d’un avion ou d’un porte-conteneurs. 😥

                                #45395
                                Anonyme

                                  ouessan wrote:

                                  Le mien doit être à bord d’un avion ou d’un porte-conteneurs. 😥

                                  Le R2 ou eBeacon 😈

                                  Le mien eBeacon vient d’être commandé.

                                  J’ai trouvé quoi faire avec l’UUID, il faut passer 4 lignes de commande pour l’entrer dans la puce

                                  UUID: E5CAF8CF-590C-42DC-9CF0-2929552156A7

                                  AT+IBE0E5CAF8CF

                                  AT+IBE1590C42DC

                                  AT+IBE29CF02929

                                  AT+IBE3552156A7

                                  Pour nommer la puce il faut entrer la commande

                                  AT+NAMEe-fan (tu mets le nom qu’il te convient en orange)

                                  J’ai tout compris ou il manque un truc ?

                                  eBeacon morghulis :mrgreen:

                                15 sujets de 1 à 15 (sur un total de 24)
                                • Vous devez être connecté pour répondre à ce sujet.