iBeacon — είναι ένα ιδιόκτητο πρωτόκολλο της Apple για beacons Bluetooth Low Energy που επιτρέπει σε συσκευές iOS να καθορίζουν τη θέση τους μέσα σε κτίρια με ακρίβεια εκατοστού. Η βάση του πρωτοκόλλου είναι η εκπομπή πακέτων BLE με ένα μοναδικό αναγνωριστικό που περιέχει UUID, Major και Minor. Σύμφωνα με το Apple iBeacon Design Guidelines (2025), η τεχνολογία χρησιμοποιείται σε πλοήγηση σε εμπορικά κέντρα, μουσεία, αεροδρόμια και στάδια, υποστηρίζοντας παθητική ανίχνευση χωρίς ενεργή σύζευξη συσκευών.
Βασικά σημεία
iBeacon — είναι μια τεχνολογία εντοπισμού εσωτερικών χώρων που αναπτύχθηκε από την Apple και παρουσιάστηκε στο WWDC 2013. Σε αντίθεση με το GPS, που δεν λειτουργεί μέσα σε κτίρια, το iBeacon χρησιμοποιεί beacons Bluetooth Low Energy — μικρές συσκευές που τροφοδοτούνται από μπαταρία και εκπέμπουν σταθερά πακέτα αναγνώρισης. Συσκευές iOS και Android λαμβάνουν αυτά τα πακέτα και υπολογίζουν την κατά προσέγγιση απόσταση μέχρι το beacon βάσει του επιπέδου σήματος (RSSI).
Το πρωτόκολλο iBeacon έγινε το πρώτο μαζικό πρότυπο BLE beacon, που εξαπολύθηκε από την Apple το 2013 στο iOS 7. Αρχικά η τεχνολογία χρησιμοποιήθηκε στο λιανικό εμπόριο: τα καταστήματα Apple Store εφάρμοσαν το iBeacon για να ενημερώνουν τους πελάτες για εκπτώσεις κατά την είσοδο σε συγκεκριμένες ζώνες. Μέχρι το 2025, η υποδομή iBeacon αριθμεί εκατομμύρια εγκατεστημένα beacon σε όλο τον κόσμο, αν και εμφανίστηκαν εναλλακτικά πρωτόκολλα — το Eddystone από τη Google και το AltBeacon με ανοικτό κώδικα.
Το iBeacon χρησιμοποιείται σε πέντε κύρια σενάρια: πλοήγηση εσωτερικών χώρων (εμπορικά κέντρα, αεροδρόμια, μουσεία), ειδοποιήσεις περιεχομένου (εκπτώσεις κατά την είσοδο σε κατάστημα), αυτοματοποίηση εργασιακών διαδικασιών (σήμανση παρουσίας), εφοδιασμός και διαχείριση αποθήκης, καθώς και τουριστικοί οδηγοί με αυτόματη αναπαραγωγή περιεχομένου κατά την προσέγγιση σε αντικείμενο. Σύμφωνα με την ABI Research (2025), η αγορά BLE beacon υπολογίζεται σε 3,2 δισεκατομμύρια συσκευές σε λειτουργία.
Το πακέτο iBeacon — είναι ένα Advertising PDU (Protocol Data Unit), που μεταδίδεται στο διαφημιστικό κανάλι BLE σε συχνότητες 2402, 2426 και 2480 MHz. Η μορφή πακέτου είναι αυστηρά καθορισμένη και αποτελείται από τέσσερα πεδία: πρόθεμα Apple iBeacon (0x4C000215), UUID 16 byte, τιμές Major 2 byte και Minor 2 byte, καθώς και TX Power 1 byte για βαθμονόμηση απόστασης. Το συνολικό μέγεθος δεδομένων είναι 30 byte, που χωράει σε ένα BLE Advertising PDU.
| Πεδίο | Μέγεθος | Περιγραφή |
|---|---|---|
| Πρόθεμα Apple | 9 byte | Company ID (0x004C) + iBeacon type (0x0215) |
| UUID | 16 byte | Μοναδικό αναγνωριστικό οργανισμού ή εφαρμογής |
| Major | 2 byte | Αναγνωριστικό ζώνης (0-65535), π.χ. αριθμός καταστήματος |
| Minor | 2 byte | Αναγνωριστικό σημείου (0-65535), π.χ. αριθμός ραφιού |
| TX Power | 1 byte | Βαθμονομημένη ισχύς σήματος σε απόσταση 1 μέτρου (dBm) |
Οι αναγνωριστές iBeacon σχηματίζουν μια τριεπίπεδη ιεραρχία. Το UUID εκχωρείται σε έναν οργανισμό (π.χ. αλυσίδα καταστημάτων), το Major — σε ένα συγκεκριμένο κατάστημα ή όροφο, το Minor — σε ένα συγκεκριμένο σημείο μέσα στη ζώνη (ταμείο, τμήμα προϊόντων). Αυτή η ιεραρχία επιτρέπει στην εφαρμογή να αντιδρά ευέλικτα σε διαφορετικά επίπεδα περιεχομένου: κατά την είσοδο σε ένα κατάστημα (UUID + Major) η εφαρμογή μπορεί να φορτώσει τον χάρτη ορόφου, και κατά την προσέγγιση σε ένα συγκεκριμένο τμήμα (Minor) να εμφανίσει πληροφορίες προϊόντος.
Το πεδίο TX Power — είναι η τιμή αναφοράς του επιπέδου σήματος (RSSI) σε απόσταση 1 μέτρου από το beacon. Μετά τη λήψη του πακέτου, η συσκευή καταγράφει το πραγματικό RSSI και υπολογίζει την απόσταση σύμφωνα με τον τύπο: distance = 10^((TX_Power - RSSI) / (10 * n)), όπου n — ο συντελεστής εξασθένησης περιβάλλοντος (συνήθως 2-4). Η σωστή βαθμονόμηση του TX Power είναι κρίσιμη για την ακρίβεια τοποθέτησης: ένα σφάλμα 1 dBm δίνει απόκλιση έως 30% σε απόσταση 5 μέτρων.
Το iOS καθορίζει τρεις ζώνες εγγύτητας βάσει της υπολογισμένης απόστασης από το beacon: Immediate (λιγότερο από 0,5 μέτρα), Near (από 0,5 έως 3 μέτρα) και Far (από 3 έως 30-50 μέτρα ανάλογα με τις συνθήκες). Η ακριβής απόσταση δεν αναφέρεται — μόνο η κατηγορία. Αυτό γίνεται σκόπιμα: το RSSI υπόκειται σε παρεμβολές, ανακλάσεις σήματος και στην επίδραση του ανθρώπινου σώματος, επομένως οι κατηγορίες παρέχουν πιο σταθερό καθορισμό θέσης.
Immediate — η ζώνη άμεσης επαφής, όταν η συσκευή βρίσκεται λίγα εκατοστά από το beacon. Χρησιμοποιείται για σενάρια που απαιτούν μέγιστη ακρίβεια: πληρωμή μέσω τερματικού, άνοιγμα ψηφιακής κλειδαριάς, επαλήθευση σε σημείο ελέγχου. Στη ζώνη Immediate, το RSSI είναι συνήθως από -30 έως -60 dBm.
Η ζώνη Near — η κύρια ζώνη εργασίας του iBeacon, που καλύπτει απόσταση από 0,5 έως 3 μέτρα. Χρησιμοποιείται για πλοήγηση εσωτερικών χώρων — για παράδειγμα, κατά την προσέγγιση σε μια βιτρίνα με προϊόντα, η εφαρμογή εμφανίζει λεπτομερείς πληροφορίες. Στη ζώνη Near, το RSSI κυμαίνεται από -60 έως -80 dBm με βαθμονόμηση TX Power = -59 dBm.
Far — η μέγιστη ζώνη ανίχνευσης σήματος beacon. Χρησιμοποιείται για παρακολούθηση εισόδου στην περιοχή (για παράδειγμα, είσοδος σε εμπορικό κέντρο). Σε απόσταση Far, το RSSI είναι συνήθως ασθενέστερο από -80 dBm, και η ακρίβεια καθορισμού απόστασης μειώνεται σημαντικά. Για παρακολούθηση εισόδου χρησιμοποιούνται system API region monitoring, όχι καθορισμός ακριβούς ζώνης.
Περιοχή iBeacon — είναι μια εικονική περιοχή που καθορίζεται από UUID (και προαιρετικά Major + Minor). Το iOS επιτρέπει παρακολούθηση έως 20 περιοχών ταυτόχρονα με CLLocationManager. Κατά την είσοδο σε μια περιοχή, το σύστημα αφυπνίζει την εφαρμογή ακόμη και στο παρασκήνιο ή σε απενεργοποιημένη κατάσταση και στέλνει ειδοποίηση μέσω του delegate locationManager:didEnterRegion. Κατά την έξοδο από την περιοχή, καλείται το locationManager:didExitRegion.
import CoreLocation
let locationManager = CLLocationManager()
let region = CLBeaconRegion(
uuid: UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")!,
identifier: "myBeaconRegion"
)
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.startMonitoring(for: region)
Για τον καθορισμό ζώνης (Immediate, Near, Far) χρησιμοποιείται ranging — σάρωση beacon σε πραγματικό χρόνο. Σε αντίθεση με την παρακολούθηση, το ranging λειτουργεί μόνο στην ενεργή λειτουργία της εφαρμογής και απαιτεί άδεια πρόσβασης στην τοποθεσία. Η μέθοδος locationManager:didRangeBeacons:inRegion επιστρέφει μια συστοιχία CLBeacon με πεδία proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (βαθμονομημένη απόσταση σε μέτρα) και rssi.
func locationManager(
_ manager: CLLocationManager,
didRangeBeacons beacons: [CLBeacon],
in region: CLBeaconRegion
) {
for beacon in beacons {
switch beacon.proximity {
case .immediate:
print("Άμεση εγγύτητα")
case .near:
print("Κοντινή εγγύτητα")
case .far:
print("Μακρινή εγγύτητα")
default:
print("Άγνωστη εγγύτητα")
}
}
}
Το Android δεν έχει ενσωματωμένη υποστήριξη για iBeacon, καθώς το πρωτόκολλο είναι μια ιδιόκτητη λύση της Apple. Ωστόσο, με βιβλιοθήκες τρίτων, όπως το AltBeacon από τη Radius Networks (τώρα μέρος του οργανισμού Open Beacon), οι προγραμματιστές μπορούν να ενσωματώσουν το iBeacon σε εφαρμογές Android. Η βιβλιοθήκη AltBeacon υλοποιεί σάρωση πακέτων BLE, ανάλυση μορφής iBeacon και εξομοίωση ranging και παρακολούθησης περιοχών, ανάλογη με το API iOS.
val beaconManager = BeaconManager.getInstanceForApplication(context)
beaconManager.beaconParsers.add(
BeaconParser().setBeaconLayout(
"m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"
)
)
beaconManager.backgroundBetweenScanPeriod = 5000
beaconManager.foregroundScanPeriod = 1100
beaconManager.bind(this)
Η μορφή ανάλυσης iBeacon στη βιβλιοθήκη AltBeacon καθορίζεται από τη συμβολοσειρά layout: „m:2-3=0215” — έλεγχος δύο byte του δείκτη iBeacon, „i:4-19” — UUID 16 byte, „i:20-21” — Major, „i:22-23” — Minor, „p:24-24” — TX Power. Η ίδια μορφή υποστηρίζεται για Eddystone και άλλα πρωτόκολλα, καθιστώντας το AltBeacon μια καθολική βιβλιοθήκη για εργασία με BLE beacons σε Android.
Σε Android, η εργασία με iBeacon έχει τρεις βασικούς περιορισμούς: η σάρωση παρασκηνίου περιορίζεται από κατασκευαστές (Xiaomi, Huawei, Samsung συχνά σκοτώνουν διεργασίες παρασκηνίου), η ακρίβεια RSSI είναι χαμηλότερη από iOS λόγω διαφορών σε στοίβες BLE, και για σάρωση απαιτείται άδεια ACCESS_FINE_LOCATION από Android 6.0 και BLUETOOTH_SCAN από Android 12.
Eddystone — ανοικτό πρωτόκολλο BLE beacon από τη Google, που παρουσιάστηκε το 2015. Σε αντίθεση με το iBeacon, το Eddystone υποστηρίζει τέσσερις τύπους πακέτων: Eddystone-UID (σταθερό αναγνωριστικό), Eddystone-URL (μετάδοση URL για Physical Web), Eddystone-TLM (τηλεμετρία beacon — επίπεδο μπαταρίας, θερμοκρασία) και Eddystone-EID (κρυπτογραφημένο αναγνωριστικό για προστασία από κλωνοποίηση). Παρόλο που η Google σταμάτησε την ανάπτυξη του Physical Web το 2022, το πρωτόκολλο Eddystone συνεχίζει να χρησιμοποιείται σε εταιρικές λύσεις.
| Παράμετρος | iBeacon | Eddystone |
|---|---|---|
| Ιδιοκτήτης | Apple | Google (ανοικτό) |
| Τύποι πακέτων | 1 (UID) | 4 (UID, URL, TLM, EID) |
| Δεδομένα | UUID+Major+Minor | ID/URL + τηλεμετρία |
| Εγγενής υποστήριξη iOS | Ναι (CoreLocation) | Όχι (μέσω CoreBluetooth) |
| Physical Web | Όχι | Ναι (Eddystone-URL) |
| Ασφάλεια | Χωρίς κρυπτογράφηση | EID με περιστροφή κλειδιών |
Η επιλογή μεταξύ iBeacon και Eddystone εξαρτάται από την πλατφόρμα στόχο και το σενάριο χρήσης. Το iBeacon είναι προτιμότερο για εφαρμογές iOS χάρη στην εγγενή ενσωμάτωση με CoreLocation και παρακολούθηση περιοχών στο παρασκήνιο. Το Eddystone είναι καταλληλότερο για έργα προσανατολισμένα σε Android και σενάρια Physical Web, όπου το beacon μεταδίδει URL χωρίς εγκατάσταση εφαρμογής. Για έργα μεταξύ πλατφορμών, χρησιμοποιείται συχνά το AltBeacon που υποστηρίζει και τα δύο πρωτόκολλα.
Κατά την υλοποίηση iBeacon, οι προγραμματιστές αντιμετωπίζουν μια σειρά περιορισμών που πρέπει να ληφθούν υπόψη στο στάδιο σχεδιασμού της αρχιτεκτονικής. Η μη σωστή λήψη υπόψη αυτών των παραγόντων οδηγεί σε ασταθή λειτουργία πλοήγησης, ψευδείς ενεργοποιήσεις και ταχύτερη από την αναμενόμενη αποφόρτιση μπαταρίας beacon.
Το επίπεδο σήματος RSSI υπόκειται σε σημαντικές διακυμάνσεις λόγω ανακλάσεων από τοίχους, μεταλλικών κατασκευών, παρουσίας ανθρώπων και άλλων ασύρματων συσκευών στη ζώνη 2,4 GHz. Σε εσωτερικό χώρο, η διασπορά RSSI για ένα beacon μπορεί να φτάσει 10-15 dBm ανά λεπτό, καθιστώντας τον υπολογισμό απόστασης ανακριβή χωρίς χρήση φίλτρων (εξομάλυνση κινητού μέσου όρου, φιλτράρισμα Kalman).
Το iOS υποστηρίζει παρακολούθηση όχι περισσότερων από 20 περιοχών ταυτόχρονα ανά εφαρμογή. Για έργα που απαιτούν κάλυψη μεγάλης περιοχής (αεροδρόμιο, στάδιο), αυτό δεν είναι αρκετό. Λύση — δυναμική εναλλαγή περιοχών: κατά την είσοδο σε μια περιοχή, οι γειτονικές ενεργοποιούνται και οι απομακρυσμένες απενεργοποιούνται.
Η καθυστέρηση μεταξύ εισόδου σε μια περιοχή και λήψης ειδοποίησης μπορεί να είναι από 1 έως 30 δευτερόλεπτα ανάλογα με τις συνθήκες. Το iOS σαρώνει beacons περιοδικά για εξοικονόμηση μπαταρίας, επομένως δεν πρέπει να αναμένεται άμεση αντίδραση. Για χρονικά κρίσιμα σενάρια (άνοιγμα πόρτας κατά την προσέγγιση), συνιστάται η χρήση Immediate ranging, αλλά αυτό λειτουργεί μόνο στην ενεργή λειτουργία της εφαρμογής.
Συχνές Ερωτήσεις
iBeacon — είναι το πρωτόκολλο της Apple για beacons Bluetooth Low Energy που επιτρέπει σε συσκευές iOS και Android να καθορίζουν τη θέση τους μέσα σε κτίρια με ακρίβεια εκατοστού βάσει ανάλυσης του επιπέδου σήματος (RSSI) των λαμβανόμενων πακέτων BLE.
Bluetooth — είναι ένα γενικό πρωτόκολλο ασύρματης επικοινωνίας για μεταφορά δεδομένων μεταξύ συσκευών που απαιτεί σύζευξη. iBeacon — ένα εξειδικευμένο πρωτόκολλο πάνω από BLE, που προορίζεται αποκλειστικά για εκπομπή αναγνωριστικών χωρίς εγκατάσταση σύνδεσης. Τα iBeacon beacons δεν μεταδίδουν δεδομένα — απλώς αναφέρουν την παρουσία τους.
iBeacon λειτουργεί σε λειτουργία Advertising — το beacon εκπέμπει συνεχώς πακέτα BLE με πληροφορίες ID. Η συσκευή λαμβάνει το πακέτο αλλά δεν συνδέεται στο beacon. Αυτό εξοικονομεί μπαταρία του beacon (έως 2-3 χρόνια λειτουργίας από μία CR2032) και επιτρέπει την παθητική ανίχνευση beacon χωρίς ενεργή σάρωση.
Όχι, το iBeacon δεν προορίζεται για εύρεση συσκευών. Τα iBeacon beacons είναι σταθεροί πομποί, και το iPhone λειτουργεί ως δέκτης. Το iPhone δεν εκπέμπει σήματα iBeacon (εκτός από τη λειτουργία Find My που χρησιμοποιεί άλλο πρωτόκολλο βασισμένο σε BLE). Για εύρεση τηλεφώνου χρησιμοποιούνται άλλες τεχνολογίες (δίκτυο Find My, UWB).
Η εμβέλεια του iBeacon εξαρτάται από τις ρυθμίσεις beacon και τις συνθήκες περιβάλλοντος. Τυπική εμβέλεια: Immediate — έως 0,5 m, Near — έως 3 m, Far — έως 30-50 m. Με beacon με ενισχυτή σήματος και σε ανοικτούς χώρους, η εμβέλεια μπορεί να φτάσει τα 70 m, αλλά η ακρίβεια καθορισμού απόστασης σε τέτοια απόσταση είναι ελάχιστη.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης