Kurzfassung

  • Chipset SiLabs BGM13P (BT5.0)
  • Knoten
    • bietet sich unter „INSAIN_NODE_XX“ zur Verbindung an
    • Messdaten werden über UART empfangen und zum Host via BT übertragen
    • Funktioniert im Prinzip als Abstrahierung eines Kabels
  • RPi Shield (Host)
    • Initroutine notwendig zum Aufbau des Netzwerkes und Initialisierung der Sensortiles
    • Subprotokoll zur Kommunikation mit RPi
    • Daten der verschiedenen Nodes (mehrere SensorTiles möglich) werden zum RPi übertragen

Warum Bluetooth?

Die Wahl fiel auf BT 5.0, da einerseits bereits Erfahrung mit BT vorhanden war und andererseits eine hohe Datenrate notwendig ist, um die Messdaten von sechs Sensoren über Funkverbindung zu übertragen.
Zusätzlich soll das Gerät möglichst energiesparend sein, da es über Akku betrieben werden soll. Die BT5.0 Technologie bietet hier ein sehr guten Kompromiss zwischen Datenrate und Energieverbrauch.

Bluetooth Chipset

SiLabs BGM13P:

  • EFR32BG13 Blue Gecko SoC
  • Cortex M4 (32MHz)
  • BLE 5.0
  • Datenrate bis zu 2MBit/s
  • bis zu 8 gleichzeitige Verbindungen

Link: https://www.silabs.com/products/wireless/bluetooth/bluetooth-low-energy-modules/bgm13p-bluetooth-module

Sensor Knoten (Node)

Funktion

Sobald die Versorgung aktiv ist, beginnt der BT-Chip sich mit dem Namen „INSAIN_NODE_XX“ für eine Verbindung zum Host anzubieten
( = Advertising). XX ist eine Nummer die aus der MAC Adresse generiert wird.
Nach Verbindungsaufbau und Initialisierung des SensorTile über das Protokoll empfängt das BT-Chipset Messdaten über UART. Diese werden über BT zum Host weitergeleitet, indem auf dessen GATT Charakteristik zum Datenaustausch geschrieben wird.
Das Protokoll und die Hardware sind so ausgelegt, dass die Funkverbindung durch eine Kabel ersetzbar ist.

GATT Charakteristik:

  • Generic Access
    • device name („INSAIN_NODE_XX“)
      • read/write
      • 14 bytes
  • Device Information
    • Hersteller Name
      • read only
      • 12 bytes
  • Command Service
    • Command
      • write only
      • 250 bytes (max. data length)

RPi BT Shield (Host)

Funktionsweise

Die Host Seite benötigt eine Intialisierungsroutine zum Aufbau aller möglichen Verbidnungen und der anschließenden Initialisierung der SensorTiles, die über den RPi gestartet wird. Dafür wurde ein Subprotokoll entworfen.
Nachdem die Verbindung zu allen anwesenden Nodes aufgebaut wurde, wird für jede Verbindung separat die Initialisierung der SensorTiles durchgeführt. Danach empfängt der Host Daten über die einzelnen verbundenen Nodes. Bevor diese zum Host geleitet werden, wird dem Host via SELECT-Kommando des Subprotokolls mitgeteilt, woher das in Folge übertragene Paket stammt. Das Kommando wird nur ein mal pro Änderung des Knotens übertragen.

Subprotokoll

GATT Charakteristik:

  • Generic Access
    • device name („INSAIN_NODE_XX“)
      • read/write
      • 14 bytes
  • Device Information
    • Manufacturer name
      • read only
      • 12 bytes
  • Data Exchange Service
    • Data
      • write only
      • 250 bytes (max. data length)