ESP32 BLE mit VS Code und PlatformIO

2. November 2018 at 19:12

Da ich für ein Projekt Bluetooth verwenden möchte, habe ich mir ein ESP32 Modul zugelegt. Die ArduinoIDE mag für einfache Programme o.k. sein, ich benutze aber lieber eine sinnvolle Umgebung wie Eclipse oder VS Code. Mit Eclipse hatte ich schlechte Erfahrungen bzgl. der frameworks, so dass ich letztendlich zu PlatformIO gewechselt habe. Dies basierte bisher auf Atom und seit einiger Zeit auf Visual Studio Code. Bei mir gab es einige Hürden, bevor ich in der Lage war BLE auf dem ESP32 fehlerfrei zu kompilieren. Nachfolgend beschreibe ich meine Konfiguration.

Einstieg: Die Arduino IDE

Das ist optional, um die Module zu verifizieren.

Den Board Manager installieren : https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md

Unter Datei/Voreinstellungen die folgende URL eintragen: https://dl.espressif.com/dl/package_esp32_index.json

Den Boardverwalter aufrufen:

Anschliessend ESP32 installieren

Danach über Werkzeuge das Board auswählen: ESP32 Dev Module

Nun findet man bereits den Beispiel-Code: Datei/Beispiele (ganz unten)

 

VSCode / PlatformIO

Plattform installieren: Espressif 32

Bibliothek installieren: ESP32 BLE Arduino

Projekt anlegen

Wenn man die Bibliothek öffnet, kann man unten rechts auf „Repository“ klicken und gelangt zu github, wo die Beispiele hinterlegt sind.
Hier der link: https://github.com/nkolban/ESP32_BLE_Arduino/tree/master/examples

In den code muss man noch die Arduino.h hinzufügen.

 

platformio

[codesyntax lang=“javascript“]

; PlatformIO Project Configuration File
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

; Espressif 32;         platform=espressif32; version 7a758c4 = 1.4.0
; Espressif 32 (Stage); platform=espressif32; version c26e5ac = 1.4.0; https://github.com/platformio/platform-espressif32.git#feature/stage
[env:esp32dev-scan]
; platform - no comments allowed after platform name
; platform =espressif32           # o.k., using the latest version
; platform =espressif32@7a758c4   # o.k.
; platform =espressif32@c26e5ac   # o.k.
platform =espressif32
; board = esp32doit-devkit-v1     # o.k.
board = esp32dev
framework = arduino
; enable the next line if you want to upload and monitor directly after build
; targets = upload, monitor

lib_deps = 
  # Using a library name
  ESP32 BLE Arduino

upload_protocol = esptool
upload_speed = 921600
monitor_speed = 115200

[/codesyntax]

 

Ausgabe im Monitor für den scanner:

 

Zur Ergänzung – Ein Projekt in VS-Code anlegen

Nach dem Umstieg von Atom auf VS-Code hat sich auch die Methode für die Einbindung von Bibliotheken in PlatformIO etwas geändert.
Man installiert nun nicht mehr Bibliotheken in dem Library Manager sondern bindet die explizit in platformio.ini ein.

Auf geht’s ….

Zuerst PIO Home über das Haus-symbol aufrufen

Dann ein neues Projekt anlegen

Projektnamen vergeben und Board auswählen

Danach existiert nun das Projekt „My BLE“ mit leeren Funktionen für setup und loop.

Nun das Beispielprojekt von nkolban auf github aufrufen unten rechts auf den Button RAW drücken.
Danach öffnet sich ein Fenster ohne jegliche Schnörkel / HTML -Formatierungen.
Man kopiert nun alles (CTRL-A + CTRL-C)

Anschließend in VS-Code den Code einfügen und ganz oben noch #include <Arduino.h> einfügen

 

In der platformio.ini Datei noch den abschnitt ab Zeile 17 einfügen – lip_deps …..

[codesyntax lang=“javascript“]

lib_deps =
  # Using a library name
  ESP32 BLE Arduino
upload_protocol = esptool
upload_speed = 921600
monitor_speed = 115200

[/codesyntax]