bluetooth

Post on 16-Oct-2021

15 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Transmission Bluetooth

Electronique pour Arduino

F. Ferrero

Connectivité pour objets

Network

• WBAN : Wireless Body Area Network• WPAN : Wireless Personal Area Network• WLAN : Wireless local Area Network• WMAN : Wireless Metropolitan Area Network• WAN : Wide area Network

Technologies disponibles

Bluetooth - IEEE 802.15 - General

• Wireless Personal Area Networks (WPANs)• Communication within a persons operating space

• 1998 -IEEE 802.15.1 – ”Bluetooth”• King Harald Bluetooth (A.D. 940 to 985)

Ericsson (creator of bluetooth)

• 2002 - IEEE 802.15.1.1: Coexistence between 802.15.1 and 802.11

• 2004 - IEEE 802.15.2 – EDR

• 2010 -IEEE 802.15.4 – Low PowerBluetooth Low Energy (BLE)

Smart Bluetooth

5

Alphabet runique

Bluetooth

➢ bande ISM sans licence

(2.4 - 2.4835 GHz)

➢ Débit de 1Mbps

➢ Frequency Hopping (1600

Hops/sec)

➢ GFSK Modulation

(BT = 0.5, h = 0.28 - 0.35)

▪ Le Bluetooth est une technologie sans fil

conçu pour remplacer les câbles

➢ Faible portée (10 m)

▪ Les principales specifications radio:

2/50➢ Puissance de 0dBm (1mW)

Spécifications de la transmission

• Caractéristique de la Modulation :

Les radios Bluetooth utilisent un modulationGFSK (Gaussian Frequency Shift Keying)

où un bit à 1 est représenté par unedeviation de fréquence positive et un bit à 0par une deviation de fréquence negative.

Filtre Gaussien :Le filter permet de lisser le signaux digitauxpour limiter la bande passante fréquentielle.

7

Spécifications de la transmission

• Où fc est la fréquence centrale et fd est la deviation fréquentielle.

• fc − fd represente un bit 0 , fc + fd represente un bit 1.

• Dans le standard Bluetooth , l’indice de modulation est specifiéentre 0.28 et 0.35. L’indice de modulation est le rapport entre ladeviation fréquentielle 2fd et le débit. Donc, le fd correspondantdoit être compris entre 140 et 175 kHz.

8

Spécifications de la transmission

9

Piconets / Scatternet

Les topologies plus simples de réseau sont appelées Piconets

1 master -> 7 slavesLes topologies plus complexes de réseau sontappelées Scatternets et permettent de réunirplusieurs Piconets

10

Le standard Bluetooth est basé sur un mode de fonctionnement maître/esclave. Ainsi, on appelle

« picoréseau » (en anglais piconet) le réseau formé par un périphérique et tous les périphériques

présents dans son rayon de portée. Il peut coexister jusqu'à 10 picoréseaux dans une même zone de

couverture. Un maître peut être connecté simultanément à un maximum de 7 périphériques esclaves

actifs.

Bluetooth Adresses et Noms

Tous les systèmes Bluetooth on une adresse unique de 48-bit, communément appellée BD_ADDR.Cette adresse est visible sur la plupart des systèmes Bluetooth.Les systèmes bluetooth ont aussi un nom paramétrable qui permet de les reconnaitre facilement. Ce

nom est généralement présenté à l’utilisateur à la place de l’adresse, pour aider l’identification.La règle pour le nom n’est pas stricte, il peut avoir jusqu’à 248 bytes, et 2 systèmes peuvent avoir lemême nom.

Process de connectionPour créer une connection entre 2 systems Bluetooth, un process avec 3 étapes est necessaire :

1. Inquiry – L'établissement de la connexion commence par une phase appelée « phase d'inquisition » (en anglais « inquiry »), pendant laquelle le périphérique maître envoie une requête d'inquisition à tous les périphériques présents dans la zone de portée, appelés points d'accès. Tous les périphériques recevant la requête répondent avec leur adresse.2. Paging (Connecting) – Le périphérique maître choisit une adresse et se synchronise avec le point d'accès selon une technique, appelée paging, consistant notamment à synchroniser son horloge et sa fréquence avec le point d'accès.3. Connection – Un lien s'établit ensuite avec le point d'accès, permettant au périphérique maître d'entammer une phase de découverte des services du point d'accès, selon un protocole appelé SDP (Service Discovery Protocol).A l'issue de cette phase de découverte de services, le périphérique maître est en mesure de créer un canal de communication avec le point d'accès en utilisant le protocole L2CAP. Selon les besoins du service, un canal supplémentaire, appelé RFCOMM, fonctionnant au-dessus du canal L2CAP pourra être établi afin de fournir un port série virtuel.Il se peut que le point d'accès intègre un mécanisme de sécurité, appelé pairage (en anglais pairing), permettant de restreindre l'accès aux seuls utilisateurs autorisés afin de garantir un certain niveau d'étanchéité du picoréseau. Le pairage se fait à l'aide d'une clé de chiffrement communément appelée « code PIN » (PIN signifie Personal Information Number). Le point d'accès envoie ainsi une requête de pairage au périphérique maître. Ceci peut la plupart du temps déclencher une intervention de l'utilisateur pour saisir le code PIN du point d'accès. Si le code PIN reçu est correct, l'association a lieu.En mode sécurisé, le code PIN sera transmis chiffré à l'aide d'une seconde clé, afin d'éviter tout risque de compromission.

