Hi,
ich experimentiere zur Zeit an einem BLE-Funksensor, welcher über
Energy-Harvesting autark aus einer Wärmequelle versorgt werden soll.
Konkret kann ich innerhalb von 10min ca. 0.5-1J sammeln. Das sollte
reichen um innerhalb dieser Zeit alle paar Sekunden eine
Temperaturmessung durchzuführen und die Daten über BLE an eine
entsprechende Empfangsstelle, ich nenne sie mal Master zu senden.
Allerdings steige ich noch nicht so ganz durch, was unter Verwendung von
BLE konkret ein geeigneter Kommunikationsablauf ist.
BLE kann ja Advertising-Pakete raussenden. Schon diese können Daten
enthalten (31 bytes payload afaik, das würde reichen). Allerdings sind
diese erst mal unverschlüsselt und von jedem Empfänger einsehbar sowie
so ohne weiteres nicht einer bestimmen gesicherten Quelle zuordbar
(sofern ich z.b. ganz viele dieser Funk-Sensoren betreibe, die auch noch
alle gleich heißen. Oder haben die alle eine unique ID?).
Nachdem ein Advertising-Paket vom Master detektiert wurde kann sich
dieses mit meinem BLE-Funksensor connecten. Nach dem Herstellen der
Verbindung können dann Daten ausgetauscht werden. Hier steige ich aber
noch nicht ganz durch, wie das mit den Protokollen/Services
funktioniert. Was ich zuletzt gelesen habe sagt, BLE kann kein
herkömmliches serielles Protokoll. Stattdessen wird das Protokoll von
der Applikationsebene, d.h. meiner eigenen Software bestimmt, also
eigentlich doch wieder einfach serielle Kommunikation. Dann gibts da
allerdings noch GATT, d.h. irgendwie so eine Art Kommunikation mittels
Austausch von Schlüssel-Werte-Paaren, was für mich ja eher unbrauchbar
ist. Oder ist das auch nur ein Protokoll, Service, wie auch immer man es
nennt, das jedes mal aufs neue von der Software, welche das BLE-device
bedient, selbst zu Fuß implementiert wird? Eigentlich möchte ich am
liebsten einfach nur schnell connecten, ein paar Daten seriell
austauschen und schnell wieder disconnecten.
Oder macht es Sinn, die Connection über längere Zeit aufrecht zu
erhalten und nur ab und zu Daten zu senden? Oder verbraucht schon das
Aufrechterhalten der Connection dauerhaft viel Strom?
Kann ich eine Connection nur als Antwort auf ein Advertising-Paket
etablieren? Kann also mein Master gar nicht selbst bestimmen, wann es
Zeit wäre, Daten abzurufen, weil mein BLE-Funksensor gar nicht zuhört,
wenn er nicht zuvor ein Advertising-Paket gesendet hat?
Wie lange hat mein Master denn überhaupt Zeit, nachdem der Funksensor
ein Advertising-Paket gesendet hat, um sich zu connecten? Ich stelle mir
das so vor, dass er das Advertising-Paket raushaut und dann ein paar
...Millisekunden oder den Empfänger scharf schaltet um auf eingehende
Connection-Anfragen reagieren zu können.
Wäre nett, wenn mich jemand aufklären könnte. Die häppchenweise
verteilten Informationen im Internet sind ziemlich zäh verdaulich.
lg Paul