Article BLE dans programmez, partie 2

Bonjour à tous,

Le dernier numéro du mensuel Programmez! (186) est en kiosque.

Programmez186

Vous trouverez en page 76 la partie 2 d’un article sur l’utilisation du Bluetooth Low Energy dans les applications universelles. La partie 1 se trouvant dans le numéro 185 de programmez (logique me direz-vous).

Article BLE partie 2

Cet article reprend les éléments de la session du même nom que j’ai jouée aux TechDays cette année.

Alors bonne lecture et amusez-vous bien avec le Bluetooth Low Energy et le SensorTag 🙂

Stéphane Sibué

Empreinte Guyzmo 360

Article sur le Bluetooth Low Energy dans Programmez!

Bonjour à tous,

Le dernier numéro du mensuel Programmez! (185) est en kiosque.

Programmez185

Parmi les très bons articles de ce dernier numéro, vous trouverez page 56 un article de GUYZMO sur la mise en œuvre du Bluetooth Low Energy dans les applications Windows Universelle. Cet article est découpé en deux parties, la seconde partie étant prévue pour le numéro de fin mai.

Article BLE partie 1

Cet article reprend les éléments de la session du même nom que j’ai jouée aux TechDays cette année.

Alors bonne lecture et amusez-vous bien avec le Bluetooth Low Energy et le SensorTag 🙂

Stéphane Sibué

Empreinte Guyzmo 360

Une manette de jeu réalisée avec un SensorTag

Si vous avez suivi un peu nos aventures vous savez que chez GUYZMO nous aimons beaucoup le SensorTag de Texas Instruments.

ti-sensortag

Après la station météo présentée aux TechDays lors de notre session sur « le Bluetooth Low Energy dans les applications Windows » qui utilisait les capteurs de pression atmosphérique, de température et d’humidité du SensorTag, je me suis demandé comment utiliser, de manière ludique, ses boutons de commande (2 boutons placés sur la partie haute du SensorTag) et ses accéléromètres.

J’avais développé un petit jeu pour Windows Phone, dans lequel le joueur pilote un petit vaisseau spatial devant tirer sur une multitude d’astéroïdes sans les percuter, et ce en avançant dans des niveaux de plus en plus difficiles (très classique me direz vous mais très amusant à coder).

J’ai donc adapté ce jeu pour utiliser un bouton de commande du SensorTag pour tirer, et ses accéléromètres pour déplacer le vaisseau. Le résultat final dans cette petite vidéo :

Stéphane Sibué

 

Bluetooth Low Energy sous Windows Phone : Différences entre Silverlight et WinRT

Comme vous le savez très certainement, si vous suivez un peu ce blog, j’ai présenté une session aux TechDays 2015 sur le Bluetooth Low Energy dans les applications Windows (sous entendu applications universelles Windows Store et Windows Phone), vous trouverez d’ailleurs quelques infos ici.

Je suis en train de préparer un article complet qui reprendra chaque point de cette session, mais en attendant je vous propose de voir quelques différences entre la gestion du BLE en WinRT et en Silverlight.

Actuellement vous pouvez développer des applications Windows Store uniquement en utilisant Windows RT, alors que pour Windows Phone vous avez le choix entre Windows RT et Silverlight.

Chose importante aussi, BLE n’est supporté qu’à partir de Windows Phone 8.1 et Windows 8.1 donc pour les versions précédentes on se contentera du Bluetooth classique.

Dernièrement j’ai voulu ajouter des fonctions BLE (Bluetooth Low Energy) dans une applications Windows Phone Silverlight et je me suis rendu compte de 2 choses importantes :

  • Les fonctions BLE en WinRT sont accessibles depuis SL mais ne fonctionnent pas.
  • Les fonctions BLE incluses dans SL fonctionnent mais sont différentes de celles de WinRT

Capabilities

Elles doivent être placées au même endroit, dans le fichier « Package.appxmanifest » du projet, qu’on soit en SL ou en WinRT.

Par exemple, déclaration de 2 GATT services :

   <Capabilities>
    <Capability Name="internetClient" />
    <m2:DeviceCapability Name="bluetooth.genericAttributeProfile">
      <m2:Device Id="any">
        <m2:Function Type="serviceId:0000ffe0-0000-1000-8000-00805f9b34fb"/>
        <m2:Function Type="serviceId:f000aa50-0451-4000-b000-000000000000"/>
      </m2:Device>
    </m2:DeviceCapability>
  </Capabilities>