HC-05 HC-06 module

The HC-05 has the ‘full’ firmware on it: many

AT commands, and can be both master and

slave module. The HC-06 firmware on the

other hand only can be a slave device, with

very limited AT commands.

Or in other words:•The HC-05 module can build a connection to othermodules. E.g. a Robot being a master andconnecting to slave bluetooth module. Or in slavemode to make a wireless bridge to a notebook.•The HC-06 module only can be a slave. This makesit only useful for say connecting a notebook as amaster to a robot with a slave module e.g. for awireless serial bridge.

HC-06 module

• Attention à l’interface entre le Tx/Rx du HC-06 et de l’Arduino.

• Le HC-06 fonctionne en 3.3V

• L’Arduino en 5V.

• Pour protéger le HC-06, le Rxdoit utiliser un pont diviseur en tension

Configurer le HC-06Mode AT

//***********************************************/*

#include <SoftwareSerial.h> //Software Serial Port

#define RxD 10 //Pin 10 pour RX, PB2 sur votre board, a brancher sur le TX du HC-06

#define TxD 11 //Pin 11 pour TX, PB3 sur votre board, a brancher sur le RX du HC-06

SoftwareSerial BTSerie(RxD,TxD);

void setup()

{

Serial.begin(9600);

// Configuration du bluetooth

pinMode(RxD, INPUT);

pinMode(TxD, OUTPUT);

BTSerie.begin(9600);

}

•Module HC-06 (4 pins) -->

Arduino

VCC –> +5V

•GND –>GND

•TXD –> Pin 10 – PB2 (RX)

•RXD –> Pin 11 – PB3 (TX)

void loop()

{

char recvChar;

//On lit caractere par caractere sur le BTSerie et on affiche sur le Terminal Serie

if (BTSerie.available()) {

recvChar = BTSerie.read(); //lecture

Serial.print(recvChar); //ecriture

}

//On lit caractere par caractere sur le terminal et on affiche sur le BT Serie

if (Serial.available()) {

recvChar = Serial.read(); //lecture

BTSerie.write(recvChar); //ecriture

}

}

Code Bluetooth.ino sur :http://users.polytech.unice.fr/~ferrero/TPelec2

Attention : Sur votre moniteur série, prenez le mode : Pas de fin de ligne

Configurer le HC-06Sur le moniteur série

• Taper AT -> OK

• Version du module : AT+VERSION, Réponse : linvorV1.8 pour notre module.

• Changer la vitesse :AT+BAUD4 (4 pour 9600, 5 pour 19200, 6 pour 38400, 7 pour 57600)La modification du baud rate prend effet seulement après redémarrage du module.

• Changer le nom : AT+NAMEnom ->setNAME

• Changer le mot de passe :AT+PINnnnn ->setPIN

Attention : Quand votre HC-06 est synchronisé avec un master, les commandes AT ne fonctionnent plus

Appairage de votre HC-06 sur votre téléphone

• Rechercher depuis le menu Bluetooth de votre téléphone les appareils disponibles

• Sélectionner votre HC-06

• Utiliser votre code PIN

• Votre module doit apparaître comme appairé

Transférer une information de l’arduino vers le master• Télécharger sur votre smartphone l’application Bluetooth Serial

Controller (sur un Windows phone, application BTTerminal)

• Faire connect et selectionner votre HC-06

• Passez en mode terminal

• Taper « Ping » sur votre moniteur série

• Ca doit s’afficher sur votre application android

• Ecrivez « Pong » sur le terminal android

• Ca doit s’afficher sur le moniteur série.

Quand votre smartphone est connecté au HC-06, la LED ne clignote plus et reste allumée

Allumer une LED depuis le smartphone

Ajouter dans le code Arduino :

• Dans Setup : pinMode(13, OUTPUT);

• Dans Loop : à placer après recvChar = BTSerie.read(); //lecture

if(recvChar == ‘1’) {

digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(13, LOW); // turn the LED off by making the voltage LO

}

• Configurez dans l’application android un bouton pour envoyer ‘1’.

• Appuyez !

ATTENTION : la comparaison doit être faite avec ‘1’ (character) et non "1" (String)

Utilisation de l’application BlueTooth Electronics

Cette nouvelle app vous permet de créer un panel avec des boutons, indicateurs, texte, graphe, etc …

Vous pouvez aussi accéder aux informations de l’accélérométre de votre smartphone

Vos panels peuvent être importer ou exporter

BlueTooth Electronics : Oscilloscope avec écran sans fil• Editez un nouveau panel

• Sélectionner dans graphs un roll 10*6

• Faite le glisser dans votre panel

• Connecter votre potentiomètre sur A0

• Synchroniser l’application avec votre arduino,

• Run du panel avec le graph

void loop() {

char recvChar; BTSerie.write("*G");

BTSerie.print(analogRead(A0));BTSerie.write("*" );

delay(100); }

Utilisation de l’application BlueTooth Electronics

• Quand le graphe fonctionne, ajouter un bouton dans le panel

• Configurer le code sur l’Arduino pour allumer la LED quand vous appuyez sur le bouton, et l’éteindre quand vous relâchez le bouton

• Et le graphe doit toujours fonctionner !

Capteur de distance avec affichage sur le smartphone• http://www.keuwl.com/electronics/rduino

/bluet/05-ultrasonic-distance/

• Attention : il faut adapter le code à vos PIN de bluetooth

top related