- Installation des packages requis pour la communication Bluetooth:
- Couplage d'appareils avec Raspberry Pi via Bluetooth:
- Schéma:
- Contrôle de la LED avec l'application Android BlueTerm:
- Explication de la programmation:
Raspberry Pi est très populaire pour les projets IoT en raison de sa capacité transparente de communication sans fil sur Internet. Raspberry Pi 3 intègre Wi-Fi et Bluetooth, et Bluetooth est un protocole de communication sans fil très populaire. Donc, aujourd'hui, nous allons contrôler Raspberry Pi GPIO Pin via une application Android utilisant Bluetooth.
Ici, nous utilisons Raspberry 2 Pi modèle B qui n'a pas de Bluetooth intégré, nous utilisons donc un simple dongle Bluetooth USB. En dehors de cela, nous n'avons besoin que d'une résistance (220R) et d'une LED pour démontrer le contrôle GPIO. Ici, nous utilisons le protocole Bluetooth RFCOMM pour la communication sans fil.
La programmation pour Bluetooth en Python suit le modèle de programmation de socket et les communications entre les appareils Bluetooth se font via la prise RFCOMM. RFCOMM (Radio Frequency Communication) est un protocole Bluetooth qui fournit des ports série RS-232 émulés et également appelé émulation de port série. Le profil du port série Bluetooth est basé sur ce protocole. RFCOMM est très populaire dans les applications Bluetooth en raison de sa large prise en charge et de son API accessible au public. Il est lié au protocole L2CAP.
Nous avons également utilisé le module Bluetooth HC-06 dans notre projet précédent: LED à commande vocale utilisant Raspberry Pi. Consultez également nos précédents projets Raspberry Pi ainsi que quelques bons projets IoT.
Installation des packages requis pour la communication Bluetooth:
Avant de commencer, nous devons installer des logiciels pour configurer la communication Bluetooth dans Raspberry Pi. Vous devriez avoir une carte mémoire installée Raspbian Jessie prête avec Raspberry Pi. Consultez cet article pour installer le système d'exploitation Raspbian et démarrer avec Raspberry Pi. Alors maintenant, nous devons d'abord mettre à jour le Raspbian en utilisant les commandes ci-dessous:
sudo apt-get mise à jour sudo apt-get mise à jour
Ensuite, nous devons installer quelques packages liés à Bluetooth:
sudo apt-get installer bluetooth blueman bluez
Ensuite, redémarrez le Raspberry Pi:
redémarrage sudo
BlueZ est un projet open source et une pile de protocoles officielle Linux Bluetooth. Il prend en charge tous les protocoles Bluetooth de base et fait désormais partie du noyau Linux officiel.
Blueman fournit l'interface de bureau pour gérer et contrôler les appareils Bluetooth.
Enfin, nous avons besoin de la bibliothèque python pour la communication Bluetooth afin que nous puissions envoyer et recevoir des données via RFCOMM en utilisant le langage Python:
sudo apt-get installer python-bluetooth
Installez également les bibliothèques de support GPIO pour Raspberry Pi:
sudo apt-get installer python-rpi.gpio
Nous avons maintenant terminé l'installation des packages requis pour la communication Bluetooth dans Raspberry Pi.
Couplage d'appareils avec Raspberry Pi via Bluetooth:
Coupler des appareils Bluetooth, comme un téléphone mobile, avec Raspberry Pi est très simple. Ici, nous avons couplé notre téléphone intelligent Android avec Raspberry Pi. Nous avons précédemment installé BlueZ dans Pi, qui fournit un utilitaire de ligne de commande appelé «bluetoothctl» pour gérer nos appareils Bluetooth. Mais avant cela, connectez votre dongle Bluetooth USB avec Raspberry Pi et vérifiez qu'il est détecté ou non, en utilisant la commande ci-dessous:
lsusb
Ouvrez maintenant l' utilitaire bluetoothctl avec la commande ci-dessous:
sudo bluetoothctl
Vous pouvez vérifier toutes les commandes de l' utilitaire bluetoothctl en tapant «aide» . Pour l'instant, nous devons entrer les commandes ci-dessous dans l'ordre donné:
# allumer # agent sur # découvrable sur # appariable sur # scan activé
Après la dernière commande «scan on», vous verrez votre appareil Bluetooth (téléphone portable) dans la liste. Assurez-vous que Bluetooth est activé sur votre mobile et visible par les appareils à proximité. Copiez ensuite l'adresse MAC de votre appareil et associez-le en utilisant la commande donnée:
paire
Ensuite, vous serez invité à saisir le code d'accès ou le code PIN dans la console de votre terminal, puis tapez le code d'accès et appuyez sur Entrée. Tapez ensuite le même mot de passe dans votre téléphone mobile lorsque vous y êtes invité et vous êtes maintenant couplé avec Raspberry Pi. Nous avons également expliqué tout ce processus dans notre vidéo donnée à la fin.
Comme indiqué précédemment, vous pouvez également utiliser l' interface de bureau pour coupler le téléphone mobile. Après avoir installé Blueman, vous verrez une icône Bluetooth sur le côté droit de votre bureau Raspberry Pi, comme indiqué ci-dessous, à l'aide de laquelle vous pouvez facilement effectuer le couplage.
Schéma:
Le schéma électrique est très simple, nous venons de connecter une LED à la broche 40 (GPIO 21) du Raspberry Pi avec une résistance de 220 Ohm:
Contrôle de la LED avec l'application Android BlueTerm:
Maintenant, après avoir assemblé le téléphone mobile, nous devons installer une application Android pour communiquer avec Raspberry Pi à l'aide d'un adaptateur série Bluetooth. Comme indiqué précédemment, le protocole RFCOMM / SPP émule la communication série via Bluetooth, nous avons donc installé ici l' application BlueTerm qui prend en charge ce protocole.
Vous pouvez également utiliser toute autre application de terminal Bluetooth prenant en charge la communication via la prise RFCOMM.
Maintenant, après avoir téléchargé et installé l'application BlueTerm, exécutez le programme Python ci-dessous à partir du terminal et connectez l'appareil raspberrypi couplé à partir de l'application BlueTerm en même temps.
Après une connexion réussie, vous verrez connecté: raspberrypi dans le coin supérieur droit de l'application, comme indiqué ci-dessous:
Maintenant, vous pouvez simplement entrer '1' ou '0' à partir de l'application BlueTerm pour rendre la broche GPIO HIGH et LOW respectivement, ce qui à son tour allume et éteint la LED connectée à cette broche. Appuyez sur «q» pour quitter le programme. Vous pouvez utiliser le clavier de saisie Google Voice pour contrôler le GPIO à l'aide de votre voix. Vérifiez la démo complète dans la vidéo donnée à la fin.
Voici donc comment vous pouvez contrôler sans fil la broche GPIO à l'aide d'une application Android via Bluetooth. Vérifiez également comment utiliser Bluetooth avec Arduino.
Explication de la programmation:
Le programme Python pour contrôler le GPIO Raspberry Pi avec l'application Android est très simple et explicite. Seulement, nous devons en apprendre un peu plus sur le code lié à la communication Bluetooth RFCOMM. Nous devons d'abord importer la bibliothèque de sockets Bluetooth qui nous permet de contrôler Bluetooth avec le langage Python; nous avons installé la bibliothèque pour la même chose dans la section précédente.
importer Bluetooth
Voici le code responsable de la communication Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Connexion acceptée depuis", adresse tant que 1: data = client_socket.recv (1024)
Ici, nous pouvons les comprendre ligne par ligne:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Création de socket pour la communication Bluetooth RFCOMM.
server_socket.bind (("", port): - Le serveur lie le script de l'hôte '' au port.
server_socket.listen (1) : Le serveur écoute pour accepter une connexion à la fois.
client_socket, address = server_socket.accept () : Le serveur accepte la demande de connexion du client et attribue l'adresse mac à l' adresse variable , client_socket est le socket du client
data = client_socket.recv (1024): Recevez des données via le socket client client_socket et affectez-les aux données variables. Un maximum de 1024 caractères peut être reçu à la fois.
Enfin, après toute la programmation, fermez la connexion client et serveur en utilisant le code ci-dessous:
client_socket.close () server_socket.close ()
Tous les autres codes sont simples et explicites. Vérifiez le code complet ci-dessous. Essayez de modifier ce projet et vous pouvez l'utiliser pour contrôler de nombreuses autres choses sans fil, comme l'utilisation de relais, vous pouvez contrôler les appareils ménagers ou contrôler une voiture Robot via un téléphone Android.