 Hello and welcome to the third chapter of the STM32 WBA 5 MOOC. The purpose of this new video is to check together how to modify the existing code example to create a basic Bluetooth Low Energy Peripheral in 10 minutes just by modifying some parameters. Pour cela, nous avons besoin de vous installer le STM32 CUBE IDE version 1.14 minimum version. En termes de package CUBE, le STM32 CUBE WBA firmware package, nous avons besoin de vous installer la version 1.3 minimum. Ensuite, c'est bien d'avoir un terminal UR. Il peut être tera-term ou hyper-terminal, vous devez avoir sur votre laptop. Sur le côté smartphone, pour connecter à notre code exemple sur le Nucleoboard, nous aurons besoin de vous installer l'application STBLE Toolbox Smartphone, qui est disponible directement sur Apple Store ou Play Store sur iOS et Android. En termes de hardwares pré-requisites, toute cette session sera exécutée sur le Nucleoboard WBA 5.5. Cette Nucleoboard WBA 5.5 sera utilisée dans toute notre session pratique. Vous aurez également besoin de connecter à votre board un USB Type-C cable, type-C type-A, des idées pour pouvoir connecter le Nucleoboard directement à votre laptop. Nous allons maintenant commencer par la partie pratique. Nous allons commencer avec ce BASIC PERIFERAL dans 10 minutes. Cliquez et allez ! Maintenant, je pense que vous avez tout installé. Nous avons tous l'installation pré-requisite sur notre laptop, et nous avons tous les matériaux. Donc, c'est temps de commencer. Donc, pour le premier exercice ici, nous allons utiliser le BLE peer-to-peer serveur code exemple, qui est un code exemple existant. Nous allons l'importer et modifier ce code exemple pour customiser la date d'advertissement. Comme ici, nous allons changer le nom local. Ensuite, dans la seconde partie de la zone d'envoi, nous allons générer un code associé, flash et test, sur le Nucleoboard. Qu'est-ce qu'il y a, premièrement, le peer-to-peer serveur ? Peer-to-peer serveur est un profil GAT, basé sur Bluetooth Low Energy. C'est un profil propriétaire, donc il utilise une ID unique, l'unité de 128 bits, et nous verrons dans la prochaine chapter, pourquoi cette ID unique avec 128 bits. Mais basiquement, le peer-to-peer serveur se tournera sur le Nucleoboard et se communiquera avec un client de peer-to-peer sur le smartphone. Donc, notre smartphone sera le client GAT et le central GAT, alors que notre Nucleoboard sera le serveur GAT qui tournera sur le GAT peripheral. Et dans cet exemple, nous allons établir la connexion Bluetooth Low Energy entre deux devises et quand nous pressons le bouton sur le Nucleoboard, il envoie une notification pour le client GAT, donc pour notre smartphone et de notre client GAT, nous serons capables d'écrire les caractéristiques, de contrôler des leds et de tourner les leds sur le serveur GAT. Donc, à commencer, nous allons utiliser SCM32 Cube Ecosystem. SCM32 Cube Ecosystem, SCM32 CubeMix, ou CubeID, CubeMix est intégrée à CubeID. Nous allons commencer de trois niveaux différents. Nous pouvons commencer à l'exemple des niveaux, des niveaux de bord. Les niveaux de bord peuvent être Nucléo WBA55, ce qui veut dire que tout le hardware est déjà configuré selon la configuration des niveaux de bord. Ou, nous pouvons aussi commencer à un niveau chipset. Cela veut dire que, par exemple, si vous décidez de votre propre PCB, vous allez commencer à un niveau chipset. Mais, en revanche, pour ce premier clic, nous allons commencer avec l'option n°1, qui commence par l'application d'exemple, en ce cas, c'est une complète application sur le Nucléo Board, ici, BLE, peer-to-peer, serveur. Comment ça fonctionne pour connecter un Nucléo Board à votre PC ? Tout d'abord, nous avons ce Nucléo, qui consiste d'un BLE plus d'un BLE d'autor. Le BLE d'autor a le WBA55 sur le BLE, avec l'antenne et tout ce qu'il a besoin d'exécuter. Sur le BLE d'autor, nous avons des leds et des boutons. Nous avons trois boutons d'utilisation, ici, un reset mais aussi, des leds que nous allons utiliser pour cette session. Si vous regardez sur l'autre côté de votre BLE, vous verrez une autre chipset, qui est STiLink. C'est notre debug et flash probe. Nous allons l'utiliser pour flash, debug, mais aussi comme interface, USB to UART interface pour mettre des blogs, par exemple. Alors, nous allons commencer avec le BLE peer-to-peer serveur. Alors, nous allons ouvrir le BLE peer-to-peer serveur. Pour faire ça, nous allons premièrement ouvrir STiLink 32 Cube IDE et sélectionner le BLE peer-to-peer serveur. Donc, pour cela, je vais ouvrir STiLink 32 Cube IDE sur mon laptop. Alors, en ouvrant STiLink 32 Cube IDE, vous devez obtenir une sorte d'offre d'offres et je vais sélectionner un nouveau STiLink 32 projet. Je clique sur sélectionner. Et ici, cela va initialiser cette database et vous devez obtenir cette affiche. Comme mentionné précédemment, cela est équivalent à STiLink 32 Cube MX TOOL. Ici, vous devez sélectionner un projet du level chipset. Et ce sera le purpose d'un Anzon 1 et d'un Anzon 2 des sessions qui vont arriver dans la prochaine vidéo. Ou nous pouvons commencer d'un bord. Si nous commençons d'un bord, nous allons en parler de nucleaux. Cela signifie que cela va initialiser tout le hardware pour ce bord. Ou nous pouvons commencer d'un exemple. Et pour cette session, nous allons commencer d'un exemple et nous allons commencer d'un BLE peer-to-peer serveur. Donc sur le nom ici, nous allons simplement type BLE underscore peer-to-peer serveur. Et puis un liste de codes d'exemple matchant ce nom. Comme vous pouvez le voir, il y a beaucoup d'occurrence de le serveur peer-to-peer et ce code d'exemple, comme beaucoup de nos ST micro-électroniques codes d'exemple sont disponibles sur plusieurs plateformes. Donc nous allons sélectionner l'un pour le BLE WBA 55. Donc n'hésitez pas à cliquer sur le link bleu si vous cliquez sur le link bleu vous aurez accès à la documentation du bord du BLE alors nous allons simplement sélectionner la ligne et cliquer sur la prochaine. Par défaut il s'agit de créer le projet dans votre workspace défaut ce qui est ce que nous allons sélectionner ici. Et à cette stage STM32Q by DE va générer le code pour nous. Donc la première fois que vous exécutez ça peut prendre quelques minutes et je clique juste sur la fin. Et maintenant si je regarde sur le project explorer sur le gauche je peux voir mon projet qui est déjà ici. Maintenant le purpose de cette zone et de cette session de cliquer est de modifier la date d'advertissement et ce sera le propose maintenant. Pour cela je vais double-cliquer sur le .ioc file. Je vais double-cliquer sur le .ioc file. Et ici le .ioc file c'est un projet c'est un projet Cubemix project avec la définition de toutes les pinouts projet composants etc. Peripheral use dans le projet. Et quand vous ouvrez vous devez recevoir ce scénario. Ok donc quand le .ioc est complètement ouvert nous avons accès à ce nouveau panel qui permet de configurer tout dans notre exemple de projet. Donc ce panel est divisé dans 3 parties. Sur la droite vous avez une vue graphique de la pinoutise de la pinoutise. Ici vous pouvez voir dans le purple les différents gpu.io que l'on utilise pour le bouton et le bouton. Vous avez aussi la connexion pour le uart pour l'externale la vitesse bas et la vitesse haute cristal. Ensuite sur la gauche de ce scénario nous avons accès à toutes les compétences toutes les softwares et les compétences qu'on utilise dans ce projet. C'est-à-dire qu'on peut voir qu'on utilise des RAM, on utilise les peripherals, des timers mais aussi des compétences softwares comme le STM32 WPAN et celui-ci est lié à la vitesse bas et la vitesse bas en général. Dans notre cas c'est la vitesse bas donc ici tout est configuré selon le code exemple de l'idée. Et l'idée ici est maintenant de modifier le data d'advertissement et spécialement le nom local. Pour cela nous allons aller à la tab d'advertissement BLE. Donc une fois plus sélection de compétences STM32 WPAN aller à la tab d'advertissement BLE et vérifier le nom local et nous allons modifier ce nom local. Je vais l'appeler ici WBA MOOC. Bien sûr ici, vous êtes free d'adverter ce que vous voulez comme nom. La seule limitation c'est le maximum de d'advertissement d'advertissement. Ici, le maximum d'advertissement pour ce nom est up to 10 bytes. Si vous allez plus que 10 bytes il n'y a pas suffisant 3 spaces dans l'advertissement d'adverter. C'est une limitation ici liée à la specification BLE. Ensuite nous modifions le nom local mais nous allons aussi modifier le nom de dévice. Pourquoi nous avons besoin de modifier le nom de dévice ici ? C'est parce que le management de l'IOS de l'IOS dévise le nom local donc le nom local est partie de l'advertissement de l'advertissement mais priori pour la première connexion une fois que nous établissons la première connexion en utilisant l'IOS dévise l'IOS va associer l'adresse mac à le nom de dévice et puis après il se déplace seulement le nom de dévice donc l'idée est d'utiliser le nom de dévice equal à le nom de dévice c'est le standard de management bien sûr mais nous advise d'utiliser le nom de dévice equal à le nom de dévice et c'est ce que nous allons faire maintenant donc je vais entrer le même ici WBA MOOC donc ici je mets WBA MOOC comme le nom de dévice et le nom de dévice donc maintenant je suis prêt donc je peux demander de générer le code avec ce nom de dévice et un nom de dévice local donc je vais simplement cliquer sur ce nom ici pour générer le code et il me demande de changer de perspective pour aller vers la perspective le code est maintenant sous la génération la première fois que vous générez le code il peut prendre quelques minutes il peut prendre quelques minutes après si vous simplement change un setting il peut aller très vite ok le code est maintenant ouvert je peux ouvrir le code je peux vérifier si le code est bien généré si j'ai ouvert STM32WPAN j'explique ce folder vais à appp double-click apppbl.c scroller un peu je peux voir que le nom de dévice et le nom local d'advertiser le file se change avec le nom que je set dans l'interface graphique donc je peux maintenant construire le projet et placer le projet pour construire le projet je vais simplement cliquer sur cet icon amour ici donc cliquez sur construire et on va voir si le construit est ok vous avez accès au console le console et le potentiel issue durant le construit c'est disponible ici et le côté bas à gauche donc attendez pour la fin de ce construit je vais ensuite connecter mon nucleo-board à mon laptop pour pouvoir placer le projet donc le construit est maintenant terminé 0 warning donc bon je peux maintenant placer le projet et placer mon exemple code pour ça je vais cliquer sur ce icon amour ici c'est le icon amour et la première fois il dit ok je ne sais pas quel projet je vais simplement cliquer sur la configuration amour donc ici près de cet arreur il y a un bouton scroll configuration amour je vais sélectionner le C STM32 C C++ application table clique et je vais sélectionner mon .elf peer to peer server.elf et clique sur Run ici STM32 Q by D grâce à le on-board ST-Link je vais pouvoir placer et download mon bord et maintenant ceci est terminé je vais maintenant jouer avec mon peer-to-peer server maintenant voir ce qui se passe sur le WBA55 bord mon WBA55 est maintenant complément avec le BLE peer-to-peer server firmware je peux voir même une blanche bleue qui indique l'application c'est-à-dire que je peux utiliser mon smartphone pour connecter mon smartphone avec le data en disant bonjour je suis ici et mon nom est le nom local je le définis donc sur le site smartphone je vais utiliser l'application STBLE toolbox cela va commencer automatiquement pour scanner toutes les batteries de Bluetooth autour toutes les devices d'advertissement et l'un de ces devices qui est d'advertissement c'est mon WBA MOOC c'est le nom local que je définis juste précédemment donc je peux connecter à l'un de les connectés je peux voir trois services deux services génériques que vous ne pouvez pas voir sur l'iphone sur iOS parce qu'ils sont automatiquement filtrés mais nous avons ce propriétaire service peer-to-peer qui est celui qu'on regarde aujourd'hui donc je clique sur ce peer-to-peer server et ici je peux voir l'icône LED que je peux utiliser pour togner le LED sur mon boulot vous voyez si je togue le boulot sur l'iphone le boulot bleu est togner sur mon boulot c'est à dire que je peux contrôler le boulot sur mon boulot en la même façon si je pousse le B1 bouton j'ai reçu une information une notification bouton press je peux le faire une deuxième fois donc cela signifie ici que je peux contrôler le LED sur le boulot et je peux recevoir une notification sur mon boulot cela signifie que je peux discuter sur mon boulot mon boulot dans les directions le dernier point sur cette section que j'aimerais partager c'est la possibilité d'avoir quelques logs en utilisant cette billet code exemple mais c'est valide pour tous code exemples donc pour cela je vais simplement ouvrir un hyperterminal ou teraterm et si c'est un terminal tu peux utiliser et connecter à mon boulot mon boulot c'est 110 sur mon côté donc je vais le sélectionner ok puis je vais sélectionner le port serial à 115 bits par seconde c'est valide et maintenant pour exemple si je reset mon boulot je peux voir tous les logs de le principal call pour le billet setting takes power level gap getting it start advertising etc. donc cela peut être très utile pour votre débug session et ces logs peuvent être très simples bien fait nous avons été ensemble pour customiser un exemple de code pour faire le besoin pour illustrer cela nous customiser le data et nous avons été pouvoir rébuilder cet exemple de code et faire le travail sur notre boulot maintenant nous utilisons le boulot nucléaire et la prochaine session que mon collègue Dominique va vous présenter c'est cette fois pour commencer et faire notre application donc laisse-moi laisser la flore à mon collègue Dominique qui va vous présenter cette prochaine session merci pour votre attention et à bientôt