BLE mit dem ESP32

BLE steht für Bluetooth Low Energy. Hierbei handelt es sich um einen neuen Bluetooth-Standard. Dieser ist auf möglichst geringen Energiebedarf ausgerichtet. Wie funktioniert nun BLE? Was steckt hinter den Begriffen und Abkürzungen Advertiser, Scanner, BLE-Datenpakete, Central und Peripheral, Connecting, GATT und GAP? Wie kann man mit Micropython selbst BLE-Programme entwickeln?

Wenn Sie auf diese Fragen Antworten suchen, dann empfehle ich Ihnen meinen Kurs Bluetooth Low Energy: Eine praktische Einführung mit Micropython und dem ESP32-Board TTGO T-Display. In diesem Kurs stelle ich zum Einen – nach Schwierigkeitsgrad gestaffelt – eine Reihe von einfachen, aber ausbaufähigen Beispielen zur Anwendung von BLE mit dem ESP32 vor; zum Anderen sollen aber auch die oben erwähnten Begriffe und Konzepte so weit dargelegt werden, wie wir es für ein Verständnis der BLE-Programmierung erforderlich halten. Ziel ist es, dem Leser damit grundlegende Kenntnisse zu vermitteln und bei ihm eine tragfähige Vorstellung zu entwickeln, die es ihm erlauben, die vorgestellten Programme selbstständig weiter auszubauen und auch neue Anwendungen zu realisieren.

Der Kurs benutzt als ESP32-Modul eine Variante mit der Bezeichnung TTGO T-Display. Dieses Modul besitzt bereits ein Farb-Display mit 240 x 135 Pixeln. (Weitere Informationen zu diesem Modul finden sie hier.) Für den überwiegenden Teil der Beispiele können Sie allerdings auch andere ESP32-Module einsetzen.

Als Programmiersprache setzen wir Micropython ein. Speziell für dieses Board gibt es eine Micropython-Firmware, die auch das Display des Moduls TTGO T-Display unterstützt.

Weitere Informationen zu diesem Kurs finden Sie hier.


Zu dem Kurs gehören folgende Materialien:

  • Ein Skript (pdf-Datei, ca. 80 Seiten)
  • Weitere Unterlagen (Pin-Out und Schaltskizze für das TTGO-Modul, Links für die benutzte Firmware und die Thonny-IDE, …)
  • Beispiel-Programme

Hier können Sie sämtliche Materialien in Form einer einzigen zip-Datei herunterladen (Stand: 08.03.2022):


Für einen ersten Überblick: Das Inhaltsverzeichnis des Skripts:

  • Vorwort
  • Vorbereitung (Hardware, Software)
  • Einführung (Micropython-Crash-Kurs)
  • Grundlagen
  • Experimente: Scan & Connect
  • Struktur der Advertising-Datenpakete
  • Interrupt-Intermezzo
  • Scan-Programm
  • BLE-Konstanten
  • Passives und aktives Scannen
  • Broadcaster und Observer programmieren
  • Connect & Disconnect
  • Eine eigene BLE-Klasse
  • Der Heart Rate Service (HRS)
  • Der Nordic UART Service (NUS)
  • Das GATT-Profil unter der Lupe
  • Quellenangaben und Stichwortverzeichnis