Contrôler une LED via Bluetooth avec un Raspberry Pi

Ce tutoriel vous explique comment programmer un Raspberry Pi pour contrôler une LED via Bluetooth ou BLE.

Ce tutoriel fournit des instructions pour les deux modules.

Nous utiliserons l'application Bluetooth Serial Monitor sur un smartphone pour envoyer des commandes au Raspberry Pi.

Ces commandes incluent :

Raspberry Pi LED Bluetooth

Préparation du matériel

1×Raspberry Pi 4 Model B
1×HC-05 Bluetooth Module
1×(Alternative) HM-10 BLE Module
1×LED Kit with resistor
1×LED (red)
1×220 ohm resistor
1×Breadboard
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 LED et Bluetooth

Si vous n'êtes pas familier avec le module LED et Bluetooth (configuration des broches, fonctionnement, programmation ...), les tutoriels suivants peuvent vous aider à apprendre :

Diagramme de câblage

  • Si vous souhaitez gérer la LED via Bluetooth, le module Bluetooth HC-05 doit être utilisé en conjonction avec le schéma de câblage ci-dessous.
Schéma de câblage Bluetooth LED Raspberry Pi

This image is created using Fritzing. Click to enlarge image

  • Si vous souhaitez manipuler la LED via BLE, le module BLE HM-10 doit être utilisé conjointement avec le schéma de câblage ci-dessous.
Schéma de câblage LED 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

Code Raspberry Pi - contrôle LED via Bluetooth/BLE

Le code fonctionne pour le module Bluetooth HC-10 et le module BLE HM-10. Il est applicable aux deux.

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible 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 le 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. Voir comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous que la bibliothèque RPi.GPIO est 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_led.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-control-led-via-bluetooth import serial import RPi.GPIO as GPIO from time import sleep # Define pins LED_PIN = 16 # GPIO 16 (LED pin) # Set up GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN, GPIO.OUT) # 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": GPIO.output(LED_PIN, GPIO.LOW) # Turn off LED bluetooth.write(b"LED is turned OFF\n") # Report action to smartphone app elif command == "LED ON": GPIO.output(LED_PIN, GPIO.HIGH) # Turn on LED bluetooth.write(b"LED is turned ON\n") # Report action to smartphone app # Add a delay to avoid excessive looping sleep(0.1) except KeyboardInterrupt: pass finally: GPIO.cleanup() bluetooth.close()
  • Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le terminal :
python3 bluetooth_led.py
  • Téléchargez et installez l'application Bluetooth Serial Monitor sur votre smartphone.
  • Une fois le code téléversé, ouvrez l'application Bluetooth Serial Monitor sur votre smartphone et sélectionnez Bluetooth Classique ou BLE selon le module que vous utilisez.
Application Moniteur Série Bluetooth
  • Connectez l'application Bluetooth au module Bluetooth HC-05 ou au module BLE HM-10.
Appairage du moniteur série Bluetooth
  • Entrez soit « ON » soit « OFF » et appuyez sur le bouton Envoyer.
Application de surveillance série Bluetooth
  • Vérifiez l'état de la LED sur la carte Raspberry Pi. Elle sera soit ALLUMÉE, soit ÉTEINTE.
  • Nous pouvons également observer l'état de la LED via l'application Bluetooth.
  • Consultez le résultat sur l'application Android.
Application de Surveillance Série Bluetooth

Vous pouvez vous demander comment le Raspberry Pi peut comprendre une commande entière ? Par exemple, lorsque nous envoyons la commande « OFF », comment le Raspberry Pi peut-il distinguer si la commande est « O », « OF » ou « OFF » ?

Lors de l'envoi d'une commande, l'application Bluetooth ajoute un caractère de nouvelle ligne ('\n') en choisissant l'option “newline” sur l'application. Le Raspberry Pi lira les données jusqu'à ce qu'il rencontre le caractère de nouvelle ligne. Le caractère de nouvelle ligne sert de séparateur de commande.

Si vous trouvez l'application Bluetooth Serial Monitor utile, veuillez envisager de lui donner une note de 5 étoiles sur Play Store. Nous vous en serions vraiment reconnaissants ! Merci !

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!