Skip to content
MrTEHNOPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

RF Scout

Android-застосунок для пошуку джерел радіосигналу тими радіомодулями, які фізично є в телефоні: Wi-Fi (2.4 / 5 / 6 ГГц), BLE та стільникові соти. Показує рівень сигналу, частоту/канал, карту зайнятості спектра і оцінку напрямку на джерело.

Як працює пеленгація (і чому це оцінка, а не вимір)

Телефон має одну антену без фазового приймача, тому кут приходу хвилі він виміряти не може. Напрямок отримується ротаційним скануванням:

  1. Обираєш ціль зі списку.
  2. Тримаєш телефон вертикально перед грудьми, екраном до себе.
  3. Повільно повертаєшся навколо себе на повні 360° (15–25 секунд), стежачи за лічильником «обхід %».
  4. Коли з'явиться стрілка — крутись, поки вона не вкаже вгору. Підказка внизу пише, куди і на скільки градусів повертати.

Колір стрілки = довіра до засічки: сіра — даних мало, жовта — засічка слабка, зелена — впевнена.

Тіло оператора дає 6–15 дБ затінення. Застосунок пише максимальний RSSI у сектори по 5° і будує полярну діаграму; пеленг рахується як векторна сума секторів з вагою RSSI − min, що прибирає постійну складову.

Реальна точність — 20–40°. У приміщенні з перевідбиттями максимум може виявитись у напрямку стіни-відбивача, а не джерела. Тому:

  • Роби 2–3 засічки з рознесених точок і шукай перетин — одна засічка дає лише сектор.
  • «Довіра» нижче 25% означає пласку діаграму: джерело або надто близько (сигнал у насиченні), або надто далеко.
  • Дистанція показується вилкою («2–10 м»), а не числом: RSSI не дає точності краще за 3–5×. Кнопка «Калібр. 1 м» задає опорну точку для конкретного передавача і помітно покращує оцінку.
  • Індикатор «наближаєшся / віддаляєшся» рахується по зміні RSSI, а не по абсолютному рівню, тому працює надійно навіть без калібрування.

Обмеження, які варто знати до першого запуску

Режим Частота оновлення RSSI Придатність для пеленгу
BLE кілька разів на секунду найкраща
Wi-Fi, підключена мережа ~1 Гц добра
Wi-Fi, інші мережі 1 скан / 30 с (тротлінг Android 9+) слабка

Тротлінг Wi-Fi вимикається в Developer options → Wi-Fi scan throttling. Без цього повний список мереж оновлюється надто рідко, щоб малювати діаграму.

Чого застосунок не робить і не може робити на голому телефоні:

  • не бачить 3.3 ГГц, 4.9–5.0 ГГц, sub-GHz і аналогове відео 5.8 — Wi-Fi чіп віддає лише розпізнані пакети мереж, а не сирий спектр;
  • не може розширити діапазон програмно: NFC працює на 13.56 МГц на відстані 4 см, GNSS лише приймає супутники без доступу до сирого спектра, UWB (де він є) вміє тільки міряти відстань до іншого UWB-пристрою;
  • не показує рівень шуму й неідентифіковані випромінювачі;
  • не є детектором дронів. ELRS 2.4 і цифрове відео не є Wi-Fi мережами, тому в списку їх не буде.

Для роботи з сирим спектром потрібен зовнішній SDR (RTL-SDR / HackRF) через OTG — це окрема архітектура з USB-хостом і DSP, і в цю збірку вона не входить.

Збірка через GitHub Actions

  1. Створи порожній репозиторій на GitHub.
  2. Заливай вміст цієї папки в корінь репозиторію (важливо: .github/workflows/build.yml має лежати саме в корені).
  3. Push у гілку main запустить збірку автоматично, або запусти вручну: вкладка Actions → Build APK → Run workflow.
  4. Через 3–5 хвилин у секції Artifacts з'явиться rfscout-debug-apk. Завантажуєш zip, всередині app-debug.apk.
  5. На телефоні дозволь встановлення з невідомих джерел і встанови.

Gradle wrapper у репозиторії навмисно немає (це бінарний .jar) — workflow ставить Gradle 8.7 сам. Якщо збиратимеш локально в Android Studio, вона згенерує wrapper при першому відкритті проєкту.

Дозволи

ACCESS_FINE_LOCATION обов'язковий: без нього Android віддає порожній список Wi-Fi. Додатково NEARBY_WIFI_DEVICES (Android 13+), BLUETOOTH_SCAN (Android 12+), READ_PHONE_STATE для стільникових.

Структура

app/src/main/java/ua/sem/rfscout/
├── MainActivity.kt          UI, сенсори, цикл опитування
├── Model.kt                 модель цілі, частота → канал/діапазон
├── PolarAccumulator.kt      математика ротаційного пеленга
├── SignalTracker.kt         тренд наближення, вилка дистанції
├── CompassView.kt           круглий циферблат зі стрілкою
└── scanners/                WifiScanner, BleScanner

Компас береться з TYPE_ROTATION_VECTOR з ремапом осей під вертикальне утримання телефона. Магнітне схилення не враховується — пеленг магнітний. Перед роботою відкалібруй компас «вісімкою» і тримайся подалі від металу й акумуляторів.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages