SlideShare une entreprise Scribd logo
LIAISONS SANS FILS ENTRE UN
MICROCONTRÔLEUR ET UN
APPAREIL ANDROID
2017-2018
© Imene Sghaier
ISET Nabeul
SEM3
2
 Objectifs spécifiques
 Se familiariser avec la manipulation des Liaison Bluetooth et Wifi avec un
microcontrôleur
 Eléments de contenu
• Technologie Bluetooth
• Liaison bluetooth
• Outils nécessaires
• Du côté du microcontrôleur
• Du côté de Android
• Activer le bluetooth
• Classes Spécifiques
• Connexion
• Envoi de données
• Réception de données
• Déconnexion
• Gérer les réseaux Wi-Fi
• La classe WifiManager
• La classe WifiInfo
• Gérer les points d’accès
• Détection des réseaux
 Volume Horaire :
 Cours : 3 heures
OBJECTIFS ET ÉLÉMENTS DE CONTENU
Imene Sghaier-Développement Mobile Avancé
TECHNOLOGIE BLUETOOTH
 Le Bluetooth est une technologie de communication radio
de courte distance, créée pour simplifier les connexions
entre appareils. Ce système a été conçu dans le but de
remplacer les câbles des imprimantes, des kits « main libre
», des souris/claviers, téléphones portables/PDA, etc.
 La plate-forme Android supporte le Bluetooth afin de
permettre à des appareils d’échanger des données entre
elles.
 Pour pouvoir profiter de ce système de connexion, Android
apporte un ensemble d’API que nous allons détailler dans
cette partie.
Imene Sghaier-Développement Mobile Avancé
3
4
• Technologie Bluetooth
• Liaison bluetooth
• Outils nécessaires
• Du côté du microcontrôleur
• Du côté de Android
• Activer le bluetooth
• Classes Spécifiques
• Connexion
• Envoi de données
• Réception de données
• Déconnexion
• Gérer les réseaux Wi-Fi
PLAN DU CHAPITRE
Imene Sghaier-Développement Mobile Avancé
LIAISON BLUETOOTH
 La liaison Bluetooth se fait par le profil Bluetooth SPP
(Serial Port Profile), qui permet d'émuler une
connexion série.
 Cette méthode est donc compatible avec n'importe
quel microcontrôleur ayant une interface série (PIC,
MSP430, Atmel AVR (Arduino), ...).
 Pour ce fait, votre smartphone (ou tout autre dispositif
sous Android) doit avoir le bluetooth bien évidement et
doit tourner sur Android 2.0 minimum : les fonctions
pour l'utilisation bluetooth ne sont présente dans le
SDK qu'à partir de l'API Level 5.
Imene Sghaier-Développement Mobile Avancé
5
LIAISON BLUETOOTH: OUTILS NÉCESSAIRES
 Le microcontrôleur doit pouvoir communiquer par
une liaison série, aussi appelée RS232, ou UART.
Quelques exemples de microcontrôleur :
PIC18F2550, PIC18F14K50, PIC18F1320,
PIC16F886, ... ou bien chez TI : MSP430G2231,
MSP430G2452, ...
 Il nous faut un transmetteur Bluetooth, qui sera
connecté au microcontrôleur. Nous devons choisir un
transmetteur prenant en charge le profil SPP et
compatible avec une liaison série. Il existe de
nombreux modules, avec une connexion DB9, DIP
ou CMS.
 Attention, selon le microcontrôleur choisi et le
module que choisi, on aura peut être besoin d'une
interface du type MAX232 afin de rendre les tensions
compatibles entre elles.
Imene Sghaier-Développement Mobile Avancé
6
LIAISON BLUETOOTH: DU CÔTÉ DU MICROCONTRÔLEUR
 Tout d'abord il faut relier le microcontrôleur au module, et à ne
pas oublier, le câblage croisé : il faut relier la pin TX du
microcontrôleur à la pin RX du module bluetooth et
inversement la pin RX avec la TX du module.
 Il faut ensuite configurer le microcontrôleur et/ou le module
bluetooth afin qu'ils utilisent la même vitesse de connexion, le
même baud rate.
 Cette vitesse n'intervient pas pour la suite (pour Android) car la
liaison bluetooth entre le module et Android se fait par le
protocole RFCOMM, qui va beaucoup plus vite que la liaison
série. Le module bluetooth se charge de faire la 'conversion'
entre ces deux protocoles. On pourra donc choisir le baud rate
que nous voulons.
 Il n'y a pas de règle spéciale / de protocole pour l'envoi ou la
réception des données pour le microcontrôleur, il suffit
d'envoyer les données simplement, comme pour une liaison
série.
Imene Sghaier-Développement Mobile Avancé
7
LIAISON BLUETOOTH: DU COTÉ DE ANDROID
 Afin de pouvoir utiliser le bluetooth dans votre application,
il faudra ajouter les permissions
 BLUETOOTH
 BLUETOOTH_ADMIN
 BLUETOOTH_ADMIN n'est nécessaire que pour la
