Eine erfolgreiche Implementierung von iBeacon: 200 Beacons für RIF + CIB 2014

    Nach der ursprünglichen Idee sollte der Artikel den Titel „Einfacher Weg, dich schlafen zu lassen“ tragen, aber wen wirst du jetzt überraschen? Unter der Überschrift finden Sie eine kurze Geschichte darüber, wie unser Team die iBeacon-Innennavigation auf dem Gebiet von RIF + KIB 2014 eingeführt hat, sowie über alle Fakaps und andere Abenteuer, die wir unterwegs erlebt haben.

    Vorwort

    Kurz gesagt, es lohnt sich, über Technologie zu sprechen. iBeacon ist ein kleines Bluetooth-Beacon, das Informationen zu seinen Kennungen (UUID, Major, Minor) an andere Geräte übertragen kann. Eine Person mit der installierten Anwendung nähert sich dem Beacon, das Smartphone empfängt Daten darüber und sendet sie an uns auf dem Server. Wir finden dieses Leuchtfeuer in unserer Datenbank und senden die Benutzerkoordinaten vor Ort. Wenn sich der Benutzer im Bereich von zwei oder drei Baken befindet, können wir natürlich seinen Standort genauer bestimmen.

    All dies ist in Innenräumen sehr praktisch - da GPS für die Navigation keine ausreichende Genauigkeit bieten kann.
    Natürlich eröffnet diese Technologie viele erstaunliche Möglichkeiten, und unser Team hat mit großer Begeisterung eine Plattform und ein mobiles SDK für die Arbeit mit Beacons entwickelt.

    Teil 1. Vorbereitung

    Nachdem wir genug mit ein paar Testversionen von Beacons gespielt und die ersten Versionen des Konfigurationsdienstes und des iOS SDK vorbereitet hatten, fühlten wir die Kraft, etwas mehr zu tun. Es war Ende Februar, die RIF + CIB-Konferenz schien eine ausgezeichnete Option für den ersten großen Start zu sein: Es waren noch zwei Monate, und das ist wow, alles kann in so und so einer Zeit getan werden, oder?

    Es war notwendig, Zeit zu haben:
    • Verstehen, wie viele Beacons Sie benötigen, kaufen und erhalten;
    • Suchen oder Vorbereiten eines Tools, mit dem Sie die gesamte Anzahl von Beacons stapelweise konfigurieren können (geben Sie ihnen die richtigen Bezeichner, geben Sie die Leistung und Häufigkeit an).
    • Entwicklung einer iOS-Anwendung für Konferenzteilnehmer;
    • Beenden Sie die Webplattform erheblich.
    • und eine echte Kleinigkeit - an den richtigen Ort zu kommen und die richtigen Leuchtfeuer an den richtigen Punkten zu installieren.


    Die Testexemplare der Beacons, die uns zur Verfügung standen, waren bei weitem nicht so gut wie die, über die jetzt so viel im Netz steht: Sie erreichten eine Distanz von 5 bis 10 Metern, aber keineswegs 50, während alles ein wenig anders funktionierte und nicht sehr stabil. Aber ihre geringen Kosten und unser Optimismus wurden zu entscheidenden Faktoren - es wurde beschlossen, sie für die Konferenz zu bestellen.

    Nachdem wir von den Organisatoren eine ungefähre Karte der Ausstellung sowie einen kleinen Teil des Architekturplans mit den angegebenen Abmessungen erhalten hatten, begannen wir, über die optimale Position der Leuchtfeuer nachzudenken.

    Die Probleme begannen, als sich herausstellte, dass der Architekturplan, die gezeichnete Karte des Ereignisses und die Ansicht desselben Ortes in Google Maps nur an verschiedenen Stellen ähnlich sind. Die Konturen, Proportionen und Größen der Gebäude waren offensichtlich unterschiedlich.
    Eine genauere Karte war nicht möglich.

    Die beste Lösung wäre natürlich, ungefähr einen Monat vor der Konferenz dorthin zu gehen und den Maßstab selbst zu bestimmen, die Karte manuell zu korrigieren und über die optimalen Punkte für die Platzierung der Beacons nachzudenken. Aber in diesem Moment haben wir uns entschlossen, die erforderliche Anzahl von Beacons ungefähr zu berechnen und einige von oben „in Reserve“ zu werfen.

    Eine weitere große Schwierigkeit war das Aufstellen der Baken. Tatsache ist, dass es für die von uns ausgewählten Geräte eine iOS-Anwendung gab, mit der Sie alle verfügbaren Beacons anzeigen und jede Option festlegen konnten, indem Sie sie manuell über die Bildschirmtastatur in Form von Hexadezimalwerten eingeben. Zur Kategorisierung von zweihundert Beacons passte dies kategorisch nicht. In diesem Zusammenhang hat einer unserer Entwickler ein Tool entwickelt, mit dem Sie die gesamte Liste der sichtbaren Beacons abrufen, die erforderlichen Einstellungen festlegen und sich entspannen können. Sie können beobachten, wie die Beacons diese Einstellungen empfangen, und mit einer blauen Diode blinken. Es war März und alles verlief nach Plan.

    Die Vorbereitung der mobilsten Anwendung und des mobilsten Webinterfaces für die Verwaltung der Navigation auf dem RIF verlief bis zum letzten Moment einwandfrei.

    Teil 2. RIF + CIB

    Nach unserer Ankunft in Moskau, zwei Tage vor der Veranstaltung, entwickelten sich die Ereignisse rasant und enthüllten alle paar Stunden neue unvorhergesehene Umstände.

    Umstände 1

    Es stellte sich heraus, dass das Sammeln von Baken aus Teilen schwierig ist, und wenn es 200 davon gibt, ist es noch schwieriger. Die Karosserieteile passen nicht gut zusammen, die Form der Leiterplatten entspricht nicht ganz der Abdeckung, in die sie eingesetzt werden müssen.



    Im Allgemeinen sahen wir ein paar Stunden lang aus wie unerfahrene Angestellte einer unterirdischen chinesischen Fabrik. Aber die Sache war erledigt: Die Batterien wurden eingelegt, die Leiterplatten fest in die Gehäuse gesteckt, die Vorder- und Rückseite so weit wie möglich miteinander verbunden. Sieg

    Umstände 2

    Entgegen unseren Erwartungen hat sich herausgestellt, dass das Programm zur Stapelkonfiguration eines Beacon-Heaps nur bei einer Heap-Größe von <= 10 Stk. Stabil funktioniert. Aber wir wollten nicht aufgeben.

    Alles, was benötigt wurde, war eine Möglichkeit zu finden, das Signal der zusätzlichen 190 Beacons beim Einrichten der nächsten Charge zu beseitigen: Alles lief schief, wenn das Programm mehr Bicones als erforderlich feststellte.

    Denken Sie daran, dass die Reichweite der Beacons nicht so groß ist. Wir haben die Tasche einfach mit ins Nebenzimmer genommen und waren schockiert darüber, dass die aktuelle Charge viel besser funktioniert als vor einem Monat. Das Signal blieb überall in der Wohnung hervorragend.

    Ich wollte die Batterien nicht ausbauen: Es wurde zu viel unersetzlicher Aufwand in die Baugruppe gesteckt. Eine absolut zuverlässige Methode zur Abschirmung wurde experimentell abgeleitet: Ein Beutel mit Baken wurde in einen dickwandigen Kessel gegeben und mit einem Deckel verschlossen, und der Kessel wurde auf den Boden einer gusseisernen Badewanne gestellt.

    Nachdem wir die ganze Nacht mit vielen Baken ins Badezimmer und zurück gelaufen waren, waren wir um 5 Uhr morgens mit der Einrichtung fertig.



    Umfang 3, der Höhepunkt

    Trotz kleiner technischer Schwierigkeiten war die Installation von Leuchtfeuern auf dem Gebiet der zukünftigen Ausstellung sehr gut gelaunt. Wir haben sie nach einem vorbereiteten Plan arrangiert und mussten uns praktisch nicht davon entfernen.

    Nachdem wir ungefähr 100 Stück installiert hatten, entschieden wir uns, die Navigation zu überprüfen. Während ein Mann mit einer Tüte Leuchtfeuer ein paar Zehntel Meter vom Rumpf zurücklief (wir hatten keinen Kessel und keine Badewanne als Abschirmung), musste ein anderer mit dem Telefon durch den Rumpf gehen und der Navigation in der Anwendung folgen.

    Das Ergebnis war erschreckend. Die Anwendung zeigte, dass der Benutzer ständig irgendwo im nördlichen Teil des Gebäudes die Zeit markiert. Dies entsprach einem Fehler von 5-10 Metern und war nicht akzeptabel.

    Noch ein paar Experimente - das gleiche Ergebnis.

    Eine solche Panik erlebt ein Student, der ein unbekanntes Ticket für eine wichtige Prüfung gezogen hat. So fühlen sie sich angesichts eines fast bevorstehenden Scheiterns. Wir ließen uns in einem leeren Raum nieder und begannen zu überlegen. Einer der Entwickler ( grohman ) drehte sich im Raum um und warf gelegentlich einen Blick auf die Anwendung, bis er eine einfache Sache bemerkte, die uns aus irgendeinem Grund nicht sofort einfiel. Die Koordinaten des Ortes wurden korrekt berechnet, aber die Karte selbst wurde südlich der realen Koordinaten verschoben, was zu einer solchen Verzerrung bei der Anzeige des Ortes führte.

    Mit der Methode des guten alten Auges haben wir eine Korrektur für alle an die Anwendung übertragenen Koordinaten ausgewählt. Alles passte zusammen.

    Umstände 4

    Bald wurden wir durch einen anderen Teil des Teams ( itruf , suprum ) ersetzt. Nachdem sie uns zur Ruhe geschickt hatten, wollten sie die restlichen Leuchtfeuer platzieren und schließlich alles testen. Nach anderthalb Stunden riefen sie mit schlechten Nachrichten an: Der Standort funktioniert nicht mehr, und diesmal treten die Verzerrungen plötzlich auf und verschwinden, der Fehler liegt bei mehreren zehn Metern. Wir waren fast zwei Tage auf den Beinen und schauten fassungslos auf den Monitor.

    Beim Parsen von Tonnen von Protokollen war es möglich, eine erstaunliche Sache zu finden: Aus der Liste der auf dem Gerät sichtbaren Beacons ging von Zeit zu Zeit das Beacon # 68 hervor, das an dieser Stelle nicht sichtbar sein sollte. Bald schlich sich der richtige Verdacht ein und wir baten die Jungs, zu dem Ort zu gehen, an dem das Leuchtfeuer installiert werden sollte, um zu sehen, was damit passiert war. Natürlich war er nicht an Ort und Stelle.

    Jemand löste # 68 von der Wand und steckte es von Zeit zu Zeit in die Tasche, um eine Art „Präsenz-Effekt“ für das System zu erzeugen.



    Nachdem wir die Datenverarbeitung von diesem Beacon getrennt hatten, erhielten wir wieder anständige Daten über den Standort, standen jedoch vor der Frage, wie wir mit solchen Situationen beim nächsten Mal schnell umgehen können.

    Die folgende Lösung wurde eingeführt: Jedes Beacon hat "Nachbarn" - andere Beacons in einem Abstand von <= N. Wenn der Benutzer uns Daten über sichtbare Beacons und Signalpegel (rssi) sendet, wählen wir die Beacons mit dem höchsten rssi aus und überprüfen, ob die verbleibenden Beacons ihre Nachbarn sind. Wenn wir hier ein Leuchtfeuer finden, das offensichtlich kein Nachbar sein sollte, schließen wir es von der Standortberechnung aus. Die Location hat wieder gut funktioniert.

    Zusammenfassung

    Dann gab es ein paar dringende Fehlerbehebungen, drei Konferenztage, viele interessante Leute und Ereignisse. Trotz aller Leidenschaften in den letzten Tagen der Vorbereitung konnten wir mit Hilfe von BLE-Beacons die Indoor-Navigation starten, wir haben (ja, wir haben uns vergewissert) gezeigt, dass es funktioniert. Für uns selbst konnten wir mehrere Schlussfolgerungen ziehen:

    • Tests im Miniaturformat ersetzen niemals Tests im Kampf. Das Überprüfen der Navigation auf mehreren Baken, auch in einem geräumigen Raum, reicht nicht aus, um sicherzustellen, dass die Navigation mit zweihundert Baken pro 1000 m² funktioniert.
    • Zeit und Energie bei der Planung zu sparen, ist eine sehr schlechte Sparmöglichkeit. Wenn wir von Anfang an mehr auf Kartengenauigkeit geachtet hätten, müssten wir die Koordinaten in der letzten Nacht nicht manuell anpassen.
    • Baken auf doppelseitigem Klebeband befestigen - nicht zuverlässig genug
    • Mehrere schlaflose Nächte - keine so hohe Gebühr für die Möglichkeit, das erste so groß angelegte Navigationsprojekt des Landes für BLE-Baken durchzuführen. Wir haben eine interessante und ungewöhnliche Erfahrung gemacht und hoffen, dass wir bald über neue Projekte für die Umsetzung der Indoor-Navigation sprechen werden und nicht nur.


    In den Kommentaren beantworten wir gerne Fragen zu Implementierungsdetails.

    Jetzt auch beliebt: