|
|
@@ -583,8 +583,14 @@ RSSI: -70
|
|
|
|
|
|
**Роли:**
|
|
|
1. **Бригадир** - носит смартфон с приложением (Android)
|
|
|
-2. **Рабочие** - имеют персональные NFC карты
|
|
|
-3. **Объект** - оснащен BLE маяками (iBeacon) в разных зонах
|
|
|
+2. **Рабочие** - носят персональные бейджи (в каске или на одежде)
|
|
|
+
|
|
|
+**Бейдж рабочего (производство MyBeacon):**
|
|
|
+- **NFC метка** - для авторизации в начале смены
|
|
|
+- **iBeacon** - постоянная трансляция BLE сигнала
|
|
|
+- **UUID/Major/Minor** - уникальная идентификация каждого рабочего
|
|
|
+- **Батарея** - автономная работа несколько месяцев
|
|
|
+- **Форм-фактор** - карточка-бейдж или модуль для каски
|
|
|
|
|
|
### Рабочий процесс
|
|
|
|
|
|
@@ -592,9 +598,9 @@ RSSI: -70
|
|
|
|
|
|
**Сценарий:**
|
|
|
1. Рабочий приходит на объект (например, 8:00)
|
|
|
-2. Бригадир открывает приложение
|
|
|
-3. Рабочий прикладывает свою NFC карту к смартфону
|
|
|
-4. Приложение читает NFC_ID (уникальный идентификатор карты)
|
|
|
+2. Бригадир открывает приложение на смартфоне
|
|
|
+3. Рабочий прикладывает свой **бейдж** к смартфону (NFC tap)
|
|
|
+4. Приложение читает NFC_ID с бейджа
|
|
|
5. Отправляет событие на сервер:
|
|
|
```json
|
|
|
{
|
|
|
@@ -604,43 +610,61 @@ RSSI: -70
|
|
|
"TIME": 1565169600000
|
|
|
}
|
|
|
```
|
|
|
-6. Сервер региструет: "Рабочий #12345 начал смену в 8:00"
|
|
|
+6. Сервер регистрирует: "Рабочий #12345 начал смену в 8:00"
|
|
|
|
|
|
**Польза:**
|
|
|
- Учет рабочего времени (кто когда пришел)
|
|
|
- Автоматическая табельная
|
|
|
- Замена бумажных журналов
|
|
|
+- Бейдж невозможно передать другому (привязан к человеку)
|
|
|
|
|
|
#### День: Отслеживание перемещений (BLE + GPS)
|
|
|
|
|
|
+**Принцип работы:**
|
|
|
+
|
|
|
+1. **Рабочие носят бейджи** - каждый бейдж постоянно транслирует iBeacon сигнал
|
|
|
+2. **Смартфон бригадира** сканирует BLE → ловит beacons от бейджей рабочих
|
|
|
+3. **Смартфон также собирает** свою GPS позицию
|
|
|
+4. **Отправка на сервер** - GPS бригадира + список обнаруженных beacons
|
|
|
+
|
|
|
**Что собирает приложение:**
|
|
|
|
|
|
-**1. GPS координаты (continuous)**
|
|
|
+**1. GPS координаты бригадира (continuous)**
|
|
|
- Latitude, Longitude, Altitude
|
|
|
- Accuracy (HDOP)
|
|
|
- Provider (GPS/Network/Fused)
|
|
|
- Частота: каждые 30-60 секунд
|
|
|
|
|
|
-**2. BLE маяки (continuous scanning)**
|
|
|
-- Сканирование iBeacon форматов в зоне видимости
|
|
|
-- UUID, Major, Minor (идентификация зоны)
|
|
|
-- RSSI измерение (расстояние до маяка)
|
|
|
-- Частота: каждые 10-30 секунд
|
|
|
+**2. BLE beacons от рабочих (continuous scanning)**
|
|
|
+- Сканирование iBeacon от бейджей рабочих в зоне видимости
|
|
|
+- UUID (общий для всех MyBeacon бейджей)
|
|
|
+- Major (ID объекта/бригады)
|
|
|
+- Minor (ID конкретного рабочего)
|
|
|
+- RSSI (расстояние до рабочего: -40 = очень близко, -80 = далеко)
|
|
|
+- Частота сканирования: каждые 10-30 секунд
|
|
|
|
|
|
**3. Системная информация**
|
|
|
- Разрешения приложения (location, bluetooth)
|
|
|
- Уровень батареи телефона
|
|
|
- Настройки энергосбережения
|
|
|
|
|
|
-**Пример BLE маяков на объекте:**
|
|
|
+**Пример бейджей рабочих на объекте:**
|
|
|
```
|
|
|
-Beacon #1: UUID=xxx, Major=1, Minor=1 → "Западное крыло, 1 этаж"
|
|
|
-Beacon #2: UUID=xxx, Major=1, Minor=2 → "Восточное крыло, 1 этаж"
|
|
|
-Beacon #3: UUID=xxx, Major=2, Minor=1 → "Западное крыло, 2 этаж"
|
|
|
-Beacon #4: UUID=xxx, Major=3, Minor=1 → "Подвал"
|
|
|
-Beacon #5: UUID=xxx, Major=4, Minor=1 → "Кровля"
|
|
|
+Бейдж #1: UUID=FDA50693-A4E2-4FB1-AFCF-C6EB07647825, Major=1 (бригада), Minor=1 (Иванов И.И.)
|
|
|
+Бейдж #2: UUID=FDA50693-A4E2-4FB1-AFCF-C6EB07647825, Major=1 (бригада), Minor=2 (Петров П.П.)
|
|
|
+Бейдж #3: UUID=FDA50693-A4E2-4FB1-AFCF-C6EB07647825, Major=1 (бригада), Minor=3 (Сидоров С.С.)
|
|
|
+Бейдж #4: UUID=FDA50693-A4E2-4FB1-AFCF-C6EB07647825, Major=1 (бригада), Minor=4 (Козлов К.К.)
|
|
|
+Бейдж #5: UUID=FDA50693-A4E2-4FB1-AFCF-C6EB07647825, Major=1 (бригада), Minor=5 (Смирнов А.А.)
|
|
|
```
|
|
|
|
|
|
+**Логика отслеживания:**
|
|
|
+- Смартфон бригадира ловит beacons от рабочих рядом с ним
|
|
|
+- RSSI показывает расстояние:
|
|
|
+ - RSSI > -50 → рабочий очень близко (в пределах 2-5 метров)
|
|
|
+ - RSSI -50..-70 → рабочий рядом (5-15 метров)
|
|
|
+ - RSSI < -70 → рабочий далеко (15+ метров)
|
|
|
+- Если beacon перестал ловиться → рабочий ушел далеко или покинул объект
|
|
|
+
|
|
|
### Формат отправки:
|
|
|
|
|
|
**HTTP POST на `/beacon/ble/get4.php`**
|
|
|
@@ -706,24 +730,36 @@ Content-Encoding: gzip (опционально)
|
|
|
|
|
|
**Что видит менеджер:**
|
|
|
- Карта объекта (Google Maps / OpenStreetMap)
|
|
|
-- GPS-маркеры с позициями бригад в реальном времени
|
|
|
+- GPS-маркеры с позициями **бригадиров** в реальном времени
|
|
|
- Иконки бригадиров разного цвета (каждый PHONE_UUID свой цвет)
|
|
|
+- Размер иконки зависит от количества рабочих рядом
|
|
|
- Последнее обновление локации (timestamp)
|
|
|
|
|
|
**Интерактив:**
|
|
|
-- Клик на маркер → показать:
|
|
|
- - Бригадир: Иван Иванов (PHONE_UUID: foreman_001)
|
|
|
- - Последняя локация: 55.7558, 37.6173
|
|
|
- - Время: 14:35:22
|
|
|
- - Ближайший beacon: "Западное крыло, 1 этаж" (Major=1, Minor=1, RSSI=-55)
|
|
|
- - Батарея телефона: 67%
|
|
|
- - Рабочие в бригаде: 5 человек (список NFC_ID)
|
|
|
+- Клик на маркер (бригадир) → показать:
|
|
|
+ - **Бригадир:** Иван Иванов (PHONE_UUID: foreman_001)
|
|
|
+ - **GPS позиция:** 55.7558, 37.6173 (ЖК "Новый город", стройплощадка)
|
|
|
+ - **Время:** 14:35:22
|
|
|
+ - **Батарея телефона:** 67%
|
|
|
+ - **Рабочие рядом с бригадиром (по BLE):**
|
|
|
+ - ✅ Петров П.П. (Minor=2, RSSI=-45, 3м) - очень близко
|
|
|
+ - ✅ Сидоров С.С. (Minor=3, RSSI=-62, 10м) - рядом
|
|
|
+ - ✅ Козлов К.К. (Minor=4, RSSI=-75, 18м) - далеко
|
|
|
+ - ❌ Смирнов А.А. (Minor=5) - НЕ ВИДЕН (ушел?)
|
|
|
+ - **Статус:** 3 из 4 рабочих в зоне видимости
|
|
|
|
|
|
**Use case:**
|
|
|
-- Менеджер видит что бригада №3 находится в "Западном крыле, 2 этаж"
|
|
|
-- Координаты GPS подтверждают что они на объекте
|
|
|
-- BLE маяк показывает точную зону
|
|
|
-- Можно позвонить бригадиру если нужно
|
|
|
+- Менеджер видит что бригадир №1 находится по GPS на объекте
|
|
|
+- Рядом с ним (по BLE) 3 рабочих из 4
|
|
|
+- Один рабочий (Смирнов) не виден → возможно ушел
|
|
|
+- Можно позвонить бригадиру или проверить в табеле когда Смирнов в последний раз сканировался
|
|
|
+
|
|
|
+**Логика определения "рядом":**
|
|
|
+- GPS показывает где **бригадир**
|
|
|
+- BLE beacons показывают каких **рабочих** бригадир "видит"
|
|
|
+- Все рабочие носят бейджи с iBeacon
|
|
|
+- Смартфон бригадира сканирует beacons → шлет на сервер список
|
|
|
+- На карте видим: "Бригадир здесь (GPS), рядом с ним эти рабочие (BLE)"
|
|
|
|
|
|
#### 2. Текстовая аналитика (Reports)
|
|
|
|
|
|
@@ -745,23 +781,41 @@ Content-Encoding: gzip (опционально)
|
|
|
└──────────────┴───────────┴───────────┴────────┘
|
|
|
```
|
|
|
|
|
|
-**Перемещения по зонам:**
|
|
|
+**Перемещения бригадира и состав бригады:**
|
|
|
```
|
|
|
-Бригадир: Иван Иванов
|
|
|
+Бригадир: Иван Иванов (foreman_001)
|
|
|
Дата: 2025-12-28
|
|
|
|
|
|
-08:00-09:30 → Западное крыло, 1 этаж (beacon Major=1, Minor=1)
|
|
|
-09:30-12:00 → Восточное крыло, 1 этаж (beacon Major=1, Minor=2)
|
|
|
-12:00-13:00 → [Нет beacon] GPS: 55.7558, 37.6173 (обед?)
|
|
|
-13:00-15:30 → Западное крыло, 2 этаж (beacon Major=2, Minor=1)
|
|
|
-15:30-18:00 → Кровля (beacon Major=4, Minor=1)
|
|
|
+08:00-09:30 → GPS: 55.7558, 37.6173 (Корпус А)
|
|
|
+ Рабочие рядом: Петров (RSSI -45), Сидоров (RSSI -50), Козлов (RSSI -55), Смирнов (RSSI -60)
|
|
|
+
|
|
|
+09:30-12:00 → GPS: 55.7560, 37.6180 (Корпус Б)
|
|
|
+ Рабочие рядом: Петров (RSSI -40), Сидоров (RSSI -48), Козлов (RSSI -70)
|
|
|
+ ⚠ Смирнов не виден с 10:15
|
|
|
+
|
|
|
+12:00-13:00 → GPS: 55.7555, 37.6175 (Бытовка)
|
|
|
+ Рабочие рядом: Петров (RSSI -35), Сидоров (RSSI -38) (обед)
|
|
|
+ ⚠ Козлов не виден
|
|
|
+ ⚠ Смирнов не виден
|
|
|
+
|
|
|
+13:00-15:30 → GPS: 55.7562, 37.6185 (Кровля)
|
|
|
+ Рабочие рядом: Петров (RSSI -42), Сидоров (RSSI -55), Козлов (RSSI -58)
|
|
|
+ ⚠ Смирнов не виден (ушел с объекта?)
|
|
|
+
|
|
|
+15:30-18:00 → GPS: 55.7558, 37.6173 (Корпус А)
|
|
|
+ Рабочие рядом: Петров (RSSI -45), Сидоров (RSSI -52), Козлов (RSSI -60)
|
|
|
+ ⚠ Смирнов не виден весь день с 10:15
|
|
|
```
|
|
|
|
|
|
**Аномалии:**
|
|
|
```
|
|
|
-⚠ Бригадир foreman_002 вне объекта 14:20-15:45 (GPS: 55.8000, 37.7000)
|
|
|
-⚠ Бригадир foreman_003 не обновлял локацию 2 часа (батарея?)
|
|
|
-⚠ Рабочий worker_12350 отсканирован в 8:00, но в 14:00 больше нет beacon-событий
|
|
|
+⚠ Бригадир foreman_002 вне объекта 14:20-15:45 (GPS: 55.8000, 37.7000 - 5км от объекта)
|
|
|
+⚠ Бригадир foreman_003 не обновлял локацию 2 часа (батарея разрядилась? приложение закрыто?)
|
|
|
+⚠ Рабочий Смирнов А.А. (Minor=5): NFC сканирован в 8:00, но beacon не виден с 10:15
|
|
|
+ → либо ушел с объекта, либо бейдж разрядился
|
|
|
+⚠ Рабочий Козлов К.К. (Minor=4): не виден с 12:00 до 13:00 (возможно обед отдельно)
|
|
|
+⚠ Бригадир foreman_005: видит 7 рабочих, но по NFC зарегистрировано только 5
|
|
|
+ → возможно чужие бейджи (другая бригада рядом)
|
|
|
```
|
|
|
|
|
|
**Excel-экспорт:**
|
|
|
@@ -776,15 +830,39 @@ Content-Encoding: gzip (опционально)
|
|
|
1. Бригадир вручную пишет кто пришел
|
|
|
2. Может подделать (вписать за отсутствующего)
|
|
|
3. Нет контроля где бригада находится
|
|
|
-4. Нет данных о перемещениях
|
|
|
-5. Сложно сводить статистику
|
|
|
-
|
|
|
-**Стало (приложение):**
|
|
|
-1. NFC карта - невозможно подделать
|
|
|
-2. GPS + BLE - точная локация в реальном времени
|
|
|
-3. Автоматический табель в ClickHouse
|
|
|
-4. Карта с позициями всех бригад
|
|
|
-5. Отчеты одной кнопкой
|
|
|
+4. Нет данных о перемещениях рабочих
|
|
|
+5. Нет контроля присутствия в течение дня (пришел → ушел незаметно)
|
|
|
+6. Сложно сводить статистику
|
|
|
+
|
|
|
+**Стало (приложение + бейджи):**
|
|
|
+1. **NFC бейдж** - невозможно подделать, физическая привязка к человеку
|
|
|
+2. **GPS бригадира** - точная локация на карте в реальном времени
|
|
|
+3. **BLE beacons от бейджей** - контроль присутствия рабочих рядом с бригадиром
|
|
|
+4. **Автоматический табель** в ClickHouse (кто пришел/ушел/опоздал)
|
|
|
+5. **Контроль в течение дня** - если рабочий ушел, его beacon перестанет ловиться
|
|
|
+6. **Карта с позициями всех бригад** - менеджер видит всю картину
|
|
|
+7. **Отчеты одной кнопкой** - табель, перемещения, аномалии
|
|
|
+
|
|
|
+### Ключевые преимущества бейджа MyBeacon:
|
|
|
+
|
|
|
+**Двойная функция (NFC + iBeacon):**
|
|
|
+1. **NFC** - авторизация утром (tap на смартфон)
|
|
|
+2. **iBeacon** - постоянное отслеживание присутствия (BLE сигнал)
|
|
|
+
|
|
|
+**Автономность:**
|
|
|
+- Батарея CR2032 (или CR2477)
|
|
|
+- Работа 6-12 месяцев без замены
|
|
|
+- Индикация низкого заряда (опционально)
|
|
|
+
|
|
|
+**Надежность:**
|
|
|
+- Защита от воды/пыли (IP65+)
|
|
|
+- Ударопрочный корпус
|
|
|
+- Работа при -20°C до +60°C
|
|
|
+
|
|
|
+**Форм-факторы:**
|
|
|
+- Карточка-бейдж (носится на шнурке)
|
|
|
+- Модуль для каски (крепление на липучке/клипсе)
|
|
|
+- Браслет (для условий где бейдж неудобен)
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -1002,21 +1080,28 @@ GET /beacon/get-vpn.php?mac=ac:84:c6:42:17:90
|
|
|
|
|
|
### ПРОЕКТ 3: Construction Crew Tracking App
|
|
|
**Функционал:**
|
|
|
-1. NFC авторизация рабочих (табель начала смены)
|
|
|
-2. GPS трекинг бригадиров в реальном времени
|
|
|
-3. BLE маяки для определения зоны на объекте
|
|
|
-4. Карта с позициями всех бригад (Geographic View)
|
|
|
-5. Текстовая аналитика:
|
|
|
+1. **Бейджи MyBeacon** (NFC + iBeacon) для каждого рабочего
|
|
|
+2. **NFC авторизация** рабочих утром (tap бейджа на смартфон бригадира)
|
|
|
+3. **GPS трекинг бригадиров** в реальном времени (позиция на карте)
|
|
|
+4. **BLE сканирование** бейджей рабочих (контроль присутствия рядом с бригадиром)
|
|
|
+5. **Карта с позициями всех бригад** (Geographic View):
|
|
|
+ - GPS маркеры бригадиров
|
|
|
+ - Список рабочих рядом с каждым бригадиром (по BLE)
|
|
|
+ - RSSI-based расстояние до каждого рабочего
|
|
|
+6. **Текстовая аналитика:**
|
|
|
- Табель рабочего времени (кто пришел/ушел/опоздал)
|
|
|
- - Перемещения по зонам (timeline)
|
|
|
- - Аномалии (вне объекта, нет связи, и т.д.)
|
|
|
-6. Excel экспорт табеля за месяц
|
|
|
+ - Перемещения бригадира (GPS timeline)
|
|
|
+ - Состав бригады в каждый момент (кто был рядом по BLE)
|
|
|
+ - Аномалии (вне объекта, рабочий исчез, чужие бейджи)
|
|
|
+7. **Excel экспорт** табеля за месяц
|
|
|
|
|
|
**Технология:**
|
|
|
-- Android приложение с NFC reader
|
|
|
-- GPS + BLE hybrid positioning
|
|
|
-- ClickHouse таблица `phones2` для хранения
|
|
|
-- 4 типа событий: status (GPS), beacon (BLE), accel, nfc
|
|
|
+- **Бейджи рабочих:** NFC (NTAG213/215) + iBeacon (Nordic nRF51/nRF52)
|
|
|
+- **Android приложение** бригадира с NFC reader + BLE scanner
|
|
|
+- **GPS позиция** бригадира → видим где бригада
|
|
|
+- **BLE beacons от бейджей** → видим каких рабочих бригадир "видит"
|
|
|
+- **ClickHouse** таблица `phones2` для хранения
|
|
|
+- **4 типа событий:** status (GPS), beacon (BLE от бейджей), accel (если есть), nfc (авторизация)
|
|
|
|
|
|
### Общая инфраструктура: Device Management
|
|
|
**Админская панель (3 страницы):**
|