- Installation des packages requis pour la communication Bluetooth:
- Couplage d'appareils avec Raspberry Pi via Bluetooth:
- Schéma:
- Contrôle de l'appareil AC 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 les appareils ménagers via un téléphone intelligent en utilisant Raspberry Pi 3 et Bluetooth.
Ici, nous utilisons Raspberry Pi 3 qui a Bluetooth intégré, nous n'avons donc pas besoin d'utiliser de clé USB Bluetooth externe. En dehors de cela, nous n'avons besoin que de modules de relais pour ce projet domotique sans fil. 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.
Si vous avez Raspberry Pi 2, vous devez soit utiliser un dongle Bluetooth externe ou un module Bluetooth HC-06. Consultez nos projets précédents pour l'utilisation de ces appareils Bluetooth externes: Contrôle du Raspberry Pi GPIO à l'aide de l'application Android via Bluetooth et des LED à commande vocale à l'aide de 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.
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 la vidéo donnée dans le précédent tutoriel de contrôle GPIO. Voici le lien direct YouTube.
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 de circuit pour cette domotique contrôlée par Bluetooth basée sur Raspberry Pi est très simple, nous venons de connecter la broche du signal d'entrée du module de relais à la broche 40 (GPIO 21) du Raspberry Pi et à deux autres broches (Vcc et GND du module de relais) aux broches 2 et 6 de Raspberry Pi 3. Ensuite, nous avons connecté une ampoule AC CFL au relais comme indiqué dans le schéma de circuit:
Si vous êtes nouveau dans Relay et souhaitez en savoir plus sur Relay et ses connexions avec un appareil CA, consultez cet article.
Contrôle de l'appareil AC 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, afin que nous puissions contrôler les broches GPIO de Raspberry Pi. 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 déclenche le module Relay connecté à cette broche, qui contrôle en outre l'ampoule AC connectée au Relay. 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 contrôler sans fil l'appliance AC à 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 beaucoup d'autres choses sans fil, la voiture robot via un téléphone Android ou vous pouvez utiliser votre voix pour contrôler les lumières.
Consultez également nos nombreux types de projets d'automatisation domestique utilisant différentes technologies et microcontrôleurs tels que: