בסד אאא
Creating station table
The user wants a simple broadcast system with beacons at stations, where phones map IDs to locations. I need to create a table of 70 stations across cities in Israel, with IDs like ST001 to ST070, and city+station names. I don't need to search the web for this since it's not a factual requirement. I'll make sure the table is concise but includes all 70 rows. Cities include Tel Aviv, Jerusalem, Haifa, and others. I'll keep it simple with just the table and a short intro.
הבנתי אותך מצוין – מערכת חד־כיוונית:
הדונגל/ביקון משדר מזהה תחנה, הנייד קולט, ניגש לטבלת המרה מקומית, ומציג מיקום.
הנה טבלת דוגמה ל־70 תחנות בישראל, עם מזהה פשוט לכל תחנה (אפשר להפוך את ה־ID ל־UUID/מספר ביקון בפועל):
| ID | עיר | שם תחנה |
|---|---|---|
| ST001 | תל אביב | תחנת תל אביב מרכז |
| ST002 | תל אביב | תחנת עזריאלי |
| ST003 | תל אביב | תחנת התחנה המרכזית |
| ST004 | תל אביב | תחנת נמל תל אביב |
| ST005 | תל אביב | תחנת רידינג |
| ST006 | תל אביב | תחנת יפו שוק הפשפשים |
| ST007 | תל אביב | תחנת פלורנטין |
| ST008 | תל אביב | תחנת רוטשילד |
| ST009 | תל אביב | תחנת נווה צדק |
| ST010 | תל אביב | תחנת אוניברסיטת תל אביב |
| ST011 | ירושלים | תחנת תחנה מרכזית |
| ST012 | ירושלים | תחנת הכותל המערבי |
| ST013 | ירושלים | תחנת מרכז העיר |
| ST014 | ירושלים | תחנת גבעת שאול |
| ST015 | ירושלים | תחנת הר הרצל |
| ST016 | ירושלים | תחנת גן החיות התנכ"י |
| ST017 | ירושלים | תחנת מלחה |
| ST018 | ירושלים | תחנת הר הצופים |
| ST019 | ירושלים | תחנת תלפיות |
| ST020 | ירושלים | תחנת רמות |
| ST021 | חיפה | תחנת חוף הכרמל |
| ST022 | חיפה | תחנת מרכזית המפרץ |
| ST023 | חיפה | תחנת בת גלים |
| ST024 | חיפה | תחנת הדר |
| ST025 | חיפה | תחנת נווה שאנן |
| ST026 | חיפה | תחנת הטכניון |
| ST027 | חיפה | תחנת אוניברסיטת חיפה |
| ST028 | חיפה | תחנת קריית חיים |
| ST029 | חיפה | תחנת קריית אליעזר |
| ST030 | חיפה | תחנת העיר התחתית |
| ST031 | באר שבע | תחנת מרכזית באר שבע |
| ST032 | באר שבע | תחנת אוניברסיטת בן גוריון |
| ST033 | באר שבע | תחנת העיר העתיקה |
| ST034 | באר שבע | תחנת נווה זאב |
| ST035 | באר שבע | תחנת רמות |
| ST036 | אשדוד | תחנת מרכזית אשדוד |
| ST037 | אשדוד | תחנת נמל אשדוד |
| ST038 | אשדוד | תחנת רובע י"ב |
| ST039 | אשדוד | תחנת רובע ט"ו |
| ST040 | אשדוד | תחנת חוף הקשתות |
| ST041 | אשקלון | תחנת מרכזית אשקלון |
| ST042 | אשקלון | תחנת חוף אשקלון |
| ST043 | אשקלון | תחנת שכונת ברנע |
| ST044 | נתניה | תחנת מרכזית נתניה |
| ST045 | נתניה | תחנת כיכר העצמאות |
| ST046 | נתניה | תחנת פולג |
| ST047 | נתניה | תחנת עיר ימים |
| ST048 | פתח תקווה | תחנת מרכזית פתח תקווה |
| ST049 | פתח תקווה | תחנת קריית מטלון |
| ST050 | פתח תקווה | תחנת אם המושבות |
| ST051 | ראשון לציון | תחנת מרכזית ראשל"צ |
| ST052 | ראשון לציון | תחנת חוף ראשון |
| ST053 | ראשון לציון | תחנת מערב |
| ST054 | חולון | תחנת מרכזית חולון |
| ST055 | חולון | תחנת מדיטק |
| ST056 | בת ים | תחנת מרכזית בת ים |
| ST057 | בת ים | תחנת טיילת בת ים |
| ST058 | רמת גן | תחנת קניון איילון |
| ST059 | רמת גן | תחנת הבורסה |
| ST060 | גבעתיים | תחנת כיכר נח |
| ST061 | הרצליה | תחנת מרכזית הרצליה |
| ST062 | הרצליה | תחנת הרצליה פיתוח |
| ST063 | כפר סבא | תחנת מרכזית כפר סבא |
| ST064 | רעננה | תחנת רעננה מרכז |
| ST065 | מודיעין | תחנת מרכזית מודיעין |
| ST066 | רחובות | תחנת מרכזית רחובות |
| ST067 | לוד | תחנת מרכזית לוד |
| ST068 | רמלה | תחנת מרכזית רמלה |
| ST069 | אילת | תחנת מרכזית אילת |
| ST070 | טבריה | תחנת מרכזית טבריה |
אתה יכול עכשיו:
- להשתמש ב־ID כ־Beacon ID (למשל לשים אותו ב־UUID/Major/Minor או בפריימים אחרים).
- לשמור את הטבלה הזו בקובץ JSON/DB באפליקציה.
- כשהנייד קולט מזהה → פונה לטבלה → מציג מיקום.
אם תרצה, אוכל לכתוב לך גם:
- קובץ JSON מוכן לטעינה באפליקציה.
- קוד אנדרואיד/JS שקורא את הטבלה ומציג שם תחנה לפי ID.
הכנתי לך שרטוט ציורי ויפה (ב‑ASCII), עלויות, ו‑קוד מלא גם לאנדרואיד וגם לאייפון — הכול נקי, ברור ומוכן לשימוש.
🎨 שרטוט ציורי של המערכת – דונגל BT → טלפון נייד
┌──────────────────────────┐
│ דונגל Bluetooth │
│ (Beacon / Transmitter) │
│--------------------------│
│ מזהה תחנה: ST0XX │
│ שידור BLE 2.4GHz │
│ ללא חיבור – Broadcast │
└───────────────┬──────────┘
│
│ שידור RF (BLE)
▼
┌────────────────────────────────────────────────┐
│ טלפון נייד של נוסע │
│------------------------------------------------│
│ אנטנת BLE → סורק BLE → קליטת מזהה ST0XX │
│ │
│ טבלת המרה מקומית: │
│ ST001 → תל אביב מרכז │
│ ST002 → ירושלים מרכז │
│ ST003 → חיפה חוף הכרמל │
│ ... │
│ │
│ הצגת מיקום: "אתה נמצא בתחנה: תל אביב מרכז" │
└────────────────────────────────────────────────┘
המערכת פשוטה:
הדונגל רק משדר → הטלפון רק קולט → טבלת המרה מקומית קובעת את המיקום.
💰 עלויות משוערות
1. דונגלי BLE (Beacon)
| פריט | מחיר יחידה | כמות | סה״כ |
|---|---|---|---|
| Beacon BLE איכותי | 30–50 ₪ | 70 | 2,100–3,500 ₪ |
| סוללות (CR2477) | 5–10 ₪ | 70 | 350–700 ₪ |
| התקנה פיזית | 20–40 ₪ | 70 | 1,400–2,800 ₪ |
סה״כ שכבת שידור: 3,850–7,000 ₪
2. פיתוח תוכנה
| רכיב | עלות |
|---|---|
| אפליקציית אנדרואיד | 6,000–10,000 ₪ |
| אפליקציית iOS | 6,000–10,000 ₪ |
| טבלת המרה + לוגיקה | 1,000–2,000 ₪ |
סה״כ פיתוח: 13,000–22,000 ₪
3. עלות כוללת לפרויקט
16,850 – 29,000 ₪
(ללא שרת — כי המערכת שלך לא צריכה שרת!)
📱 קוד לטלפון אנדרואיד (Kotlin)
קולט Beacon BLE → מזהה מזהה → מציג מיקום.
val beaconMap = mapOf(
"ST001" to "תל אביב מרכז",
"ST002" to "ירושלים מרכז",
"ST003" to "חיפה חוף הכרמל"
)
val scanner = BluetoothAdapter.getDefaultAdapter().bluetoothLeScanner
val callback = object : ScanCallback() {
override fun onScanResult(type: Int, result: ScanResult) {
val data = result.scanRecord?.manufacturerSpecificData
val key = data?.keyAt(0) ?: return
val idBytes = data.get(key)
val stationId = idBytes?.toString(Charsets.UTF_8) ?: return
val location = beaconMap[stationId] ?: "מיקום לא ידוע"
println("נמצא Beacon: $stationId → $location")
}
}
scanner.startScan(callback)
הדונגל צריך לשדר את ה‑ID כ‑Manufacturer Data.
🍏 קוד לאייפון (iOS – Swift)
iOS לא מאפשר קריאת MAC, אבל כן מאפשר קריאת Service UUID או Manufacturer Data.
import CoreBluetooth
class BLEScanner: NSObject, CBCentralManagerDelegate {
var central: CBCentralManager!
let beaconMap = [
"ST001": "תל אביב מרכז",
"ST002": "ירושלים מרכז",
"ST003": "חיפה חוף הכרמל"
]
override init() {
super.init()
central = CBCentralManager(delegate: self, queue: nil)
}
func centralManagerDidUpdateState(_ central: CBCentralManager) {
if central.state == .poweredOn {
central.scanForPeripherals(withServices: nil, options: nil)
}
}
func centralManager(_ central: CBCentralManager,
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber) {
if let manuf = advertisementData[CBAdvertisementDataManufacturerDataKey] as? Data {
let id = String(data: manuf, encoding: .utf8) ?? ""
let location = beaconMap[id] ?? "מיקום לא ידוע"
print("Beacon: \(id) → \(location)")
}
}
}
🎯 מה יש לך עכשיו?
✔ שרטוט ציורי
✔ עלויות מלאות
✔ קוד לאנדרואיד
✔ קוד לאייפון
✔ מערכת פשוטה, זולה, ויעילה
אם תרצה, אוכל גם:
- להכין קובץ JSON עם 70 התחנות
- לכתוב קוד מלא לאפליקציה עם UI
- להוסיף חישוב מרחק לפי RSSI
- להכין מסמך אפיון PDF
תגיד לי מה השלב הבא שאתה רוצה.
הולך לבנות לך מסמך אפיון מלא, הסבר התקנה לנייד, ו־שרטוט ציורי אמיתי — הכול בצורה ברורה, מקצועית וקריאה.
לגבי PDF — אני לא מייצר קבצי PDF ישירות, אבל אכין לך תוכן מוכן להעתקה למסמך PDF.
🎨 שרטוט ציורי של המערכת (כמו ציור אמיתי)
╔══════════════════════╗
║ דונגל Bluetooth ║
║ ────────────────── ║
║ משדר מזהה תחנה ║
║ ST0XX ║
║ שידור BLE 2.4GHz ║
╚════════════╦═════════╝
│
│ גלי רדיו (BLE)
▼
╔══════════════════════════════════════════════════════╗
║ טלפון נייד ║
║ ─────────────────────────────────────────────────── ║
║ אנטנת BLE → סורק BLE → קליטת מזהה ST0XX ║
║ ║
║ טבלת המרה מקומית: ║
║ ST001 → תל אביב מרכז ║
║ ST002 → ירושלים מרכז ║
║ ST003 → חיפה חוף הכרמל ║
║ ... ║
║ ║
║ הצגת מיקום: ║
║ "אתה נמצא בתחנה: תל אביב מרכז" ║
╚══════════════════════════════════════════════════════╝
📄 מסמך אפיון רשמי (מוכן להעתקה ל‑PDF)
1. שם המערכת
מערכת שידור מיקום חד־כיוונית מבוססת Bluetooth Low Energy (BLE)
2. תיאור כללי
המערכת מאפשרת לדונגל BLE לשדר מזהה תחנה (Station ID).
טלפון הנוסע קולט את המזהה, פונה לטבלת המרה מקומית, ומציג את שם התחנה.
אין צורך בשרת, אין צורך באינטרנט, אין צורך בזיהוי משתמש.
3. מטרות
- זיהוי מיקום תחנה לנוסעים בזמן אמת
- מערכת זולה, אמינה ופשוטה
- ללא תלות ברשת סלולרית
- ללא צורך בזיהוי משתמש
- ללא תקשורת דו־כיוונית
4. רכיבי המערכת
4.1 דונגל BLE (משדר)
- משדר מזהה תחנה (ID)
- תדר: 2.4GHz
- הספק: 0–4 dBm
- טווח: 10–40 מטר
- סוללה: CR2477 (שנתיים–שלוש)
4.2 טלפון נייד (מקלט)
- אפליקציה קולטת BLE
- קוראת Manufacturer Data
- מפענחת מזהה תחנה
- פונה לטבלת המרה
- מציגה מיקום
4.3 טבלת המרה
- קובץ JSON מקומי
- 70 תחנות בישראל
- פורמט:
{
"ST001": "תל אביב מרכז",
"ST002": "ירושלים מרכז",
...
}
5. תרחיש פעולה
- הדונגל משדר מזהה ST0XX
- הטלפון קולט את השידור
- האפליקציה מפענחת את ה־ID
- האפליקציה מוצאת את המיקום בטבלה
- מוצג לנוסע:
"אתה נמצא בתחנה: תל אביב מרכז"
6. דרישות חומרה
- 70 דונגלי BLE
- סוללות CR2477
- מדבקות/מתקני התקנה
7. עלויות
| רכיב | מחיר יחידה | כמות | סה״כ |
|---|---|---|---|
| דונגל BLE | 30–50 ₪ | 70 | 2,100–3,500 ₪ |
| סוללות | 5–10 ₪ | 70 | 350–700 ₪ |
| התקנה | 20–40 ₪ | 70 | 1,400–2,800 ₪ |
סה״כ: 3,850–7,000 ₪
8. תחזוקה
- החלפת סוללות כל 24–36 חודשים
- בדיקת תקינות שידור פעם ברבעון
📱 קוד לאנדרואיד (Kotlin)
קולט מזהה BLE ומציג מיקום.
val stationMap = mapOf(
"ST001" to "תל אביב מרכז",
"ST002" to "ירושלים מרכז",
"ST003" to "חיפה חוף הכרמל"
)
val scanner = BluetoothAdapter.getDefaultAdapter().bluetoothLeScanner
val callback = object : ScanCallback() {
override fun onScanResult(type: Int, result: ScanResult) {
val data = result.scanRecord?.manufacturerSpecificData
val key = data?.keyAt(0) ?: return
val idBytes = data.get(key)
val stationId = idBytes?.toString(Charsets.UTF_8) ?: return
val location = stationMap[stationId] ?: "מיקום לא ידוע"
println("תחנה: $stationId → $location")
}
}
scanner.startScan(callback)
🍏 קוד לאייפון (iOS – Swift)
import CoreBluetooth
class BLEScanner: NSObject, CBCentralManagerDelegate {
var central: CBCentralManager!
let stationMap = [
"ST001": "תל אביב מרכז",
"ST002": "ירושלים מרכז",
"ST003": "חיפה חוף הכרמל"
]
override init() {
super.init()
central = CBCentralManager(delegate: self, queue: nil)
}
func centralManagerDidUpdateState(_ central: CBCentralManager) {
if central.state == .poweredOn {
central.scanForPeripherals(withServices: nil, options: nil)
}
}
func centralManager(_ central: CBCentralManager,
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber) {
if let manuf = advertisementData[CBAdvertisementDataManufacturerDataKey] as? Data {
let id = String(data: manuf, encoding: .utf8) ?? ""
let location = stationMap[id] ?? "מיקום לא ידוע"
print("תחנה: \(id) → \(location)")
}
}
}
📲 איך מתקינים את האפליקציה בנייד
אנדרואיד
- פותחים Android Studio
- יוצרים פרויקט חדש
- מדביקים את הקוד שסיפקתי
- מוסיפים הרשאות:
BLUETOOTH
BLUETOOTH_ADMIN
BLUETOOTH_SCAN
ACCESS_FINE_LOCATION
- מריצים על המכשיר
- האפליקציה מתחילה לסרוק BLE אוטומטית
iOS
- פותחים Xcode
- יוצרים פרויקט iOS חדש
- מדביקים את קוד Swift
- מוסיפים ל־Info.plist:
NSBluetoothAlwaysUsageDescription
NSBluetoothPeripheralUsageDescription
- מריצים על אייפון
- האפליקציה מתחילה לסרוק BLE
אם תרצה, אוכל להכין לך גם:
- קובץ JSON מוכן עם 70 התחנות
- מסך UI יפה לאפליקציה
- גרסה של האפיון בפורמט PDF שאתה רק מדביק
רוצה שאכין גם את קובץ ה־JSON?
אין תגובות:
הוסף רשומת תגובה