Forum: Mikrocontroller und Digitale Elektronik Bluetooth-Verbindung Nachhilfe


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Polizeirat Becker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Community,

seit langer Zeit befasse ich mich mal wieder mit etwas digitalem. Es 
geht um den micro:bit von BBC und eine Bluetooth-Verbindung.

Die Programmierung geht ja realitv einfach über ein Webinterface oder 
per Smartphone. Hauptsächlich interessiert mich das Thema BLE. Auf dem 
micro:bit habe ich einen Bluetooth-Service erstellt, der die Werte des 
Beschleunigungssensors zur Verfügung stellt. Nun dachte ich, dass ich 
mich mit der App "nrf connect" von nordic einfach verbinde und die Daten 
in Echtzeit auslese. Leider hat das nicht geklappt.

Nach einigem Rumprobieren im Webinterface habe ich die entsprechende 
Stelle gefunden wo mein Fehler liegt. Man kann im Vorfeld des Projektes 
festlegen, ob Pairing notwendig ist oder nicht.

Wenn ich das Pairing ausstelle kann ich die Daten in Echtzeit über nrf 
connect auslesen. Wenn das Pairing angestellt ist dann nicht. Dann kann 
ich nur die Daten über die App von micro:bit auslesen.

Nun meine Frage: wenn das Pairing eingstellt ist handelt es sich da 
immer noch um eine BLE-Verbindung oder ist es dann ein vollwertige 
BL-Verbindung, also kein low energy?

von Joachim S. (oyo)


Bewertung
1 lesenswert
nicht lesenswert
Das ist immer noch BLE; der vom Micro:Bit verwendete Mikrocontroller 
nRF51822 kann glaube ich eh nur BLE, kein klassisches Bluetooth.

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
Polizeirat Becker schrieb:
> Wenn das Pairing angestellt ist dann nicht. Dann kann
> ich nur die Daten über die App von micro:bit auslesen.

Dann machst Du was falsch IMHO. NRF Connect kann auch mit 
Pairing/Bonding umgehen.

Übrigens wäre es ein Fehler auf einem Gerät ohne Display/Tastatur wie 
dem micro:bit das MITM-Bit zu setzen.

von Polizeirat Becker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ah verstehe! Wer BL 4.0 kann muss nicht zwangsläufig BLE können. Die 
Chipdesigns sind grundsätzlich unterschiedlich, aber man kann beide in 
ein Gehäuse integrieren. Mit anderen Worten der mirco:bit kann nur BLE, 
da der nrf51822 nur BLE kann.

Das heißt man kann auch beim BLE sich pairen. Ist ein gepairte 
Verbindung grundsätzlich verschlüsselt?

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
0 lesenswert
nicht lesenswert
Polizeirat Becker schrieb:

> Das heißt man kann auch beim BLE sich pairen. Ist ein gepairte
> Verbindung grundsätzlich verschlüsselt?

Nein ist es nicht. Pairen bedeutet nur, dass die beiden Seiten Schlüssel 
ausgetauscht haben. Das die Verschlüsselung auch genutzt wird, muss der 
GATT Client (micro:bit) prüfen und ggf. mit einer Fehlermeldung 
antworten.

von Polizeirat Becker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nochmal ein paar Rückfragen nach weiterer Recherche. Der micro:bit kann 
nur BLE. Ich habe jetzt einen Temperatur Service gestartet und die 
Verbidung so eingestellt, dass ein pairing nicht notwendig ist.

Ich kann mich jetzt über nrf connect mit dem mirco:bit verbinden und die 
Daten auslesen. Das bedeutet mein mirco:bit ist mein Server und mein 
Smartphone ist der Client.
Theoretisch könnte sich jedes Smartphone über nrf connect oder ähnliches 
mit dem micro:bit verbinden und die Daten auslesen.
Wenn sich jetzt jemand mit dem micro:bit verbindet, ist derjenige dann 
gepairt? Ist diese Verbindung zwischen den beiden Verschlüsselt oder 
könnte ich mit meinem Smartphone die Verbindung sniffen? Wenn derjenige 
mit dem micro:bit verbunden ist kann ich mich nicht mehr verbinden, 
richtig? Könnte ich aber den micro:bit in meiner Liste von 
Bluetooth-Geräten in der Nähe noch sehen?

Nächste Frage zum Thema Bonding.
Wenn ich mit einem BT-Gerät gebondet bin habe ich über Pairing Schlüssel 
getauscht und gespeichert und ich kann man mich beim nächsten Mal 
einfach verbinden, wenn ich in der Nähe bin. Die Kommunikation ist 
verschlüsselt.
Wenn ein Bluetooth-Gerät, bspw. ein Autoradio, mit einem Smartphone 
gebondet ist, könnte sich dennoch ein zweites Gerät bonden lassen? Also 
kann sich das Autoradio mit mehreren Smartphones bonden?

von Joachim S. (oyo)


Bewertung
1 lesenswert
nicht lesenswert
Ohne Gewähr, teilweise könnte ich mich durchaus irren:

Polizeirat Becker schrieb:
> Theoretisch könnte sich jedes Smartphone über nrf connect oder ähnliches
> mit dem micro:bit verbinden und die Daten auslesen.

Korrekt.

> Wenn sich jetzt jemand mit dem micro:bit verbindet, ist derjenige dann
> gepairt?

