Raspberry Pi - Bluetooth

Ce tutoriel vous apprend à utiliser Raspberry Pi pour contrôler le module Bluetooth HC-05. En détail, nous allons apprendre :

Raspberry Pi Bluetooth

Le but de ce tutoriel :

Ce tutoriel porte sur l'utilisation du Bluetooth Classique (Bluetooth 2.0). Si vous recherchez un Bluetooth Low Energy - BLE (Bluetooth 4.0), veuillez vous référer à ce tutoriel similaire : Raspberry Pi - BLE.

Préparation du matériel

1×Raspberry Pi 4 Model B
1×HC-05 Bluetooth Module
1×Jumper Wires
1×(Optional) Screw Terminal Block Shield for Raspberry Pi
1×(Optional) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B
1×(Optional) Plastic Case and Cooling Fan for Raspberry Pi 4B
1×(Optional) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module Bluetooth HC-05

Le HC-05 est un module Bluetooth série qui fonctionne comme un convertisseur série vers Bluetooth. Il a la capacité de :

  • Recevoir des données de la broche RX série et les transmettre à l'appareil apparié (comme un smartphone) via Bluetooth
  • Recevoir des données via Bluetooth (de l'appareil apparié) et les envoyer à la broche TX série.

Spécifiquement, pour que Raspberry Pi communique avec une application smartphone (Android/iOS) :

  • Le Raspberry Pi est connecté à un module Bluetooth HC-05 via ses broches série.
  • Le module Bluetooth HC-05 est appairé avec l'application smartphone.
  • Le Raspberry Pi envoie des données à l'application smartphone simplement en les envoyant au port série.
  • Le Raspberry Pi reçoit des données de l'application smartphone simplement en les lisant depuis le port série.
  • Aucun code Bluetooth spécial n'est nécessaire sur le Raspberry Pi.

Le brochage du module Bluetooth HC-05

Brochage Bluetooth

Le module Bluetooth HC-05 possède 6 broches :

  • Broche d'activation/clé : Cette broche est utilisée pour basculer entre le mode Données (réglé sur BAS) et le mode Commande (réglé sur HAUT). Si elle n'est pas connectée, elle est par défaut en mode Données.
  • Broche VCC : broche d'alimentation, elle doit être connectée au +5V de la tension d'alimentation.
  • Broche GND : broche d'alimentation, elle doit être connectée au GND de la source d'alimentation.
  • Broche TX : broche de données série, elle doit être connectée à la broche RX du Raspberry Pi. Les données reçues via Bluetooth seront envoyées à cette broche sous forme de données série.
  • Broche RX : broche de données série, elle doit être connectée à la broche TX du Raspberry Pi. Les données reçues de cette broche seront envoyées au Bluetooth.
  • État : La broche d'état est connectée à la LED intégrée, elle peut être utilisée comme retour pour déterminer si le Bluetooth fonctionne correctement.

Néanmoins, pour les opérations fondamentales, nous n'avons besoin que de relier 4 broches du module Bluetooth HC-05 au Raspberry Pi.

Le module Bluetooth HC-05 comprend également deux éléments intégrés :

  • Une LED : qui indique l'état du Module
    • Clignotement une fois toutes les deux secondes : indiquant que le Module est entré en Mode Commande
    • Clignotement répété : signifiant qu'il attend une connexion en Mode Données
    • Clignotement deux fois par seconde : signifiant une connexion réussie en Mode Données
  • Un Bouton : utilisé pour contrôler la broche Key/Enable afin de choisir le mode de fonctionnement (Mode Données ou Commande)

Comment ça marche

Le module Bluetooth HC-05 a deux modes de fonctionnement :

  • Mode de données utilisé pour échanger des données avec l'appareil jumelé
  • Mode commande utilisé pour configurer les paramètres.

Heureusement, le module Bluetooth HC-05 est capable de fonctionner avec le Raspberry Pi sans aucune configuration, en utilisant ses paramètres par défaut.

Paramètres par défaut du HC-05

Default Bluetooth Name “HC-05”
Default Password 1234 or 0000
Default Communication Slave
Default Mode Data Mode
Default Data Mode Baud Rate 9600, 8, N, 1
Default Command Mode Baud Rate 38400, 8, N, 1

À propos de l'application Moniteur série Bluetooth

L'application Bluetooth Serial Monitor permet la communication avec Raspberry Pi via Bluetooth sans aucun code supplémentaire pour le module Bluetooth dans le code Raspberry Pi. Pour l'utiliser, les étapes suivantes doivent être suivies :

  • Connectez le Raspberry Pi au module Bluetooth HC-05
  • Installez l'application Bluetooth Serial Monitor sur votre smartphone
  • Ouvrez l'application et associez-la au module Bluetooth HC-05

Désormais, vous pouvez transmettre et recevoir des données depuis le Raspberry Pi.

Diagramme de câblage

Schéma de câblage Bluetooth Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :

Raspberry Pi Screw Terminal Block Shield

Tableau des connexions de câblage. Schéma de câblage. Tableau des liens de câblage.

Raspberry Pi Pins HC-05 Bluetooth Pins
RX (GPIO15) TX
TX (GPIO14) RX
5V VCC
GND GND
Enable/Key (NOT connected)
State (NOT connected)

Le Raspberry Pi envoie des données à l'application Bluetooth sur le smartphone.

Pour transmettre des données d'un Raspberry Pi à une application Bluetooth sur un smartphone, le code suivant pour le Raspberry Pi doit être utilisé :

Dans cet exemple, nous ferons en sorte que le Raspberry Pi envoie « Raspberry Pi ici, commandez-moi ! » à l'application Bluetooth sur un smartphone chaque seconde.

Étapes rapides

  • Assurez-vous d'avoir installé Raspbian ou tout autre système d'exploitation compatible avec Raspberry Pi sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à internet si vous avez besoin d'installer des bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, voyez Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Voyez comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
pip install pyserial
  • Créer un fichier de script Python bluetooth_send.py.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-bluetooth import serial from time import sleep # Define serial port for communication bluetooth = serial.Serial('/dev/ttyS0', baudrate=9600, timeout=1) # Main program try: while True: bluetooth.write(b"Raspberry Pi here, command me!\n") sleep(1) except KeyboardInterrupt: pass finally: bluetooth.close()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 bluetooth_send.py

Le script s'exécute dans une boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

  • Installez l'application Bluetooth Serial Monitor sur votre smartphone.
  • Connectez le module Bluetooth HC-05 au Raspberry Pi selon le schéma de câblage.
  • Ouvrez l'application Bluetooth Serial Monitor sur votre smartphone et sélectionnez le mode Bluetooth classique.
Application de surveillance série Bluetooth
  • Connectez-le au module Bluetooth HC-05.
Appairage du moniteur série Bluetooth
  • Consultez le résultat sur l'application Android.
Application de surveillance série Bluetooth
  • Vérifiez le résultat dans le Terminal.
PuTTY - Raspberry Pi
Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me!

Application Bluetooth Envoyer des données au Raspberry Pi

Le code suivant :

  • Permet à une application Bluetooth d'envoyer des données à un Raspberry Pi
  • Permet au Raspberry Pi de lire les données et d'envoyer une réponse à l'application Bluetooth

Étapes rapides

  • Créez un fichier de script Python bluetooth_send_receive.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-bluetooth import serial from time import sleep # Define serial port for Bluetooth communication bluetooth = serial.Serial('/dev/ttyS0', baudrate=9600, timeout=1) # Main program try: bluetooth.flushInput() # Clear any existing data in the input buffer while True: bluetooth.write(b"Raspberry Pi here, command me!\n") if bluetooth.inWaiting() > 0: command = bluetooth.readline().decode('utf-8').strip() # Read until newline character if command == "LED OFF": print("LED is turned OFF") # Report action to console # TODO: Control your LED here elif command == "LED ON": print("LED is turned ON") # Report action to console # TODO: Control your LED here # Add a delay to avoid excessive looping sleep(0.5) except KeyboardInterrupt: pass finally: bluetooth.close()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 bluetooth_send_receive.py
  • Connectez l'application Android au module Bluetooth HC-05, comme précédemment.
  • Une fois connecté, tapez soit "LED ON" soit "LED OFF" sur l'application Android et appuyez sur le bouton "ENVOYER".
Application Moniteur Série Bluetooth
  • Le Raspberry Pi reçoit les données et imprime la réponse sur le port série.
  • Cette réponse sera ensuite envoyée à l'application Bluetooth.
  • Le résultat peut être visualisé sur l'application Android.
Application de surveillance série Bluetooth
  • Consultez la sortie dans le Terminal.
PuTTY - Raspberry Pi
Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! LED ON LED is turned ON Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! LED OFF LED is turned OFF Raspberry Pi here, command me! Raspberry Pi here, command me!

Vous observerez que les informations affichées sur l'application Android sont les mêmes.

Code Raspberry Pi - Contrôler une LED avec une application smartphone via Bluetooth

Veuillez vous référer au tutoriel Contrôler une LED via Bluetooth avec un Raspberry Pi..

Code Raspberry Pi - Contrôler un moteur servo avec une application smartphone via Bluetooth

Veuillez consulter le Contrôler un moteur servo avec un Raspberry Pi via Bluetooth..

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!