Connexion à un service

Le code de connexion à un service (qui aura au préalable été déclaré dans les capabilities sinon vous n’aurez aucune possibilité de vous y connecter) est légèrement différent en Silverlight et en WinRT.

Voici une fonction qui recherche à se connecter à un service avec la vérification que le serveur est un SensorTag (code en WinRT puis en Silverlight) :

WinRT

N’oubliez pas de déclarer les espaces de noms suivants :

Windows.Devices.Bluetooth.GenericAttributeProfile
Windows.Devices.Enumeration

private async Task<GattDeviceService> GetDeviceService(Guid service)
{
    var filter = GattDeviceService.GetDeviceSelectorFromUuid(service);
    var deviceInfos = await DeviceInformation.FindAllAsync(filter);

    foreach (var deviceInfo in deviceInfos)
    {
        if (deviceInfo.Name == "TI BLE Sensor Tag")
        {
            // On a trouvé un SensorTag qui implémente le service recherché
            return await GattDeviceService.FromIdAsync(deviceInfo.Id);
         }
     }

    return null;
}

Silverlight

N’oubliez pas de déclarer les espaces de noms suivants :

Windows.Devices.Enumeration
Windows.Devices.Bluetooth
Windows.Devices.Bluetooth.GenericAttributeProfile

private async Task<GattDeviceService> GetDeviceService(Guid service)
{
    var deviceInfos = await DeviceInformation.FindAllAsync(BluetoothLEDevice.GetDeviceSelector());

    foreach (var deviceInfo in deviceInfos)
    {
        if (deviceInfo.Name == "TI BLE Sensor Tag")
        {
            // On a trouvé un SensorTag qui implémente le service recherché

            var bluetoothDevice = await BluetoothLEDevice.FromIdAsync(deviceInfo.Id);
            var gattService = bluetoothDevice.GetGattService(service);

            return gattService;
        }
    }

    return null;
}

Accès aux caractéristiques

Pour ce qui est d’accéder aux caractéristiques, le principe est le même en WinRT et en Silverlight.

Par contre, en Silverlight la manipulation des buffers est moins simple car les classes DataReader et DataWriter de Silverlight ne travaillent pas directement sur un IBuffer qui est systématiquement utilisé pour lire et écrire des données au niveau des caractéristiques.

Dans Silverlight le plus simple est de passer par un tableau de bytes en utilisant les méthodes ToArray() pour passer du IBuffer au tableau et AsBuffer() pour passer du tableau de bytes au IBuffer.

Note : Pour avoir accès à la méthode AsBuffer depuis un tableau de bytes vous devez déclarer l’espace de nom System.Runtime.InteropServices.WindowsRuntime, que vous soyez en WinRT ou en Silverlight.

 

Conclusion

Les différences ne sont pas énormes mais suffisamment importantes pour dérouter le développeur qui débute dans ce genre de développement.

 

Stéphane Sibué

 

 

 

 

La Grappe d’Or

Vous ne le savez peut-être pas mais GUYZMO est une société basée en Savoie, à Technolac très exactement et à ce titre elle est entourée de vignes et de viticulteurs (que nous saluons au passage).

GUYZMO a été retenue par Coeur de Savoie pour le développement d’une application iOS et Android, de type chasse au trésor.

Cette application destinée prioritairement aux jeunes de 8 à 15 ans et aussi aux familles, permettra de découvrir les richesses de la commune de Chignin (73800).

Chignin

Le but est de relever plusieurs défis qui permettront au final de trouver « La Grappe d’Or » qui protège depuis très longtemps la commune de Chignin. C’est Victor, un jeune garçon, gardien de la Grappe d’Or de son état, qui guidera les joueurs tout au long de cette chasse au trésor.

La grappe d'or

Au menu, de la cartographie, des quizz, des énigmes à résoudre, et beaucoup d’informations présentées de manière ludique qui permettront de bien comprendre l’histoire et le quotidien de ce beau site.

Nous sommes très heureux de participer à ce beau projet dans lequel nous devons gérer la création graphique (Cyril Delhomenie), les enregistrements sonores et bien sûr le développement de l’application mobile.

Stéphane Sibué

Session Guyzmo aux TechDays 2015

Cette année, les TechDays se dérouleront au Palais des Congrès à Paris les 10, 11 et 12 février 2015.