découverte, l'association de périphériques et
l'activation/désactivation du bluetooth.
 Il faut ajoutez ceci dans l'AndroidManifest.xml
Imene Sghaier-Développement Mobile Avancé
8
LIAISON BLUETOOTH: DU COTÉ DE ANDROID
 Pour vérifier la présence du Bluetooth sur le terminal
on doit faire
 Avant d'être en mesure d'utiliser le Bluetooth dans une
application, il peut être de bonne pratique de vérifier si
le Bluetooth est activé.
Imene Sghaier-Développement Mobile Avancé
9
LIAISON BLUETOOTH: ACTIVER LE BLUETOOTH
 Comme il est fort probable que le Bluetooth ne soit
pas activé au moment voulu nous allons voir les
deux manières possibles de faire pour l'allumer.
 La première façon est de demander à l'utilisateur de
le faire lui-même. Pour cela nous allons afficher une
boîte de dialogue demandant à l'utilisateur s'il veut
oui ou non activer son Bluetooth.
 Ce n’est pas la peine de coder vous-même la boîte
de dialogue, le système sait le faire tout seul. Elle
contiendra le message dans la langue du système de
l'utilisateur ainsi que deux boutons, "Oui" et "Non".
Imene Sghaier-Développement Mobile Avancé
10
LIAISON BLUETOOTH: ACTIVER LE BLUETOOTH
 La deuxième façon de faire est d'activer le Bluetooth
directement, sans demander son consentement à l'utilisateur.
Pour ce faire il va nous falloir demander une nouvelle permission
pour allumer et éteindre le Bluetooth Dans le fichier
Manifest.xml
 Allumage du Bluetooth dans le code java
Imene Sghaier-Développement Mobile Avancé
11
LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES
 3 classes spécifiques du SDK sont nécessaires :
 BluetoothDevice : Classe qui représente un périphérique
bluetooth
 BluetoothAdapter : Classe qui représente le module
bluetooth de votre Android, elle permet de scanner les
périphériques présents, d'activer / désactiver le bluetooth,
 BluetoothSocket : Classe qui permet d'obtenir les canaux
d'écriture (émission) et de lecture (réception) du périphérique
 Pour pouvoir utiliser ces classes, il faut donc les importer
Imene Sghaier-Développement Mobile Avancé
12
LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES
 La classe va donc contenir le 'périphérique', sa
'connexion', et ses canaux d'entrée et sortie :
Imene Sghaier-Développement Mobile Avancé
13
LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES
 Première étape: récupérer le BlutoothDevice de
notre périphérique, pour cela, on utilise la fonction
getBondedDevices() de la classe
BluetoothAdapter qui permet d'obtenir la liste
des périphériques associés à Android.
 On récupère le module bluetooth par défaut
d'Android avec la
fonction BluetoothAdapter.getDefaultAdapter().
Il suffit de chercher dans cette liste notre
périphérique.

Imene Sghaier-Développement Mobile Avancé
14
LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES
 On récupère ensuite le BluetoothSocket de notre
périphérique avec la fonction
 Cette fonction prend en paramètre un UUID, on utilise la
valeur suivante qui indique une connexion 'port série'.
 Les canaux d'émission/réception sont ensuite récupérés avec les
fonctions getInputStream et getOutputStream.
 Les canaux seront invalides tant que le Bluetooth n'est pas
connecté.
Imene Sghaier-Développement Mobile Avancé
15
Imene Sghaier-Développement Mobile Avancé
16
LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES
LIAISON BLUETOOTH: CONNEXION
 Pour se connecter, on utilise la fonction connect() de la
classe BluetoothSocket.
 La connexion pouvant prendre du temps, il est nécessaire
de la lancer dans un autre thread pour éviter de bloquer
l'application.
Imene Sghaier-Développement Mobile Avancé
17
LIAISON BLUETOOTH: ENVOI DE DONNÉES
 Pour envoyer des données, on va tout simplement
utiliser les fonctions write(..) de OutputStream
Imene Sghaier-Développement Mobile Avancé
18
LIAISON BLUETOOTH: RÉCEPTION DE DONNÉES
 Pour recevoir des données, le plus simple est de créée
un Thread qui va vérifier l'arrivé de données en
permanence.
 On utilise les fonctions read(…) et available() de la
classe InputStream pour lire ces données et vérifier si
de nouvelles sont disponibles.
 Or, on ne peut afficher les données depuis ce nouveau
thread : Android impose de les envoyer dans le thread de
l'UI. On utilise donc la classe Handler. On doit alors
modifier le constructeur pour récupérer un Handler du
thread de l'UI.
Imene Sghaier-Développement Mobile Avancé
19
Imene Sghaier-Développement Mobile Avancé
20
LIAISON BLUETOOTH : RÉCEPTION DE DONNÉES
Imene Sghaier-Développement Mobile Avancé
21
LIAISON BLUETOOTH : RÉCEPTION DE DONNÉES
 Et dans le thread de l'UI, il suffit de créer un Handler et
