Raspberry Pi - BLE

Ce didacticiel vous explique comment utiliser le Raspberry Pi pour contrôler le module BLE HM-10. En détail, nous apprendrons :

Raspberry Pi BLE

Le but de ce tutoriel :

Il est important de savoir que ce tutoriel se concentre sur le Bluetooth Low Energy (BLE, Bluetooth 4.0). Si vous avez besoin d'informations sur le Bluetooth Classique (Bluetooth 2.0), veuillez consulter un tutoriel similaire Raspberry Pi - Bluetooth..

Préparation du matériel

1×Raspberry Pi 4 Model B
1×HM-10 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 HM-10

Le HM-10 est un module BLE série qui fonctionne comme un convertisseur de série à Bluetooth Low Energy. Il effectue les tâches suivantes :

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

Lorsqu'un Raspberry Pi est utilisé pour communiquer avec une application pour smartphone (Android/iOS), les étapes suivantes ont lieu :

  • Établir une connexion entre le Raspberry Pi et le module Bluetooth HM-10 via les broches Série
  • Appairer le module Bluetooth HM-10 avec l'application smartphone
  • Envoyer des données du Raspberry Pi à l'application smartphone en les écrivant sur le Série
  • Recevoir des données de l'application smartphone en les lisant à partir du Série
  • Aucun code BLE supplémentaire n'est nécessaire sur le Raspberry Pi.

Le brochage du module BLE HM-10

broche BLE

Le module HM-10 BLE a 6 broches :

  • Broche BKR : Cette broche est utilisée pour contrôler le comportement du module. Si vous êtes débutant, vous pouvez ignorer cette broche.
  • Broche RX : Il s'agit de la broche de données série et elle doit être connectée à la broche TX du Raspberry Pi. Les données reçues de cette broche seront envoyées à Bluetooth.
  • Broche TX : Il s'agit de la broche de données série et elle doit être connectée à la broche RX du Raspberry Pi. Les données reçues via BLE seront envoyées à cette broche sous forme de données série.
  • Broche GND : Il s'agit de la broche d'alimentation et elle doit être connectée au GND de la source d'alimentation.
  • Broche VCC : Il s'agit de la broche d'alimentation et elle doit être connectée à 3,3V de la tension d'alimentation.
  • Broche STATE : Cette broche indique les états de fonctionnement. Elle clignotera en mode veille avec une impulsion de 500 ms et sera allumée en état de connexion à un niveau élevé.

※ Note:

  • -
  • Seuls quatre broches sont nécessaires à utiliser avec le HM-10, que certains fabricants produisent.
  • VCC, GND, RX et TX sont les quatre broches en question.

À propos de l'application de moniteur série Bluetooth

Pour utiliser l'application Bluetooth Serial Monitor, vous devez d'abord connecter le Raspberry Pi à un module Bluetooth HM-10. Ensuite, téléchargez et installez l'application sur votre smartphone. Enfin, ouvrez l'application et connectez-la au module Bluetooth HM-10.

Une fois que vous aurez terminé ces étapes, vous pourrez envoyer et recevoir des données depuis le Raspberry Pi.

Diagramme de câblage

Schéma de câblage BLE pour 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

Table de Câblage. Cette table montre les connexions de câblage. 1. La Table de Câblage : Une liste des connexions de câblage. 2. Table de Câblage : Un diagramme affichant les connexions de câblage.

Raspberry Pi Pins HM-10 Bluetooth Pins
RX (GPIO15) TX
TX (GPIO14) RX
5V VCC
GND GND
BKR (NOT connected)
STATE (NOT connected)

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

Pour envoyer des données d'une carte Raspberry Pi à une application Bluetooth sur un smartphone, le code suivant peut être utilisé. Cet exemple montre comment transmettre le message “Raspberry Pi ici, commande-moi !” du Raspberry Pi vers l'application toutes les secondes.

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible avec Raspberry Pi installé 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, consultez 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. Consultez 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éez un fichier de script Python bluetooth_send.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-ble 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 en boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

Pour utiliser le code et connecter une carte Raspberry Pi à un smartphone via BLE, suivez ces étapes :

  • Téléchargez et installez l'application Bluetooth Serial Monitor sur votre smartphone.
  • Connectez le module Bluetooth HM-10 à la carte Raspberry Pi conformément au schéma de câblage.
  • Sur votre smartphone, ouvrez l'application Bluetooth Serial Monitor et sélectionnez le mode BLE.
Application de Surveillance Série Bluetooth
  • Connectez le smartphone au module Bluetooth HM-10.
Appairage du moniteur série Bluetooth
  • Jetez un coup d'œil au résultat sur l'application Android.
Application Moniteur Série Bluetooth
  • Jetez un coup d'œil au résultat affiché sur 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!

Si vous prenez les mesures nécessaires et exécutez le code, vous verrez que les données affichées sur l'application Android sont les mêmes.

Application Bluetooth Envoi de données au Raspberry Pi

Le code exécute ce qui suit :

  • Transmettez les données de l'application Bluetooth à la carte Raspberry Pi.
  • La carte Raspberry Pi lit les données entrantes, puis envoie une réponse à l'appareil 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-ble 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 exécutant la commande suivante dans le terminal :
python3 bluetooth_send_receive.py

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

Voici les instructions pour utiliser le code avec un Raspberry Pi et une application Android :

  • Démarrez l'application Android et associez-la au module Bluetooth HM-10 en utilisant les étapes d'un exemple précédent.
  • Après la connexion, tapez "LED ON" ou "LED OFF" dans l'application Android et appuyez sur le bouton "ENVOYER".
Application de surveillance série Bluetooth
  • La carte Raspberry Pi recevra les données et imprimera une réponse sur le port série. Ensuite, ces données seront envoyées à l'application Bluetooth. Enfin, le résultat peut être vérifié sur l'application Android.
Application de Surveillance Série Bluetooth
  • Consultez la sortie sur 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!

Une fois que vous avez terminé les étapes mentionnées ci-dessus, vous observerez que les données affichées sur l'application Android sont identiques.

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

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

Code Raspberry Pi - Contrôler un Servomoteur avec une Application Smartphone via BLE

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

Vidéo

※ 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!