Ce sera encore une fois l’occasion de participer à plus de 300 sessions techniques, de rencontrer les acteurs des technologies Microsoft, avec en prévision plus de 18000 visiteurs sur 3 jours.

Le thème cette année est L’Ambient Intelligence :

L’Ambient Intelligence est à la fois une vision et déjà une réalité, rendue possible par les avancées technologiques de l’électronique, du cloud, du big data et du machine learning.  Une vision d’un monde dans lequel la technologie anticipera nos besoins, voire nos intentions.  Une réalité car les applications et les objets qui tirent profit de nos actions et des informations à notre disposition existent déjà et nous permettent de faire plus et mieux.

Aux TechDays 2015, l’Ambient Intelligence sera au cœur des sessions et de la zone d’exposition. Plénières, keynotes, retours d’expériences, présentations de projets concrets, nous vous montrerons comment nos technologies, celles de nos partenaires mais aussi du monde open source vous permettront de :

  • Concevoir et développer des applications et services intelligents,
  • Construire et opérer en toute sécurité les infrastructures requises,
  • Révéler les nouveaux usages professionnels et personnels et les opportunités business liées.

Et puis, l’Ambient Intelligence, c’est aussi ce qui se passe aux TechDays… lors de chaque rencontre, de chaque interaction, de chaque étincelle qui naîtra de votre présence à tous.

Cette année encore j’aurai la joie d’animer une session technique liée au développement Windows Phone dont voici le contenu :

Bluetooth Low Energy dans les applications Windows

Le Bluetooth Low Energy est un des protocoles clé de l’Internet des objets. Montres, bracelets, ampoules et autres portes clés l’exploitent à merveille. Venez en comprendre ses principes, son fonctionnement et sa mise en oeuvre au sein d’une application Windows Universelle au travers d’un exemple très simple que vous pourrez reproduire chez vous à moindre frais. Nous développerons une station météo connectée avec l’application mobile qui l’accompagne.

Comme expliqué dans le descriptif de la session, nous allons créer une petite station météo grâce à un petit appareil bien sympathique de chez Texas Instruments, le SensorTag. Il permet de tester divers capteurs (température, humidité, pression atmosphérique, etc) et discute en Bluetooth Low Energy.

ti-sensortag

Les données fournies par le SensorTag seront traitées et affichées par une petite application universelle (Windows Phone + Windows 8), ce qui nous permettra d’aborder tous les aspects de la communication BLE sous Windows RT.

Alors venez nombreux à cette session, ce sera une magnifique occasion d’échanger tous ensemble sur le développement d’applications mobiles et plus particulièrement sur l’utilisation du BLE dans vos applications Windows.

Stéphane Sibué

Empreinte Guyzmo 360

 

 

Application officielle Programmez!

Connaissez-vous le magazine Programmez!

LogoProgrammez

Ce magazine (papier et numérique) est le seul en France à s’adresser aux développeurs et aux métiers de l’informatique (nous y avons déjà écrit plusieurs articles techniques d’ailleurs).

GUYZMO a été choisi pour concevoir et développer l’application officielle du magazine Programmez! pour Android (fiche Google Play ici).

EcranProgrammezAndroid

Merci à François Tonic, son « papa » de nous avoir confié cette mission et de nous avoir fait confiance.

Nous en profitons pour vous signaler qu’une version pour Windows Phone a été développée par notre ami Toss Net.

Longue vie à Programmez! (et Fier d’être développeur).

Stéphane Sibué

Les objets connectés, la 4ème révolution industrielle ?

Alex Danvy est « Monsieur Objets connectés » chez Microsoft France. Il est plus précisément Technical Evangelist et à ce titre il anime des sessions techniques et participe à des conférences très ciblés sur le sujet (nous avons d’ailleurs animé ensemble une session aux derniers TechDays sur ce même sujet).

Pour le suive, son Twitter : @danvy

La dernière conférence d’Alex s’est tenue le 30 septembre 2014 au campus de Tours. J’ai trouvé cette conférence de 2h très intéressante. Alex aborde le sujet des objets connectés de manière globale et pointe du doigt un à un tous liens qui s’y rattachent (économiques, technologiques, éthiques, etc).

Je vous invite donc à découvrir cette conférence qui va sans aucun doute vous apporter quelques lumières et quelques clés sur un sujet très à la mode que l’on qualifie parfois (et c’est le cas dans cette conférence) de 4ème révolution industrielle.

Stéphane Sibué