de le faire passer dans le constructeur de notre classe.
Imene Sghaier-Développement Mobile Avancé
22
LIAISON BLUETOOTH : RÉCEPTION DE DONNÉES
 Enfin, pour fermer la connexion, il y a la
fonction close() de BluetoothSocket
Imene Sghaier-Développement Mobile Avancé
23
LIAISON BLUETOOTH : DECONNEXION
24
• Technologie Bluetooth
• Liaison bluetooth
• Gérer les réseaux Wi-Fi
• La classe WifiManager
• La classe WifiInfo
• Gérer les points d’accès
• Détection des réseaux
PLAN DU CHAPITRE
Imene Sghaier-Développement Mobile Avancé
GÉRER LES RÉSEAUX WI-FI
 Le Wi-Fi est une fonctionnalité importante car elle offre aux
appareils qui ne sont pas dotés de fonctions de téléphonie l’accès
à l’Internet.
 Pour manipuler les données relatives aux réseaux Wi-Fi, vous
devez faire appel à un objet WifiManager.
 Cet objet sert d’interface entre le service système qui gère le Wi-
Fi et votre application. Il permet d’effectuer les opérations
suivantes :
• fournir des informations sur la connexion actuelle ;
• renvoyer la liste des points d’accès à portée ;
• manipuler les configurations enregistrées par l’utilisateur ;
• allumer ou éteindre la connexion Wi-Fi.
Imene Sghaier-Développement Mobile Avancé
25
Imene Sghaier-Développement Mobile Avancé
26
GÉRER LES RÉSEAUX WI-FI : LA CLASSE WIFIMANAGER
https://developer.android.com/reference/android/net/wifi/WifiManager.html
Méthode Description
static int calculateSignalLevel(int rssi, int
numLevels)
Calcule le niveau du signal
boolean disableNetwork(int netId) Désactive le Wifi avec un ID
boolean disconnect() Se déconnecte du point d’accès qui est
couremment actif
boolean enableNetwork(int netId, boolean
attemptConnect)
Permet un réseau précédement configuré à
se connecter avec
List<WifiConfiguration>
getConfiguredNetworks()
Renvoie liste des réseaus configurés
WifiInfo getConnectionInfo() Renvoie l’objet WifiInfo avec des
informations dynamiques
List<ScanResult> getScanResults() Renvois la liste des points d'accès
disponibles du dernier scan
GÉRER LES RÉSEAUX WI-FI : LA CLASSE WIFIINFO
 La classe WifiInfo décrit l’état de n’importe quel
connexion wifi qui est active ou qui est sur le point de
l’être
27
Méthode Description
Int getFrequency() Renvoie la frequence
int getIpAddress() Renvoie l’adresse IP
int getLinkSpeed() Renvoie la vitesse
String getMacAddress() Renvoie l’adresse Mac
int getNetworkId() Renvoie l’ID du reseau
https://developer.android.com/reference/android/net/wifi/WifiInfo.html
Imene Sghaier-Développement Mobile Avancé
GÉRER LES RÉSEAUX WI-FI : GÉRER LES POINTS D’ACCÈS
 Avant de pouvoir rejoindre un réseau Wi-Fi, vous devez d’abord
détecter les points d’accès.
 Pour demander à l’appareil quels sont les points d’accès actifs, vous
devez utiliser la méthode startScan. Le retour de cette méthode est
immédiat : elle exécute une recherche en tâche de fond et les résultats
seront connus plus tard grâce à la réception d’un événement
asynchrone.
 La valeur booléenne retournée par la méthode startScan indique
uniquement si la détection des points d’accès a été initialisée.
 Une fois la détection des réseaux Wi-Fi lancée, vous pourrez récupérer
le résultat en appelant la méthode getScanResult qui vous renverra
une liste de résultats contenant les points d’accès disponibles.
Imene Sghaier-Développement Mobile Avancé
28
GÉRER LES RÉSEAUX WI-FI : DÉTECTION DES RÉSEAUX
Imene Sghaier-Développement Mobile Avancé
29

Contenu connexe

Similaire à chapitre 7 Android 2.pptx

Ldu 1900 D User Guide Ver09
Ldu 1900 D User Guide Ver09Ldu 1900 D User Guide Ver09
Ldu 1900 D User Guide Ver09guestfaf2fc
 
Workshop IoT Hub : Pilotez une ampoule connectée
Workshop IoT Hub : Pilotez une ampoule connectéeWorkshop IoT Hub : Pilotez une ampoule connectée
Workshop IoT Hub : Pilotez une ampoule connectée
Scaleway
 
Communication entre android et arduino via bluetooth
Communication entre android et arduino via bluetoothCommunication entre android et arduino via bluetooth
Communication entre android et arduino via bluetooth
Bedis ElAchèche
 
