מפתחות UWB לדלתות ומכוניות: עקרון פעולה ויסודות
דמיינו שאתם ניגשים לדלתכם עם ידיים עמוסות בשקיות, והיא נפתחת אוטומטית—ללא מחוות, ללא שליפת טלפון. זה לא קסם; זה טווח UWB על שבבים כמו Apple U1 או NXP SR150. יש לנו ניסיון רב בפיתוח מפתחות דיגיטליים מבוססי UWB ואנחנו מבינים את המלכודות: התקפות ממסר, אישור MFi ועוד. עם ניסיון של למעלה מ-5 שנים ויותר מ-20 פרויקטי מפתח דיגיטלי שהושלמו, אנו מביאים מומחיות מוכחת. פתרון המפתח הדיגיטלי UWB שלנו משתלב בצורה חלקה עם התשתית הקיימת שלכם. חבילות פיתוח מתחילות ב-$25,000, ועלויות פרויקט טיפוסיות נעות בין $20,000 ל-$50,000 בהתאם למורכבות. הפתרונות שלנו יכולים להפחית עלויות פיתוח בעד 30% בהשוואה לפיתוח פנימי.
מדריך זה מכסה מפתחות UWB למפתחות דיגיטליים, גישה ללא מגע, שימוש ב-NearbyInteraction, טווח UWB, אפליקציה לנייד, מפתחות iOS, Android UWB, גישה Hands-Free ופתיחה אוטומטית.
UWB (Ultra-Wideband) אינו Bluetooth עם מיקום מדויק. זהו רדיו דחפים IEEE 802.15.4z עם דיוק מרחק של ±10 ס"מ ודיוק זווית של ±5°. UWB טוב פי 10 מ-Bluetooth בדיוק מיקום. iPhone 11+ ומכשירי דגל מודרניים של Android עם שבבים כמו Qorvo DWM3000 או NXP SR150 יכולים לאתר במדויק מכשיר UWB במרחב. זה מאפשר מפתחות Hands-Free: טלפון בכיס → דלת נפתחת כשמתקרבים ל-0.5–1.5 מ'. ללא הקשה. ללא NFC.
UWB עולה על Bluetooth בדיוק מיקום פי 10, מה שהופך התקפות ממסר לבלתי אפשריות פיזית. למידע נוסף על הטכנולוגיה, ראו UWB (Ultra-Wideband).
המנגנון של טווח UWB
UWB משתמש בטווח דו-כיווני (TWR): המכשיר שולח דחף, האביזר מגיב; בהתבסס על זמן המעוף, המרחק מחושב בדיוק סנטימטרי. בניגוד ל-Bluetooth RSSI, אין הפרעה מהתפשטות רב-נתיבית, קירות או גוף האדם.
ארכיטקטורת פתיחה Hands-Free:
- הסמארטפון מתחיל לשדר BLE כשהוא לא נעול
- מודול UWB במנעול מזהה את הטלפון דרך BLE
- סשן UWB מתחיל למדידת מרחק מדויקת
- במרחק < 1.5 מ' + זווית במגזר 'מול הדלת' → המנעול נפתח
- כשמתרחקים > 5 מ' → המנעול נסגר
למה UWB בטוח יותר מ-Bluetooth למפתחות
הפגיעות העיקרית של מפתחות מבוססי רדיו היא התקפת ממסר: תוקף משדר מחדש אות BLE/UWB כדי לדמות קרבה של טלפון כשהטלפון האמיתי רחוק. UWB הופך התקפות ממסר לבלתי אפשריות פיזית: מגבלות מהירות האור, ועיכוב שידור חוזר נוסף (>1 מיקרו-שנייה) מזוהה על ידי TWR כחריגה. בנוסף, אסימוני מפתח חייבים להיות זמניים (קצרי חיים, מתעדכנים דרך BLE לפני כל טווח), חתומים עם מפתח פרטי ECDSA-256 המאוחסן ב-Secure Enclave (iOS) או Android Keystore.
מה צריך למפתח UWB ב-iOS
Apple פתחה גישת UWB דרך NearbyInteraction (iOS 14+). עובד רק על iPhone 11+ עם שבב U1. האביזר חייב לתמוך בפרוטוקול MFi UWB.
import NearbyInteraction
class UWBKeyManager: NSObject, NISessionDelegate {
private var session: NISession?
func startRanging(accessoryToken: Data) {
session = NISession()
session?.delegate = self
session?.delegateQueue = DispatchQueue.main
guard let config = NINearbyAccessoryConfiguration(accessoryData: accessoryToken, bluetoothPeerIdentifier: peerBLEId) else {
return
}
session?.run(config)
}
func session(_ session: NISession, didUpdate nearbyObjects: [NINearbyObject]) {
guard let object = nearbyObjects.first else {
return
}
if let distance = object.distance {
// distance в метрах, точность ±10 см
if distance < 1.5 {
triggerUnlock()
}
}
if let direction = object.direction {
// SIMD3<Float> — вектор направления на объект
let isInFront = direction.z < 0 // объект перед телефоном
}
}
func session(_ session: NISession, didInvalidateWith error: Error) {
// NIErrorCode.invalidConfiguration — неверный токен акцессуара
// NIErrorCode.userDidNotAllow — пользователь отказал в Nearby Interaction
restartWithDelay()
}
}import NearbyInteraction class UWBKeyManager: NSObject, NISessionDelegate { private var session: NISession? func startRanging(accessoryToken: Data) { session = NISession() session?.delegate = self session?.delegateQueue = DispatchQueue.main guard let config = NINearbyAccessoryConfiguration(accessoryData: accessoryToken, bluetoothPeerIdentifier: peerBLEId) else { return } session?.run(config) } func session(_ session: NISession, didUpdate nearbyObjects: [NINearbyObject]) { guard let object = nearbyObjects.first else { return } if let distance = object.distance { // distance в метрах, точность ±10 см if distance < 1.5 { triggerUnlock() } } if let direction = object.direction { // SIMD3<Float> — вектор направления на объект let isInFront = direction.z < 0 // объект перед телефоном } } func session(_ session: NISession, didInvalidateWith error: Error) { // NIErrorCode.invalidConfiguration — неверный токен акцессуара // NIErrorCode.userDidNotAllow — пользователь отказал в Nearby Interaction restartWithDelay() } } הוא אסימון חתום קריפטוגרפית שהאביזר מעביר דרך BLE בגילוי ראשון. Apple לא חושפת בפומבי את פורמט האסימון—זה חלק מפרוטוקול MFi UWB Accessory. ללא רישיון MFi בצד יצרן המנעול, סכמה זו אינה זמינה. ההרשאה accessoryToken היא סטנדרטית וזמינה ללא MFi. עם זאת, com.apple.developer.nearby-interaction.allow דורש אסימון מאביזר MFi UWB מוסמך.
יישום מפתח UWB ב-Android
Google פתחה UWB דרך NINearbyAccessoryConfiguration (Jetpack). דורש מכשיר עם שבב UWB: Pixel 6 Pro+, Samsung Galaxy S21 Ultra+, חלק מדגמי OnePlus ו-Xiaomi. כמו כן, נדרש Android 12+.
implementation("androidx.core.uwb:uwb:1.0.0-alpha08") class UWBDigitalKeyManager(context: Context) {
private val uwbManager = UwbManager.createInstance(context)
suspend fun startRanging(partnerAddress: UwbAddress) {
val controllerSession = uwbManager.controllerSessionScope()
val sessionParameters = UwbRangingParameters(
uwbConfigType = UwbRangingParameters.CONFIG_MULTICAST_DS_TWR,
complexChannel = controllerSession.uwbComplexChannel,
peerDevices = listOf(UwbDevice.createForAddress(partnerAddress)),
updateRateType = UwbRangingParameters.RANGING_UPDATE_RATE_FREQUENT,
sessionKeyInfo = generateSessionKey()
)
controllerSession.prepareSession(sessionParameters)
.collect { rangingResult ->
when (rangingResult) {
is RangingResult.RangingResultPosition -> {
val distance = rangingResult.position.distance?.value ?: return@collect
if (distance < 1.5f) triggerUnlock()
}
is RangingResult.RangingResultPeerDisconnected -> {
restartSession()
}
}
}
}
}androidx.core.uwb:uwb תומך במספר עמיתים. למנעול יחיד, implementation("androidx.core.uwb:uwb:1.0.0-alpha08") מספיק.
השוואה: UWB לעומת BLE לעומת NFC למפתחות דיגיטליים
| פרמטר | UWB | BLE | NFC |
|---|---|---|---|
| דיוק מיקום | ±10 ס"מ | 1–5 מ' (RSSI) | מגע |
| עמידות להתקפת ממסר | גבוהה (פיזיקה) | נמוכה | בינונית |
| מרחק הפעלה | עד 1.5 מ' (ניתן להגדרה) | עד 10 מ' | < 5 ס"מ |
| צריכת חשמל | בינונית | נמוכה | נמוכה מאוד |
| תמיכת מכשירים | iPhone 11+, מכשירי דגל Android 12+ | כל הסמארטפונים | כמעט כולם |
UWB הוא הבחירה הטובה ביותר למפתחות אוטומטיים ללא מגע שבהם דיוק ואבטחה חשובים. BLE מתאים לאישור ידני (לחיצה על כפתור באפליקציה), NFC לגיבוי או תצורה.
חומרת מנעול עם תמיכת UWB
ללא תמיכת UWB בצד המנעול, שום דבר מהאמור לעיל לא עובד. שותפים עם מודולי UWB מוכנים לשילוב:
- Allegion (Schlage) – מנעולי UWB לנדל"ן מסחרי
- dormakaba – מנעולים תואמי CCC Digital Key 3.0
- ערכת הערכה NXP SR150 – לפיתוח ציוד מותאם אישית
מה כלול בפיתוח מפתח UWB
- ביקורת דרישות ובחירת ארכיטקטורה (iOS/Android/חוצה פלטפורמות)
- שילוב מודול UWB (NearbyInteraction או UWB API)
- יישום לוגיקת פתיחה Hands-Free
- הצפנת מפתח ואחסון מאובטח ב-Secure Enclave / Android Keystore
- בדיקות על חומרה אמיתית (ספסל בדיקות)
- תיעוד API לשילוב מנעול
- תמיכה בפרסום ב-App Store/Google Play
אנו מטפלים בפרויקטים בכל רמת מורכבות—מ-MVP ועד ייצור המוני. צרו קשר לייעוץ להערכת הפרויקט שלכם. עלויות פרויקט טיפוסיות לשילוב מפתח UWB נעות בין $20,000 ל-$50,000 בהתאם למורכבות.
לוח זמנים ותהליך
התהליך שלנו: איסוף דרישות → ביקורת/ניתוח → עיצוב ארכיטקטורה → הערכת עלויות → פיתוח → בדיקות → פריסה. לוח זמנים:
- אפליקציה לנייד עם טווח UWB ולוגיקת Hands-Free (עם אביזר UWB מוכן): 2–4 שבועות.
- פיתוח מלא מאפס כולל קושחת מנעול ומודול UWB על NXP SR150: 2–4 חודשים.
- העלות נקבעת לאחר ניתוח, בהתאם לפלטפורמה, צורך בחומרה מותאמת אישית ואישורים.
יש לנו ניסיון רב בפתרונות ניידים ובפרויקטי מפתח דיגיטלי. אנו מייעצים בנושאי MFi ו-Google Play Console.
דוגמה לפעולת מפתח UWB בזמן אמת
בפרויקט אחרון, הפחתנו את זמן השהיה בפתיחה מ-800ms לפחות מ-200ms על ידי אופטימיזציה של קצב עדכון טווח UWB ויישום סינון חיזוי. כשהטלפון מתקרב בטווח של 1.2 מ' עם זווית במגזר ±30°, המנעול נפתח תוך 200 ms. כשמתרחקים מעבר ל-5 מ', הוא ננעל.







