Аппаратно-программный комплекс для аудита мобильных сетей. Связка железа и софта, которая в полевых условиях снимает радиообстановку сотовых сетей 2G/3G/4G и привязывает каждое наблюдение к GPS-координатам — основа для инвентаризации базовых станций, оценки покрытия и поиска источников излучения.
Исходный код: github.com/JohnCamelTry/QuectelScan.
Состав комплекса
- Аппаратная часть — модем Quectel EG25-G: приёмник сотовых сетей (2G/3G/4G) и GNSS-приёмник в одном модуле. Управляется AT-командами через последовательный порт (
/dev/ttyUSB*в Linux, COM в Windows). - Программная часть — десктопное приложение на Go (фреймворк Wails v2: бэкенд на Go + веб-фронтенд), работает на Linux и Windows. SQLite-драйвер на чистом Go, внешних C-зависимостей для хранилища нет.
Сбор данных
- Сканирование сот командой
AT+QOPSв режимах: все сети / только 2G / 3G / 4G; одиночный замер или непрерывный с заданным интервалом. - Параллельный поток GNSS: разбор NMEA (
GPRMC/GPGGA), автопереподключение, конфигурация модуля через PMTK, опционально встроенный GPS модема (AT+QGPS). - Каждая найденная сота привязывается к координатам, числу спутников, HDOP, высоте и метке объекта (РЭО).
- Цветовая индикация уровня сигнала по типу сети.
Какие данные собираются
По каждой соте сохраняется:
- Идентификация сети: оператор и PLMN (MCC + MNC), тип сети (2G/3G/4G).
- Идентификаторы соты: LAC/TAC (Location/Tracking Area Code), CID (Cell ID).
- Радиоканал: ARFCN/FREQ (номер канала/частота), BW (полоса).
- Метрики сигнала: уровень сигнала (dBm), качество, RSSI.
- Геопривязка: широта, долгота, число спутников (плюс HDOP и высота из GNSS), время замера и комментарий (РЭО).
Анализ радиообстановки
- Карта на Leaflet + OpenStreetMap: маркеры станций, антенные секторы и отдельный слой оценённых вышек.
- Оценка положения базовых станций по серии измерений одной соты из разных точек: взвешенный по сигналу центроид (1–2 точки) или геомедиана (≥3 точек, устойчива к выбросам), с радиусом уверенности. Замеры без фикса и с плохой точностью (HDOP > 20) отбрасываются, близкие точки объединяются.
- Параллельно ведётся журнал сырых измерений — исходные данные для геолокации вышек, без дедупликации.
Оценка осмысленна только при измерениях в движении вокруг соты (drive-test):
AT+QOPSне даёт Timing Advance, а сила сигнала не равна расстоянию из-за направленности антенн, рельефа и переотражений.
Хранение и экспорт
- SQLite (
netscan.db, режим WAL): дедуплицированная сводка по сотам (UPSERT — запись обновляется при более сильном сигнале или раз в 24 часа) и отдельная таблица сырых измерений. - Экспорт всей базы или отдельного объекта в XLSX, GPS-трек в CSV.
Стек
Go · Wails v2 · SQLite (modernc.org/sqlite) · Leaflet + OpenStreetMap · последовательный порт (AT-команды, NMEA). Сборка под Linux и Windows (включая NSIS-установщик), покрыта go vet / go test / govulncheck.