Logiciels de prise de contrôle day
Logiciels de prise de contrôle dayLogiciels de prise de contrôle day
Logiciels de prise de contrôle day
mickaelday
 
Niji rapport de prévention 2021 - android 12
Niji   rapport de prévention 2021 - android 12Niji   rapport de prévention 2021 - android 12
Niji rapport de prévention 2021 - android 12
Gabriel DUPONT
 
Projet boat loader avec le pic16F887_rapport
Projet boat loader avec le pic16F887_rapportProjet boat loader avec le pic16F887_rapport
Projet boat loader avec le pic16F887_rapport
Mouhcine Nid Belkacem
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 
Découverte et prise en main des cartes Micro:bits
Découverte et prise en main des cartes Micro:bitsDécouverte et prise en main des cartes Micro:bits
Découverte et prise en main des cartes Micro:bits
Julien Devriendt
 
Rapport home handicap
Rapport home handicapRapport home handicap
Rapport home handicap
Marwa Bhouri
 
Fichier_Compétences
Fichier_CompétencesFichier_Compétences
Fichier_CompétencesYang Fei
 
Java ME by Amdane Samb at BarCamp Goree, December 2010
Java ME by Amdane Samb at BarCamp Goree, December 2010Java ME by Amdane Samb at BarCamp Goree, December 2010
Java ME by Amdane Samb at BarCamp Goree, December 2010Christelle Scharff
 
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
TelecomValley
 
Catalogue Communications Industrielles 2019
Catalogue Communications Industrielles 2019Catalogue Communications Industrielles 2019
Catalogue Communications Industrielles 2019
DISTRIMEDIA
 
Rapport des travaux
Rapport des travauxRapport des travaux
Rapport des travaux
Bouras Mohamed
 
L&rsquo;internet de séjour et le web mobile _ Ateliers numériques en Pays de ...
L&rsquo;internet de séjour et le web mobile _ Ateliers numériques en Pays de ...L&rsquo;internet de séjour et le web mobile _ Ateliers numériques en Pays de ...
L&rsquo;internet de séjour et le web mobile _ Ateliers numériques en Pays de ...
Pays de Bergerac
 
Communiquer en BLE: Les pièges à éviter !
Communiquer en BLE: Les pièges à éviter !Communiquer en BLE: Les pièges à éviter !
Communiquer en BLE: Les pièges à éviter !
Alexis DUQUE
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.ppt
mahamaalej3
 
Rapport application chat
Rapport application chatRapport application chat
Rapport application chat
Tbatou sanae
 
Bluemix Paris Meetup - Session #9 - 10 juin 2015 - Internet des Objets 3.0
Bluemix Paris Meetup - Session #9 - 10 juin 2015 - Internet des Objets 3.0Bluemix Paris Meetup - Session #9 - 10 juin 2015 - Internet des Objets 3.0
Bluemix Paris Meetup - Session #9 - 10 juin 2015 - Internet des Objets 3.0
IBM France Lab
 

Similaire à chapitre 7 Android 2.pptx (20)

Ldu 1900 D User Guide Ver09
Ldu 1900 D User Guide Ver09Ldu 1900 D User Guide Ver09
Ldu 1900 D User Guide Ver09
 
Workshop IoT Hub : Pilotez une ampoule connectée
Workshop IoT Hub : Pilotez une ampoule connectéeWorkshop IoT Hub : Pilotez une ampoule connectée
Workshop IoT Hub : Pilotez une ampoule connectée
 
Communication entre android et arduino via bluetooth
Communication entre android et arduino via bluetoothCommunication entre android et arduino via bluetooth
Communication entre android et arduino via bluetooth
 
Cours J2ME
Cours J2MECours J2ME
Cours J2ME
 
Logiciels de prise de contrôle day
Logiciels de prise de contrôle dayLogiciels de prise de contrôle day
Logiciels de prise de contrôle day
 
Niji rapport de prévention 2021 - android 12
Niji   rapport de prévention 2021 - android 12Niji   rapport de prévention 2021 - android 12
Niji rapport de prévention 2021 - android 12
 
Projet boat loader avec le pic16F887_rapport
Projet boat loader avec le pic16F887_rapportProjet boat loader avec le pic16F887_rapport
Projet boat loader avec le pic16F887_rapport
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 
Découverte et prise en main des cartes Micro:bits
Découverte et prise en main des cartes Micro:bitsDécouverte et prise en main des cartes Micro:bits
Découverte et prise en main des cartes Micro:bits
 
Rapport home handicap
Rapport home handicapRapport home handicap
Rapport home handicap
 
Fichier_Compétences
Fichier_CompétencesFichier_Compétences
Fichier_Compétences
 
Java ME by Amdane Samb at BarCamp Goree, December 2010
Java ME by Amdane Samb at BarCamp Goree, December 2010Java ME by Amdane Samb at BarCamp Goree, December 2010
Java ME by Amdane Samb at BarCamp Goree, December 2010
 
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
 
