Telechargé par julioraharivelo

Flutter pour les appareils Bluetooth. Comment connecter vos appareils BLE au… par Md Sadab Wasim Communauté Flutter Moyen

publicité
Flutter pour les appareils Bluetooth
Md Sadab Wasim
Suivre
30 déc.2019 · 3 min de lecture
Comment connecter vos appareils BLE à l'application Flutter et faire quelque chose.
Jusqu'à présent, j'ai vu de nombreux articles sur le flutter avec les appareils BLE, mais
pour être honnête, la plupart d'entre eux ne vous parleront que de la pointe de l'iceberg.
Mais, maintenant, je suis ici pour partager mes expériences avec vous sur la façon de se
connecter et de jouer avec l'appareil BLE.
Photo de Luke Chesser sur Unsplash
Choses que nous allons couvrir dans cet article:
1. Comment connecter votre appareil BLE à une application Flutter.
2. Comment découvrir les services fournis par votre appareil BLE.
3. Comment obtenir des données à partir de ces services / caractéristiques.
4. Et enfin comment envoyer des commandes à l'appareil BLE.
Première phase
Découvrez et connectez-vous à l'appareil
Tout d'abord, nous allons utiliser le package flutter_blue pour tous les types de
communication avec le périphérique BLE.
flutter_blue: ^ 0,6,3 + 1
Nous l'initialiserons dans la méthode initstate ()
import 'package: flutter_blue / flutter_blue.dart';
// Nous rendons ces trois choses globales afin que nous// pouvons vérifier l'état et l'appareil plus tard dans cette classe
Périphérique BluetoothDevice;
État BluetoothState;
BluetoothDeviceState deviceState;
/// Initialisation et écoute de l'état de l'appareil
@override
void initState () {
super.initState ();
// vérifie l'état actuel du bluetooth
FlutterBlue.instance.state.listen ((état) {
if (état == BluetoothState.off) {
// Alerte l'utilisateur pour activer le Bluetooth.
} else if (état == BluetoothState.on) {
// si le bluetooth est activé, continuez.
// Assurez-vous que le GPS de l'appareil de l'utilisateur est activé.
scanForDevices ();
}
});
}
Rechercher un appareil et arrêter les méthodes de scan
///// **** Analyser et arrêter les méthodes Bluetooth ***** /////
void scanForDevices () async {
scanSubscription = bluetoothInstance.scan (). listen ((scanResult)
async {
if (scanResult.device.name == "your_device_name") {
print ("périphérique trouvé");
// Attribution d'un périphérique Bluetooth
périphérique = scanResult.device;
// Après cela, nous arrêtons la recherche de périphérique
stopScanning ();
}
});
}
void stopScanning () {
bluetoothInstance.stopScan ();
scanSubscription.cancel ();
}
Seconde phase
Découvrez les services fournis par l'appareil
Connectez-vous à l'appareil
///// ******* Méthodes de manipulation des appareils Bluetooth
******** //////
connectToDevice () async {
// flutter_blue nous facilite la vie
attendre device.connect ();
// Après la connexion, commencez à découvrir les services
DiscoverServices ();
}
Découvrez les services et obtenez la bonne caractéristique
// AJOUTEZ VOS PROPRES SERVICES ET CHAR UUID, CHAQUE APPAREIL A UN
UUID DIFFÉRENT
// dispositif Caractéristiques exclusives du service ISSC
static const ISSC_PROPRIETARY_SERVICE_UUID = "49535343 - *****";
// caractère de périphérique pour les caractéristiques ISSC
static const UUIDSTR_ISSC_TRANS_TX = "49535343-4554 - *****";
static const UUIDSTR_ISSC_TRANS_RX = "49535343-8841 - ****";
// Cette caractéristique pour envoyer la commande à l'appareil
BluetoothCaractéristique c;
// Ce flux sert à prendre la valeur de la caractéristique
// à lire les données fournies par l'appareil
Stream <List <int>> listStream;
DiscoverServices () async {
List <BluetoothService> services = attendre device.discoverServices
();
// vérification de chaque service fourni par l'appareil
services.forEach ((service) {
if (service.uuid.toString () == ISSC_PROPRIETARY_SERVICE_UUID) {
service.characteristics.forEach ((caractéristique) {
if (caractéristique.uuid.toString () == UUIDSTR_ISSC_TRANS_RX) {
// Mise à jour de la caractéristique pour effectuer l'opération
d'écriture.
c = caractéristique;
} else if (caractéristique.uuid.toString () == UUIDSTR_ISSC_TRANS_TX)
{
// Mise à jour du flux pour effectuer l'opération de lecture.
listStream = caractéristique.valeur;
caractéristique.setNotifyValue (! caractéristique.isNotifying);
}
});
}
});
}
Troisième phase
Obtenir les données des services / caractéristiques
Nous utiliserons streamBuilder pour écouter la valeur de listStream
StreamBuilder <Liste <int>> (
stream: listStream, // ici nous utilisons la valeur de notre char
donnée initiale: [],
générateur: (contexte BuildContext, instantané AsyncSnapshot <List
<int>>) {
if (snapshot.connectionState == ConnectionState.active) {
// Dans cette méthode, nous interpréterons les données reçues
interprétReceivedData (currentValue);
Centre de retour (
enfant: Texte ('Nous trouvons les données ..')
);
} autre {
return SizedBox ();
}
},
);
Interpréter les données reçues de l'appareil
// VOIR LE TYPE DE COMMANDES QUE VOTRE APPAREIL VOUS DONNE ET CE QUE
CELA SIGNIFIE
interprétReceivedData (données de chaîne) async {
if (données == "abt_HANDS_SHAKE") {
// Faites quelque chose ici ou envoyez la commande suivante à
l'appareil
sendTransparentData ('Bonjour');
} autre {
print ("Déterminer quoi faire avec $ data");
}
}
Quatrième et dernière phase
Envoyer des commandes à l'appareil
Utilisez cette méthode pour envoyer des commandes
sendTransparentData (String dataString) async {
// Encodage de la chaîne
List <int> data = utf8.encode (dataString);
if (deviceState == BluetoothDeviceState.connected) {
attendre c.write (données);
}
}
C'est tout avec ces méthodes, vous pouvez pratiquement tout faire avec votre appareil
BLE.
Si vous rencontrez un problème ou rencontrez un bogue, veuillez commenter ici ou voir
la section problèmes du plugin flutter_blue .
Le projet est une autre chaîne youtube incroyable pour voir des vidéos liées à l'appareil
BLE, il fait des tonnes de bonnes choses avec des scintillements et différents types
d'appareils Bluetooth.
Paix dehors 💙
Communauté Flutter
Les derniers Tweets de Flutter Community (@FlutterComm). Suivez
pour recevoir des notifications de nouveaux articles et packages de…
www.twitter.com
Bluetooth
Battement
Dard
Android
iOS
À
Aidez-Légal
propos moi
de
Téléchargez l'application Medium
Téléchargement