Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bluetooth Mesh Networking mit Raspberry Pi und ESP32

Andreas Zilly
September 11, 2021

Bluetooth Mesh Networking mit Raspberry Pi und ESP32

Bluetooth Low Energy (BLE) hat zum Ziel kurze Datenpakete möglichst energiesparend zu übertragen. Dabei können bei BLE entweder zwei einzelne Geräte miteinander kommunizieren (1:1) oder es findet eine Kommunikation zwischen einem Gerät und vielen anderen Geräten statt (1:n).

Bluetooth Mesh ergänzt BLE und ermöglicht eine sichere Kommunikation zwischen vielen Geräten (m:m). Weiter wurde Bluetooth Mesh für den Aufbau großer Gerätenetzwerke optimiert, so dass es bei Gebäudeautomatisierung, Sensornetzwerken oder anderen IoT-Anwendungen, bei denen eine große Anzahl von Geräten miteinander kommunizieren müssen, verwendet werden kann.

Der Vortrag zeigt, wie mittels eines Raspberry Pi als Bluetooth Mesh Provisioner und mit ESP32-Boards als Knoten ein Bluetooth Mesh aufbaut werden kann.

Zielgruppe: Einsteiger, Fortgeschrittene

https://piandmore.de/de/conference/pi-and-radio-2021/
https://piandmore.de/de/conference/pi-and-radio-2021/schedule/event/12215

Andreas Zilly

September 11, 2021
Tweet

More Decks by Andreas Zilly

Other Decks in Technology

Transcript

  1. BLUETOOTH-MESH NETWORKING MIT RASPBERRY PI UND
    BLUETOOTH-MESH NETWORKING MIT RASPBERRY PI UND
    ESP32
    ESP32
    ANDREAS ZILLY
    ANDREAS ZILLY
    Pi and Radio 2021
    11.09.2021
    1

    View full-size slide

  2. BIO
    BIO
    Softwareentwickler
    twitter: @AndreasZilly
    https://blog.andreas-zilly.info
    2

    View full-size slide

  3. AGENDA
    AGENDA
    ESP32 von Espressif
    Bluetooth LE und Bluetooth Mesh Networking
    BlueZ auf dem Raspberry Pi
    Mesh Nodes mit ESP32
    Zusammenfassung
    3

    View full-size slide

  4. ESP32 VON ESPRESSIF
    ESP32 VON ESPRESSIF
    32-Bit-Mikrocontroller
    Wi-Fi Bluetooth
    ESP32
    802.11 b/g/n/e/i (150
    Mbit/s)
    Bluetooth 5 und
    BLE
    4 . 1

    View full-size slide

  5. ESP32 DEV KIT
    ESP32 DEV KIT
    ESP32-WROOM-32D
    Bluetooth, Bluetooth LE and Wi-Fi
    Pins abhangig vom Modul

    => 36 Pins; UART, I2C, SPI, PWM
    Onboard Antenne
    Micro-USB-Verbindung
    bis 4MB Flash
    Kompatibel mit Arduino, nodemcu, MicroPython
    4 . 2

    View full-size slide

  6. BLUETOOTH
    BLUETOOTH
    ISM-Frequenzband (2,402 GHz - 2,480 GHz)
    Verschiedene Klassen mit Reichweiten (1m -
    100m)
    Verschiedene Geräteprofile
    5 . 1

    View full-size slide

  7. BLUETOOTH LOWENERGY
    BLUETOOTH LOWENERGY
    Optionaler Teil von Bluetooth 4
    geringerer Stromverbrauch, geringere Kosten bei
    ähnlichen Kommunikationsbereich
    Wie bei Bluetooth verschiedene Profile
    healthcare, fitness, beacons, security
    Verbindungen 1:N
    5 . 2

    View full-size slide

  8. BLUETOOTH MESH NETWORKING
    BLUETOOTH MESH NETWORKING
    Basiert auf Bluetooth LE
    Verbindungen N:M
    Flood Networking
    Verschiedene Features der Nodes
    Relay, Proxy, LowPower, Friend
    Verschiedene Profile (generic, sensor,...
    5 . 3

    View full-size slide

  9. IMPLEMENTATIONEN
    IMPLEMENTATIONEN
    6 . 1

    View full-size slide

  10. BLUEZ
    BLUEZ
    LINUX STACK
    LINUX STACK
    Type: Mesh Profile
    Bluetooth "accepted" Stack ABER Mesh Profile
    nicht offiziell "accepted"
    Verschiedene kryptografische Module müssen im
    Kernel vorhanden sein (u.U Kompilieren)
    meshctl - Provisioning der Mesh Nodes
    6 . 2

    View full-size slide

  11. ESPRESSIF ESP-IDF
    ESPRESSIF ESP-IDF
    ESPRESSIF IOT DEVELOPMENT FRAMEWORK
    ESPRESSIF IOT DEVELOPMENT FRAMEWORK
    ESP-BLE-MESH (Zephyr Bluetooth Mesh stack)
    ESP-MESH (Wi-Fi)
    FreeRTOS
    Apache 2.0
    Profile Subsystem "accepted"
    https://docs.espressif.com/projects/esp-
    idf/en/latest/esp32/api-guides
    6 . 3

    View full-size slide

  12. ZEPHYR OS MESH
    ZEPHYR OS MESH
    LINUX FOUNDATION
    LINUX FOUNDATION
    RTOS
    Type: Profile Subsystem "accepted"
    Apache 2.0
    6 . 4

    View full-size slide

  13. PROVISIONING
    PROVISIONING
    Einbinden neuer Devices in Mesh Netzwerk
    Zuweisen von Netzwerkresourcen (Adresse(n),
    DevKey, NetKey)
    Möglich mittel BlueZ auf Raspberry Pi (meshctl (PB-
    GATT), mesh-cfgclient (PB-ADV))
    7 . 1

    View full-size slide

  14. PROVISIONING
    PROVISIONING
    EINBINDEN NEUER DEVICES
    EINBINDEN NEUER DEVICES
    7 . 2

    View full-size slide

  15. MESHCTL
    MESHCTL
    8 . 1

    View full-size slide

  16. DISCOVER-UNPROVISIONED ON
    DISCOVER-UNPROVISIONED ON
    8 . 2

    View full-size slide

  17. PROVISION
    PROVISION
    8 . 3

    View full-size slide

  18. KONFIGURATION DES NODES
    KONFIGURATION DES NODES
    Adresse(n)
    AppKey (Node)
    NetKey
    8 . 4

    View full-size slide

  19. ZUSAMMENFASSUNG
    ZUSAMMENFASSUNG
    Raspberry Pi als Mesh Provisioner
    ESP32 Module ausreichend um kleines
    (Sensor)Netzwerk aufzuspannen
    ESP* kann auch mit Powerbank betrieben werden
    Module "relativ" preiswert
    ESP32 Module mit vielen verschiedenen
    Eigenschaften verfügbar
    9

    View full-size slide

  20. LINKSAMMLUNG
    LINKSAMMLUNG








    https://www.espressif.com/en/products/devkits/
    https://docs.espressif.com/projects/esp-
    idf/en/latest/esp32/index.html
    https://www.bluetooth.com/de/bluetooth-resources/
    https://www.bluetooth.com/specifications/specs/
    https://docs.zephyrproject.org/latest/samples/bluetooth
    10

    View full-size slide

  21. DANKE FÜR EURE AUFMERKSAMKEIT
    DANKE FÜR EURE AUFMERKSAMKEIT
    This work is licensed under a .
    @AndreasZilly


    Creative Commons Attribution 4.0
    International License
    11 . 1

    View full-size slide