Catalogue Communications Industrielles 2019
Catalogue Communications Industrielles 2019Catalogue Communications Industrielles 2019
Catalogue Communications Industrielles 2019
 
Rapport des travaux
Rapport des travauxRapport des travaux
Rapport des travaux
 
L&rsquo;internet de séjour et le web mobile _ Ateliers numériques en Pays de ...
L&rsquo;internet de séjour et le web mobile _ Ateliers numériques en Pays de ...L&rsquo;internet de séjour et le web mobile _ Ateliers numériques en Pays de ...
L&rsquo;internet de séjour et le web mobile _ Ateliers numériques en Pays de ...
 
Communiquer en BLE: Les pièges à éviter !
Communiquer en BLE: Les pièges à éviter !Communiquer en BLE: Les pièges à éviter !
Communiquer en BLE: Les pièges à éviter !
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.ppt
 
Rapport application chat
Rapport application chatRapport application chat
Rapport application chat
 
Bluemix Paris Meetup - Session #9 - 10 juin 2015 - Internet des Objets 3.0
Bluemix Paris Meetup - Session #9 - 10 juin 2015 - Internet des Objets 3.0Bluemix Paris Meetup - Session #9 - 10 juin 2015 - Internet des Objets 3.0
Bluemix Paris Meetup - Session #9 - 10 juin 2015 - Internet des Objets 3.0
 

Plus de Institut Supérieur des Etudes Technologiques de Nabeul

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
chapitre 6 Android 2.pptx
chapitre 6 Android 2.pptxchapitre 6 Android 2.pptx
chapitre 5 Android 2.pptx
chapitre 5 Android 2.pptxchapitre 5 Android 2.pptx
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 3 Android 2.pptx
chapitre 3 Android 2.pptxchapitre 3 Android 2.pptx
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdfchap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdf
Institut Supérieur des Etudes Technologiques de Nabeul
 
Introduction à l'IoT.pdf
Introduction à l'IoT.pdfIntroduction à l'IoT.pdf
chap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptxchap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptx
Institut Supérieur des Etudes Technologiques de Nabeul
 
Chap 6 POO Java.pptx
Chap 6 POO Java.pptxChap 6 POO Java.pptx

Plus de Institut Supérieur des Etudes Technologiques de Nabeul (20)

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
chapitre 8 Android 2.pptx
chapitre 8 Android 2.pptxchapitre 8 Android 2.pptx
chapitre 8 Android 2.pptx
 
chapitre 6 Android 2.pptx
chapitre 6 Android 2.pptxchapitre 6 Android 2.pptx
chapitre 6 Android 2.pptx
 
chapitre 5 Android 2.pptx
chapitre 5 Android 2.pptxchapitre 5 Android 2.pptx
chapitre 5 Android 2.pptx
 
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 4 Android 2.pptx
 
chapitre 3 Android 2.pptx
chapitre 3 Android 2.pptxchapitre 3 Android 2.pptx
chapitre 3 Android 2.pptx
 
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 2 Android 2.pptx
 
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chapitre 1 Android 2.pptx
 
Python chapitre 7.pdf
Python chapitre 7.pdfPython chapitre 7.pdf
Python chapitre 7.pdf
 
Python chapitre 6.pdf
Python chapitre 6.pdfPython chapitre 6.pdf
Python chapitre 6.pdf
 
Python chapitre 5.pdf
Python chapitre 5.pdfPython chapitre 5.pdf
Python chapitre 5.pdf
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
Python chapitre 3.pdf
Python chapitre 3.pdfPython chapitre 3.pdf
Python chapitre 3.pdf
 
Python chapitre 2.pdf
Python chapitre 2.pdfPython chapitre 2.pdf
Python chapitre 2.pdf
 
Python chapitre 1.pdf
Python chapitre 1.pdfPython chapitre 1.pdf
Python chapitre 1.pdf
 
chap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdfchap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdf
 
Chap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdfChap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdf
 
Introduction à l'IoT.pdf
Introduction à l'IoT.pdfIntroduction à l'IoT.pdf
Introduction à l'IoT.pdf
 
chap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptxchap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptx
 
Chap 6 POO Java.pptx
Chap 6 POO Java.pptxChap 6 POO Java.pptx
Chap 6 POO Java.pptx
 

Dernier

PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
ayoub_anbara96
 
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Daniel Bedard
 
S210-S-27.04-chaudiere-à-vapeur bilan thermique
S210-S-27.04-chaudiere-à-vapeur bilan thermiqueS210-S-27.04-chaudiere-à-vapeur bilan thermique
S210-S-27.04-chaudiere-à-vapeur bilan thermique
ALIIAE
 
Rénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdfRénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdf
idelewebmestre
 
Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024
idelewebmestre
 
SRE - Mythes et Réalités - Voxxed 2024.pdf
SRE - Mythes et Réalités - Voxxed 2024.pdfSRE - Mythes et Réalités - Voxxed 2024.pdf
SRE - Mythes et Réalités - Voxxed 2024.pdf
Henri Gomez
 
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
ayoub_anbara96
 
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdfPFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
iheberry
 

