Raspberry Pi - BLE

Deze tutorial leert u hoe u een Raspberry Pi gebruikt om de BLE HM-10 module te bedienen. Gedetailleerd leren we:

Raspberry Pi BLE

Het doel van deze tutorial is:

Het is belangrijk om te weten dat deze tutorial zich richt op Bluetooth Low Energy (BLE, Bluetooth 4.0). Heeft u informatie nodig over Classic Bluetooth (Bluetooth 2.0), raadpleeg dan een vergelijkbare tutorial Raspberry Pi - Bluetooth.

Hardware Benodigd

1×Raspberry Pi 5
1×HM-10 BLE Bluetooth-Module
1×Jumperdraden (man-man)
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over HM-10 Bluetooth Module

De HM-10 is een Serial BLE module die fungeert als een omvormer van Serial naar Bluetooth Low Energy. Het voert de volgende taken uit:

  • Data van de Serial RX-pin overnemen en verzenden naar een gekoppeld apparaat, zoals een smartphone, via BLE
  • Data ontvangen via BLE (van het gekoppelde apparaat) en doorsturen naar de Serial TX-pin

Wanneer een Raspberry Pi communiceert met een smartphone app (Android/iOS), vinden de volgende stappen plaats:

  • Het tot stand brengen van een verbinding tussen de Raspberry Pi en de HM-10 Bluetooth module via de Serial-pinnen
  • Koppelen van de HM-10 Bluetooth module met de smartphone app
  • Verzenden van data vanuit de Raspberry Pi naar de smartphone app door schrijven naar de Serial
  • Ontvangen van data vanuit de smartphone app door lezen van de Serial
  • Er is geen extra BLE-code nodig op de Raspberry Pi.

Pinout van de BLE HM-10 Module

BLE pinout

De HM-10 BLE Module heeft 6 pinnen:

  • BKR pin: Deze pin wordt gebruikt om het gedrag van de module te regelen. Als u beginner bent, kunt u deze pin negeren.
  • RX pin: Dit is de serial datapin en moet verbonden worden met de TX-pin van de Raspberry Pi. Data die via deze pin binnenkomt, wordt via Bluetooth verzonden.
  • TX pin: Dit is de serial datapin en moet verbonden worden met de RX-pin van de Raspberry Pi. Data die via BLE ontvangen wordt, wordt als serial data naar deze pin gestuurd.
  • GND pin: Dit is de aarding en moet worden aangesloten op GND van de voedingsbron.
  • VCC pin: Dit is de voeding en moet verbonden worden met 3.3V van de voedingsspanning.
  • STATE pin: Deze pin geeft de status aan. In standby-modus knippert hij met een puls van 500 ms, in verbindingsmodus staat hij op hoog niveau.

※ Notiz:

  • -
  • Voor de HM-10 zijn slechts vier pinnen noodzakelijk, wat sommige fabrikanten gebruiken.
  • VCC, GND, RX en TX zijn de vier pinnen in kwestie.

Over Bluetooth Serial Monitor App

Om de Bluetooth Serial Monitor App te gebruiken, moet u eerst de Raspberry Pi verbinden met een HM-10 Bluetooth module. Vervolgens download en installeert u de app op uw smartphone. Daarna opent u de app en maakt u verbinding met de HM-10 Bluetooth module.

Zodra deze stappen voltooid zijn, kunt u data verzenden en ontvangen van de Raspberry Pi.

Bedradingsschema

Raspberry Pi BLE wiring diagram

This image is created using Fritzing. Click to enlarge image

Tabel van de bedrading. Deze tabel toont de aansluitingen:

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

Raspberry Pi stuurt data naar Bluetooth App op smartphone

Om data te verzenden van een Raspberry Pi naar een Bluetooth applicatie op een smartphone, kunt u de volgende code gebruiken. Dit voorbeeld toont hoe het bericht “Raspberry Pi here, command me!” elke seconde wordt verzonden van de Raspberry Pi naar de app.

Snelle Stappen

  • Zorg dat u Raspbian of een ander Raspberry Pi-compatibel besturingssysteem op uw Pi hebt geïnstalleerd.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi verbonden is met internet als u libraries moet installeren.
  • Als dit de eerste keer is dat u een Raspberry Pi gebruikt, zie dan hoe u de Raspberry Pi instelt.
  • Verbind uw pc via SSH met de Raspberry Pi, gebruik makend van de ingebouwde SSH-client op Linux/macOS of PuTTY op Windows. Zie hoe u uw pc via SSH verbindt met de Raspberry Pi.
  • Zorg dat u de RPi.GPIO library geïnstalleerd heeft. Zo niet, installeer deze met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
pip install pyserial
  • Maak een Python scriptbestand aan met de naam bluetooth_send.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/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()
  • Sla het bestand op en start het Python script met het volgende commando in de terminal:
python3 bluetooth_send.py

Het script draait oneindig door totdat u Ctrl + C indrukt in de terminal.

Volg deze stappen om de code te gebruiken en de Raspberry Pi via BLE met een smartphone te verbinden:

  • Download en installeer de Bluetooth Serial Monitor App op uw smartphone.
  • Verbind de HM-10 Bluetooth module met de Raspberry Pi volgens het bedradingsschema.
  • Open op uw smartphone de Bluetooth Serial Monitor App en selecteer de BLE-modus.
Bluetooth Serial Monitor App
  • Maak verbinding tussen de smartphone en de HM-10 Bluetooth module.
Bluetooth Serial Monitor pairing
  • Bekijk het resultaat in de Android app.
Bluetooth Serial Monitor App
  • Bekijk het resultaat in de 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!

Wanneer u de noodzakelijke stappen volgt en de code uitvoert, ziet u dat de data in de Android app dezelfde zijn.

Bluetooth App verzendt data naar Raspberry Pi

De code voert het volgende uit:

  • Data verzenden van de Bluetooth applicatie naar de Raspberry Pi
  • De Raspberry Pi leest de inkomende data en stuurt een reactie terug naar het Bluetooth apparaat

Snelle Stappen

  • Maak een Python scriptbestand aan met de naam bluetooth_send_receive.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/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()
  • Sla het bestand op en start het Python script met het volgende commando in de terminal:
python3 bluetooth_send_receive.py

Het script draait oneindig door totdat u Ctrl + C indrukt in de terminal.

Volg deze instructies om de code met Raspberry Pi en een Android app te gebruiken:

  • Start de Android app en koppel deze met de HM-10 Bluetooth module volgens de eerdere stappen.
  • Typ in de Android app "LED ON" of "LED OFF" en druk op de "SEND" knop.
Bluetooth Serial Monitor App
  • De Raspberry Pi ontvangt de data en print een reactie naar de Serial poort. Daarna wordt deze data teruggestuurd naar de Bluetooth app. Het resultaat is te bekijken in de Android app.
Bluetooth Serial Monitor App
  • Bekijk de output in de 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!

Na het afronden van deze stappen zult u zien dat de data weergegeven in de Android app identiek zijn.

Raspberry Pi Code - LED besturen met smartphone app via BLE

Zie de tutorial Raspberry Pi bestuurt LED via BLE.

Raspberry Pi Code - Servomotor besturen met smartphone app via BLE

Zie de tutorial Raspberry Pi bestuurt servomotor via BLE.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap met de opstelling en het gebruik van BLE met de Raspberry Pi.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!