Nein, nur weil er sich verbindet, ist er nicht automatisch gepairt.

> Ist diese Verbindung zwischen den beiden Verschlüsselt oder
> könnte ich mit meinem Smartphone die Verbindung sniffen?

Mit einem Smartphone geht das vermutlich eher schwer, aber grundsätzlich 
ist das durchaus möglich, ja. Zumindest ist das üblicherweise so, die 
meisten Bluetooth LE-Geräte kommunizieren völlig unverschlüsselt.

> Wenn derjenige
> mit dem micro:bit verbunden ist kann ich mich nicht mehr verbinden,
> richtig? Könnte ich aber den micro:bit in meiner Liste von
> Bluetooth-Geräten in der Nähe noch sehen?

Man kann Bluetooth LE grundsätzlich glaube ich schon so betreiben, dass 
sich mehrere Clients gleichzeitig mit einem Server verbinden können.
Alle mir bislang unter die Nase gekommenen Geräte waren allerdings so 
programmiert, dass sich immer nur ein einziger Client verbinden konnte; 
während ein Client verbunden war, konnte sich kein anderer mehr 
verbinden, und dieses Gerät war dann auch nicht mehr über eine 
Bluetooth-Geräte-Suche zu sehen, sprich, er hat dann auch keine 
Advertisements mehr gesendet. Erst, wenn der gerade verbundene Client 
disconnected war, war das Gerät über eine Bluetooth-Suche wieder zu 
sehen.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
0 lesenswert
nicht lesenswert
Polizeirat Becker schrieb:
> Wenn sich jetzt jemand mit dem micro:bit verbindet, ist derjenige dann
> gepairt?

Nein, er ist nur verbunden.

> Ist diese Verbindung zwischen den beiden Verschlüsselt oder
> könnte ich mit meinem Smartphone die Verbindung sniffen?

Grundsätzlich ist eine Verbindung ohne pairing immer unverschlüsselt, 
weil keine Schlüssel ausgetauscht wurden. Wenn das peripheral allerdings 
überhaupt keine IO-Möglichkeiten (Tasten, Display etc.) hat, dann kann 
das pairing erfolgen, ohne das man das an einen smartphone merkt 
erfolgen.

Und ja, eine unverschlüsselte Verbindung kann man sniffen. Wenn man das 
pairing mit-sniffen kann, kann man in den meisten (ausser wenn LE secure 
connections ab BLE 4.2 verwendet werden) Fällen dann auch den 
Schlüsselaustausch mitlauschen.

> Wenn derjenige
> mit dem micro:bit verbunden ist kann ich mich nicht mehr verbinden,
> richtig? Könnte ich aber den micro:bit in meiner Liste von
> Bluetooth-Geräten in der Nähe noch sehen?

Die Implementierung wird wahrscheinlich so sein, dass der micro:bit 
entweder periodisch advertisments sendet (und so in der Liste von 
Bluetooth-Geräten in der Nähe zu sehen ist), oder aktiv in einer 
Verbindung steckt.

> Nächste Frage zum Thema Bonding.
> Wenn ich mit einem BT-Gerät gebondet bin habe ich über Pairing Schlüssel
> getauscht und gespeichert und ich kann man mich beim nächsten Mal
> einfach verbinden, wenn ich in der Nähe bin.

Ja, bonding ist pairing (also der Austausch von Schlüsseln) und das 
persistente Speichern dieser Schlüssel.

> Die Kommunikation ist
> verschlüsselt.

Das ist nicht zwangsläufig so. Ein GATT Server bildet eine Art Key-Value 
Datenbank. Die BLE Spezifikation verlangt explizit dass auf einen Teil 
dieser Datenbank auch unverschlüsselt zugegriffen werden können muss. 
Für andere Teile, kann die Verschlüsselung gefordert sein.

> Wenn ein Bluetooth-Gerät, bspw. ein Autoradio, mit einem Smartphone
> gebondet ist, könnte sich dennoch ein zweites Gerät bonden lassen? Also
> kann sich das Autoradio mit mehreren Smartphones bonden?

Dazu läßt sich die BLE Spezifikation nicht aus. Kann durchaus sein, dass 
das Radio in der Lage ist, verschiedene Bond-Informationen zu speichern.

mfg Torsten

von Roger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Eine Frage zum automatischen Disconnect: Bin gerade beim Testen einer 
BLE Verbindung zwischen zwei RN4871 Modulen und stelle fest, daß die 
Verbindung regelmäßig abreißt. Ist das irgendwo in der Spezifikation 
hinterlegt unter welchen Bedingungen ein Disconnect erfolgt?

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
Roger schrieb:
> Ist das irgendwo in der Spezifikation
> hinterlegt unter welchen Bedingungen ein Disconnect erfolgt?

Supervision timeout ist ein Parameter den die Geräte untereinander 
aushandeln können.

Eventuell ist bei einem der Module der Quarz aus dem 250PPM Limit 
gelaufen. Dann könnte es das Sende/Empfangsintervall verpassen.

von Roger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Jim M. schrieb:
> Supervision timeout ist...

Danke der technischen Hintergrundinfo.
Wie sich herausstellte war der Grund für die spontanen Disconnects ein 
ganz profaner: In unmittelbarer Nähe sendete ein zweiter BT-Stick. Ein 
wenig Anstand und die Verbindung bleibt stabil.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.