Dernier (8)

PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
 
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
Alternative au 3eme lien et complement au Tramway de la ville de Quebec Rev 1...
 
S210-S-27.04-chaudiere-à-vapeur bilan thermique
S210-S-27.04-chaudiere-à-vapeur bilan thermiqueS210-S-27.04-chaudiere-à-vapeur bilan thermique
S210-S-27.04-chaudiere-à-vapeur bilan thermique
 
Rénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdfRénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdf
 
Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024
 
SRE - Mythes et Réalités - Voxxed 2024.pdf
SRE - Mythes et Réalités - Voxxed 2024.pdfSRE - Mythes et Réalités - Voxxed 2024.pdf
SRE - Mythes et Réalités - Voxxed 2024.pdf
 
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
PFE MASTER en Développement d’une Application E-commerce avec la Technologie ...
 
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdfPFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
PFE ABDOUS BERRI 2024, RAPPORT COMPLET RETA FINAL.pdf
 

chapitre 7 Android 2.pptx

  • 1. LIAISONS SANS FILS ENTRE UN MICROCONTRÔLEUR ET UN APPAREIL ANDROID 2017-2018 © Imene Sghaier ISET Nabeul SEM3
  • 2. 2  Objectifs spécifiques  Se familiariser avec la manipulation des Liaison Bluetooth et Wifi avec un microcontrôleur  Eléments de contenu • Technologie Bluetooth • Liaison bluetooth • Outils nécessaires • Du côté du microcontrôleur • Du côté de Android • Activer le bluetooth • Classes Spécifiques • Connexion • Envoi de données • Réception de données • Déconnexion • Gérer les réseaux Wi-Fi • La classe WifiManager • La classe WifiInfo • Gérer les points d’accès • Détection des réseaux  Volume Horaire :  Cours : 3 heures OBJECTIFS ET ÉLÉMENTS DE CONTENU Imene Sghaier-Développement Mobile Avancé
  • 3. TECHNOLOGIE BLUETOOTH  Le Bluetooth est une technologie de communication radio de courte distance, créée pour simplifier les connexions entre appareils. Ce système a été conçu dans le but de remplacer les câbles des imprimantes, des kits « main libre », des souris/claviers, téléphones portables/PDA, etc.  La plate-forme Android supporte le Bluetooth afin de permettre à des appareils d’échanger des données entre elles.  Pour pouvoir profiter de ce système de connexion, Android apporte un ensemble d’API que nous allons détailler dans cette partie. Imene Sghaier-Développement Mobile Avancé 3
  • 4. 4 • Technologie Bluetooth • Liaison bluetooth • Outils nécessaires • Du côté du microcontrôleur • Du côté de Android • Activer le bluetooth • Classes Spécifiques • Connexion • Envoi de données • Réception de données • Déconnexion • Gérer les réseaux Wi-Fi PLAN DU CHAPITRE Imene Sghaier-Développement Mobile Avancé
  • 5. LIAISON BLUETOOTH  La liaison Bluetooth se fait par le profil Bluetooth SPP (Serial Port Profile), qui permet d'émuler une connexion série.  Cette méthode est donc compatible avec n'importe quel microcontrôleur ayant une interface série (PIC, MSP430, Atmel AVR (Arduino), ...).  Pour ce fait, votre smartphone (ou tout autre dispositif sous Android) doit avoir le bluetooth bien évidement et doit tourner sur Android 2.0 minimum : les fonctions pour l'utilisation bluetooth ne sont présente dans le SDK qu'à partir de l'API Level 5. Imene Sghaier-Développement Mobile Avancé 5
  • 6. LIAISON BLUETOOTH: OUTILS NÉCESSAIRES  Le microcontrôleur doit pouvoir communiquer par une liaison série, aussi appelée RS232, ou UART. Quelques exemples de microcontrôleur : PIC18F2550, PIC18F14K50, PIC18F1320, PIC16F886, ... ou bien chez TI : MSP430G2231, MSP430G2452, ...  Il nous faut un transmetteur Bluetooth, qui sera connecté au microcontrôleur. Nous devons choisir un transmetteur prenant en charge le profil SPP et compatible avec une liaison série. Il existe de nombreux modules, avec une connexion DB9, DIP ou CMS.  Attention, selon le microcontrôleur choisi et le module que choisi, on aura peut être besoin d'une interface du type MAX232 afin de rendre les tensions compatibles entre elles. Imene Sghaier-Développement Mobile Avancé 6
  • 7. LIAISON BLUETOOTH: DU CÔTÉ DU MICROCONTRÔLEUR  Tout d'abord il faut relier le microcontrôleur au module, et à ne pas oublier, le câblage croisé : il faut relier la pin TX du microcontrôleur à la pin RX du module bluetooth et inversement la pin RX avec la TX du module.  Il faut ensuite configurer le microcontrôleur et/ou le module bluetooth afin qu'ils utilisent la même vitesse de connexion, le même baud rate.  Cette vitesse n'intervient pas pour la suite (pour Android) car la liaison bluetooth entre le module et Android se fait par le protocole RFCOMM, qui va beaucoup plus vite que la liaison série. Le module bluetooth se charge de faire la 'conversion' entre ces deux protocoles. On pourra donc choisir le baud rate que nous voulons.  Il n'y a pas de règle spéciale / de protocole pour l'envoi ou la réception des données pour le microcontrôleur, il suffit d'envoyer les données simplement, comme pour une liaison série. Imene Sghaier-Développement Mobile Avancé 7
  • 8. LIAISON BLUETOOTH: DU COTÉ DE ANDROID  Afin de pouvoir utiliser le bluetooth dans votre application, il faudra ajouter les permissions  BLUETOOTH  BLUETOOTH_ADMIN  BLUETOOTH_ADMIN n'est nécessaire que pour la découverte, l'association de périphériques et l'activation/désactivation du bluetooth.  Il faut ajoutez ceci dans l'AndroidManifest.xml Imene Sghaier-Développement Mobile Avancé 8
  • 9. LIAISON BLUETOOTH: DU COTÉ DE ANDROID  Pour vérifier la présence du Bluetooth sur le terminal on doit faire  Avant d'être en mesure d'utiliser le Bluetooth dans une application, il peut être de bonne pratique de vérifier si le Bluetooth est activé. Imene Sghaier-Développement Mobile Avancé 9
  • 10. LIAISON BLUETOOTH: ACTIVER LE BLUETOOTH  Comme il est fort probable que le Bluetooth ne soit pas activé au moment voulu nous allons voir les deux manières possibles de faire pour l'allumer.  La première façon est de demander à l'utilisateur de le faire lui-même. Pour cela nous allons afficher une boîte de dialogue demandant à l'utilisateur s'il veut oui ou non activer son Bluetooth.  Ce n’est pas la peine de coder vous-même la boîte de dialogue, le système sait le faire tout seul. Elle contiendra le message dans la langue du système de l'utilisateur ainsi que deux boutons, "Oui" et "Non". Imene Sghaier-Développement Mobile Avancé 10
  • 11. LIAISON BLUETOOTH: ACTIVER LE BLUETOOTH  La deuxième façon de faire est d'activer le Bluetooth directement, sans demander son consentement à l'utilisateur. Pour ce faire il va nous falloir demander une nouvelle permission pour allumer et éteindre le Bluetooth Dans le fichier Manifest.xml  Allumage du Bluetooth dans le code java Imene Sghaier-Développement Mobile Avancé 11
  • 12. LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES  3 classes spécifiques du SDK sont nécessaires :  BluetoothDevice : Classe qui représente un périphérique bluetooth  BluetoothAdapter : Classe qui représente le module bluetooth de votre Android, elle permet de scanner les périphériques présents, d'activer / désactiver le bluetooth,  BluetoothSocket : Classe qui permet d'obtenir les canaux d'écriture (émission) et de lecture (réception) du périphérique  Pour pouvoir utiliser ces classes, il faut donc les importer Imene Sghaier-Développement Mobile Avancé 12
  • 13. LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES  La classe va donc contenir le 'périphérique', sa 'connexion', et ses canaux d'entrée et sortie : Imene Sghaier-Développement Mobile Avancé 13
  • 14. LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES  Première étape: récupérer le BlutoothDevice de notre périphérique, pour cela, on utilise la fonction getBondedDevices() de la classe BluetoothAdapter qui permet d'obtenir la liste des périphériques associés à Android.  On récupère le module bluetooth par défaut d'Android avec la fonction BluetoothAdapter.getDefaultAdapter(). Il suffit de chercher dans cette liste notre périphérique.  Imene Sghaier-Développement Mobile Avancé 14
  • 15. LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES  On récupère ensuite le BluetoothSocket de notre périphérique avec la fonction  Cette fonction prend en paramètre un UUID, on utilise la valeur suivante qui indique une connexion 'port série'.  Les canaux d'émission/réception sont ensuite récupérés avec les fonctions getInputStream et getOutputStream.  Les canaux seront invalides tant que le Bluetooth n'est pas connecté. Imene Sghaier-Développement Mobile Avancé 15
  • 16. Imene Sghaier-Développement Mobile Avancé 16 LIAISON BLUETOOTH: CLASSES SPÉCIFIQUES
  • 17. LIAISON BLUETOOTH: CONNEXION  Pour se connecter, on utilise la fonction connect() de la classe BluetoothSocket.  La connexion pouvant prendre du temps, il est nécessaire de la lancer dans un autre thread pour éviter de bloquer l'application. Imene Sghaier-Développement Mobile Avancé 17
  • 18. LIAISON BLUETOOTH: ENVOI DE DONNÉES  Pour envoyer des données, on va tout simplement utiliser les fonctions write(..) de OutputStream Imene Sghaier-Développement Mobile Avancé 18
  • 19. LIAISON BLUETOOTH: RÉCEPTION DE DONNÉES  Pour recevoir des données, le plus simple est de créée un Thread qui va vérifier l'arrivé de données en permanence.  On utilise les fonctions read(…) et available() de la classe InputStream pour lire ces données et vérifier si de nouvelles sont disponibles.  Or, on ne peut afficher les données depuis ce nouveau thread : Android impose de les envoyer dans le thread de l'UI. On utilise donc la classe Handler. On doit alors modifier le constructeur pour récupérer un Handler du thread de l'UI. Imene Sghaier-Développement Mobile Avancé 19
  • 20. Imene Sghaier-Développement Mobile Avancé 20 LIAISON BLUETOOTH : RÉCEPTION DE DONNÉES
  • 21. Imene Sghaier-Développement Mobile Avancé 21 LIAISON BLUETOOTH : RÉCEPTION DE DONNÉES
  • 22.  Et dans le thread de l'UI, il suffit de créer un Handler et de le faire passer dans le constructeur de notre classe. Imene Sghaier-Développement Mobile Avancé 22 LIAISON BLUETOOTH : RÉCEPTION DE DONNÉES
  • 23.  Enfin, pour fermer la connexion, il y a la fonction close() de BluetoothSocket Imene Sghaier-Développement Mobile Avancé 23 LIAISON BLUETOOTH : DECONNEXION
  • 24. 24 • Technologie Bluetooth • Liaison bluetooth • Gérer les réseaux Wi-Fi • La classe WifiManager • La classe WifiInfo • Gérer les points d’accès • Détection des réseaux PLAN DU CHAPITRE Imene Sghaier-Développement Mobile Avancé
  • 25. GÉRER LES RÉSEAUX WI-FI  Le Wi-Fi est une fonctionnalité importante car elle offre aux appareils qui ne sont pas dotés de fonctions de téléphonie l’accès à l’Internet.  Pour manipuler les données relatives aux réseaux Wi-Fi, vous devez faire appel à un objet WifiManager.  Cet objet sert d’interface entre le service système qui gère le Wi- Fi et votre application. Il permet d’effectuer les opérations suivantes : • fournir des informations sur la connexion actuelle ; • renvoyer la liste des points d’accès à portée ; • manipuler les configurations enregistrées par l’utilisateur ; • allumer ou éteindre la connexion Wi-Fi. Imene Sghaier-Développement Mobile Avancé 25
  • 26. Imene Sghaier-Développement Mobile Avancé 26 GÉRER LES RÉSEAUX WI-FI : LA CLASSE WIFIMANAGER https://developer.android.com/reference/android/net/wifi/WifiManager.html Méthode Description static int calculateSignalLevel(int rssi, int numLevels) Calcule le niveau du signal boolean disableNetwork(int netId) Désactive le Wifi avec un ID boolean disconnect() Se déconnecte du point d’accès qui est couremment actif boolean enableNetwork(int netId, boolean attemptConnect) Permet un réseau précédement configuré à se connecter avec List<WifiConfiguration> getConfiguredNetworks() Renvoie liste des réseaus configurés WifiInfo getConnectionInfo() Renvoie l’objet WifiInfo avec des informations dynamiques List<ScanResult> getScanResults() Renvois la liste des points d'accès disponibles du dernier scan
  • 27. GÉRER LES RÉSEAUX WI-FI : LA CLASSE WIFIINFO  La classe WifiInfo décrit l’état de n’importe quel connexion wifi qui est active ou qui est sur le point de l’être 27 Méthode Description Int getFrequency() Renvoie la frequence int getIpAddress() Renvoie l’adresse IP int getLinkSpeed() Renvoie la vitesse String getMacAddress() Renvoie l’adresse Mac int getNetworkId() Renvoie l’ID du reseau https://developer.android.com/reference/android/net/wifi/WifiInfo.html Imene Sghaier-Développement Mobile Avancé
  • 28. GÉRER LES RÉSEAUX WI-FI : GÉRER LES POINTS D’ACCÈS  Avant de pouvoir rejoindre un réseau Wi-Fi, vous devez d’abord détecter les points d’accès.  Pour demander à l’appareil quels sont les points d’accès actifs, vous devez utiliser la méthode startScan. Le retour de cette méthode est immédiat : elle exécute une recherche en tâche de fond et les résultats seront connus plus tard grâce à la réception d’un événement asynchrone.  La valeur booléenne retournée par la méthode startScan indique uniquement si la détection des points d’accès a été initialisée.  Une fois la détection des réseaux Wi-Fi lancée, vous pourrez récupérer le résultat en appelant la méthode getScanResult qui vous renverra une liste de résultats contenant les points d’accès disponibles. Imene Sghaier-Développement Mobile Avancé 28
  • 29. GÉRER LES RÉSEAUX WI-FI : DÉTECTION DES RÉSEAUX Imene Sghaier-Développement Mobile Avancé 29