0

Ich arbeite an einer physischen Web-orientierte Anwendung.BLE Sendung ohne Paarung

Ich möchte einige Geräte haben, die kontinuierlich String-Nachrichten mit Bluetooth Low-Energy-Broadcast senden. Der Endpunkt ist eine ionische Anwendung, die diese Nachrichten nur bei Bedarf empfangen und anzeigen soll.

Ist es möglich, diese Art von Verhalten ohne eine parenting Phase zwischen dem Bluetooth-Broadcaster und dem Mobiltelefon zu implementieren?

Im Moment arbeitete ich mit dem Eddystone-Protokoll und baute ein Beacon mit meinem Raspberry Pi, aber ich habe einige Einschränkungen aufgrund von 17 Zeichen Länge Einschränkung der URL-Größen. (Ich verwende URL als Zeichenfolge, um Daten zu übergeben).

+0

Beacons verwenden BLE-Werbeframes für die Übertragung, und diese Frames sind in der Größe begrenzt. Also die ~ 20 Bytes zur Verfügung. – Juancho

+0

Ok danke. Ist es möglich, einen Sender ohne Kopplung mit BLE - cordova zu implementieren? –

Antwort

0

Sie müssen keine mobilen Geräte mit Beacon-Geräten koppeln, um deren Signale zu empfangen. Beacon-Signale werden als Bluetooth LE-Anzeigen gesendet, die von allen BLE-Geräten in der Nähe ohne Pairing gelesen werden können. Dies gilt sowohl für iOS als auch für Android.

Wenn Sie planen, Ionic zu verwenden, gibt es eine Cordova iBeacon plugin, die Sie verwenden können. Mir ist nichts von Eddystone bekannt.

Mit iBeacon sind Sie noch mehr auf die Weitergabe von Daten beschränkt, ziemlich begrenzt auf vier Bytes auf iOS. Um verschiedene Nachrichten anzuzeigen, müssten Sie eine Nachschlagetabelle in Ihre App einbetten oder einen Webdienst verwenden, um das gleiche zu tun, indem Sie die Zeichenfolge anhand der Beacon-ID nachschlagen. Mit vier Bytes. Das würde Ihnen 2 ** 32 (4 Milliarden) mögliche Nachrichten geben.

Volle Offenlegung: Ich bin der leitende Entwickler auf dem Open Source-Projekt Android Beacon Library, auf dem das oben erwähnte Cordova-Plugin basiert.

+0

Danke. Tatsächlich hängt das Problem nicht mit der Anzahl der Nachrichten zusammen, die meine App mit Eddystone verbinden. Ich würde gerne wissen, ob es einen alternativen Ansatz gibt (anstatt Eddystone Beacon zu verwenden), um eine Zeichenfolge mit BLE zu senden und sie in meiner App zu empfangen, ohne dass Geräte gepaart werden müssen. Ich bekomme Probleme mit URL-Längenbeschränkungen, da ich Strings von 50-60 Zeichen senden muss. Meine Absicht ist nicht, URL zu senden, sondern Nachrichten. Im Moment benutze ich eddystone-url nicht richtig. Nachschlagetabelle ist nicht gut für meinen Zweck, da Nachrichten häufig aktualisiert werden müssen und meine App offline bleiben muss. –

+0

Wenn Sie die vollständige Nachricht innerhalb des a BLE-Pakets ohne Pairing senden möchten, sind Sie durch die max. BLE-Advertisement-Paketlänge eingeschränkt, die im Grunde genommen 24 Byte nutzbaren Speicherplatz für Herstelleranzeigen darstellt. Sie müssen ein oder zwei Bytes reservieren, um es als Ihren Beacon-Typ zu identifizieren. So könnten Sie 22 ASCII-Zeichen in einem benutzerdefinierten Beacon-Format erhalten. Sie könnten die Werbung möglicherweise so drehen, dass ein einzelnes Byte Ihnen die Anzahl der Anzeigen mitteilt, die miteinander kombiniert werden sollen und welche davon (z. B. 4 von 15). Dies würde es Ihnen ermöglichen, 16 Anzeigen zu verbinden, um 300 Zeichen zu erhalten. – davidgyoung

+0

Ja danke, das war eine Lösung, die mir in den Sinn kam. Ich denke nicht, dass kommerzielle Beacon solch eine Rotation erlauben, aber ich kann es mit meiner Himbeere umsetzen. Du denkst also, ich kann keine grundlegende Broadcast-Kommunikation (Beacon like) mit nur BLE implementieren? –