Как собрать статистику качества сигнала eSIM-модуля в реальном времени

Как собрать статистику качества сигнала eSIM-модуля в реальном времени

Ты едешь по трассе, и связь внезапно пропадает. Или работаешь в офисе с eSIM-модулем в роутере — а интернет тормозит, и ты не понимаешь, почему. Сигнал есть, но качество плохое. Проблема не в тарифе, не в интернет-провайдере — а в том, что ты не видишь, что происходит на уровне самого модуля. Ты хочешь понять: насколько стабилен сигнал прямо сейчас, как часто происходят переключения между базовыми станциями, какие параметры реально влияют на скорость. И хочешь это видеть в реальном времени — не через отчёты через неделю, а прямо сейчас, в интерфейсе.

В этой статье — только то, что работает. Без теории про LTE и NR. Без объяснений, что такое RSRP и SINR. Только как собрать эти данные, чтобы понять: что ломается, когда и почему.

Что именно нужно измерять?

Ты не собираешь «сигнал». Ты собираешь параметры, которые влияют на качество связи. Вот список, который реально имеет значение:

  • RSRP — уровень мощности сигнала от базовой станции. Чем выше (ближе к 0), тем лучше. Ниже -110 дБм — сигнал слабый.
  • SINR — отношение сигнала к шуму. Всё, что ниже 0 дБ — плохо. 10–20 дБ — нормально. 20+ — отлично.
  • RSRQ — качество сигнала с учётом помех. Ниже -11 дБ — начинаются проблемы.
  • Cell ID — идентификатор текущей базовой станции. Если он постоянно меняется — модуль «прыгает» между вышками.
  • Band — частотный диапазон. 700 МГц — лучше проникает, 3.5 ГГц — выше скорость, но хуже охват.
  • Throughput — реальная скорость загрузки/отдачи. Не та, что пишет провайдер, а та, что ты получаешь прямо сейчас.
  • Handover rate — частота переключений между ячейками. Более 1 раза в минуту — тревожный сигнал.

Эти параметры — твой «чёрный ящик». Если ты их не смотришь — ты слепой. Ты не знаешь, почему интернет падает в лифте, в тоннеле или в офисе с толстыми стенами. Ты просто видишь «нет интернета» и ждёшь, пока само всё починится.

Как собрать эти данные — три рабочих способа

Есть три способа собирать эти данные. Только один из них подходит для реального времени. Остальные — для анализа после.

1. Через AT-команды (для разработчиков и технических специалистов)

Если у тебя модуль на базе Quectel, u-blox, Sierra Wireless — ты можешь напрямую общаться с ним через последовательный порт (UART или USB CDC). Это самый надёжный способ.

Пример команды для получения текущих параметров:

AT+CESQ

Ответ:

+CESQ: 20,99,255,255,10,255

Расшифровка: RSRP, RSRQ, SINR, RSSI, (не используется), (не используется). Значения — в диапазоне 0–99, где 99 = неизвестно. Чтобы перевести RSRP в дБм: RSRP = -140 + значение. То есть 20 → -120 дБм.

Чтобы собрать статистику в реальном времени, пишешь простой скрипт на Python:

import serial
import time

ser = serial.Serial('/dev/ttyUSB2', 115200, timeout=1)
while True:
    ser.write(b'AT+CESQ\r\n')
    time.sleep(1)
    response = ser.readline().decode().strip()
    if '+CESQ:' in response:
        parts = response.split(',')
        rsrp = int(parts[0]) if parts[0].isdigit() else -140
        sinr = int(parts[4]) if parts[4].isdigit() else 0
        print(f"RSRP: {rsrp-140} dBm, SINR: {sinr} dB")

Запускаешь — и в терминале видишь поток данных. Можно сохранять в CSV, строить графики, отправлять в Grafana. Работает на Linux, Raspberry Pi, на сервере в облаке — где угодно, где есть доступ к порту модуля.

2. Через API провайдера (если модуль поддерживает)

Некоторые модули (особенно в промышленных роутерах — например, Teltonika, Sierra Wireless AirLink) имеют встроенный REST API. Через него можно получить параметры сигнала без AT-команд.

Пример запроса к Teltonika RUT955:

GET http://192.168.1.1/api/monitoring/network/4g

Ответ в JSON:

{
  "signal_strength": -92,
  "sinr": 15,
  "cell_id": "351020123456789",
  "band": "B3",
  "throughput_dl": 42.3,
  "throughput_ul": 18.7
}

Плюсы: не нужно лезть в AT-команды, есть документация, можно интегрировать в дашборды. Минус: не все производители это дают. Проверяй документацию к конкретной модели. Если API есть — это твой лучший выбор.

3. Через сторонние приложения (для пользователей без технического бэкграунда)

Если ты не программист — и просто хочешь понимать, что происходит с твоим eSIM-модулем в роутере или в устройстве, — используй готовые приложения.

На Android есть Network Cell Info Lite — показывает RSRP, SINR, Cell ID, band в реальном времени. Работает с eSIM, если модуль поддерживает передачу этих данных через Android API (большинство современных модулей — поддерживают).

На Windows — CellMapper или LTE Inspector (если у тебя USB-модем с поддержкой QMI/MBIM). Они показывают данные в реальном времени, но требуют подключения через USB, а не через Wi-Fi.

Важно: эти приложения не работают с eSIM в IoT-устройствах. Они только для смартфонов и планшетов. Если у тебя модуль в роутере — тебе нужен первый или второй способ.

Сравнение способов: что выбрать?

Способ Требует знаний Реальное время Поддержка eSIM Интеграция с дашбордом Надёжность
AT-команды Высокие (Python, UART) Да Да (все модули) Да (через CSV/InfluxDB) Высокая
API производителя Средние (REST, JSON) Да Да (если поддерживается) Да (встроено) Высокая
Приложения на Android Низкие Да Только в смартфоне Нет Средняя

Если ты техник — и у тебя есть доступ к модулю через USB или UART — выбирай AT-команды. Это универсально, работает на всех модулях, и ты контролируешь всё.

Если у тебя промышленный роутер с встроенным API — выбирай API. Это чище, проще, и ты можешь подключить это к Grafana или Prometheus без лишних костылей.

Если ты просто хочешь понять, почему твой телефон с eSIM ведёт себя странно — используй Network Cell Info Lite. Но помни: это не для IoT-устройств. Это только для диагностики в смартфоне.

Частые ошибки — и как их избежать

  • Ошибка 1: Смотришь только на RSRP. Многие думают: «-90 дБм — это нормально». Но если SINR = -2 дБ — сигнал заглушён помехами. Ты получаешь 5 Мбит/с вместо 100, потому что помехи. Смотри всегда на оба параметра.
  • Ошибка 2: Собираешь данные раз в 5 минут. Если переключение между ячейками происходит раз в 30 секунд — ты пропустишь критический момент. Собирай данные каждые 1–2 секунды.
  • Ошибка 3: Используешь мобильное приложение для диагностики роутера. Ты не видишь, что происходит внутри роутера — ты видишь, что происходит в телефоне. Это разные устройства.
  • Ошибка 4: Думаешь, что «сигнал есть» = «интернет работает». Нет. Модуль может быть подключён к вышке, но вышка перегружена. Смотри на throughput — это реальная скорость, а не уровень сигнала.
  • Ошибка 5: Не фиксируешь Cell ID. Если ты видишь, что Cell ID меняется каждые 10 секунд — это значит, что ты едешь мимо вышек, или вышки плохо покрывают зону. Это не «плохой модуль» — это проблема покрытия.

Как лучше сделать — практические рекомендации

Вот как я делаю это на практике:

  1. Всегда начинаю с AT+CESQ — это база. Даже если есть API, сначала проверяю через AT, чтобы убедиться, что модуль вообще отвечает.
  2. Собираю данные каждые 2 секунды. Этого достаточно, чтобы поймать переключения, но не перегружать систему.
  3. Сохраняю в CSV: timestamp, RSRP, SINR, Cell ID, Throughput. Потом импортирую в Excel или Google Sheets — и строю график.
  4. Если вижу, что SINR падает ниже 5 дБ — ищем источник помех: Wi-Fi роутер рядом? Металлический корпус? Смартфон на зарядке?
  5. Если Cell ID меняется чаще 2 раз в минуту — проверяю, не еду ли я по трассе с плохим покрытием. Если стационарно — значит, вышки плохо настроены или есть интерференция.
  6. Если throughput падает, а RSRP и SINR в норме — значит, проблема на стороне провайдера или в перегрузке сети. Тогда смотрю на другие модули в той же зоне — если у них тоже медленно — проблема не в тебе.

Если ты хочешь автоматизировать — подключи всё к Grafana + InfluxDB. Собираешь данные каждые 2 секунды — и видишь график в реальном времени: как ведёт себя сигнал в течение дня. Это особенно полезно, если ты управляешь десятками роутеров в разных точках.

Что выбрать в зависимости от ситуации

Ситуация 1: У тебя есть роутер с eSIM, и ты хочешь понять, почему интернет падает в офисе.
→ Подключи модуль к Raspberry Pi. Запусти скрипт на Python с AT+CESQ. Сохраняй данные в CSV. Проверяй, падает ли SINR в определённое время (например, когда включают микроволновку или Wi-Fi). Если SINR падает — значит, помехи. Если RSRP падает — значит, слабый сигнал. Если Cell ID прыгает — проблема с покрытием.

Ситуация 2: Ты управляешь 50 телеметрическими устройствами в автопарке.
→ Используй API производителя (если есть). Собирай данные с каждого устройства в облако. Сравнивай RSRP и throughput по регионам. Если в одном районе у всех устройств SINR < 3 — звони провайдеру: у них проблема с вышкой.

Ситуация 3: Ты просто проверяешь, хорошо ли работает eSIM в новом смартфоне.
→ Скачай Network Cell Info Lite. Запусти в зоне, где обычно пропадает связь. Смотри, как меняются RSRP и SINR. Если SINR выше 15 — всё нормально. Если ниже 5 — ищи проблему с антенной или с тарифом.

Ситуация 4: Ты разрабатываешь устройство с eSIM и хочешь протестировать его в поле.
→ Используй AT-команды + логгер на Arduino или ESP32. Собирай данные с интервалом 1 сек. Записывай GPS-координаты вместе с параметрами. Потом накладываешь карту покрытия — и видишь, где именно теряется связь. Это критично для IoT-устройств в сельской местности.

Что делать дальше

Вот твой план на сегодня:

  1. Определи, где у тебя модуль: в смартфоне, в роутере, в IoT-устройстве?
  2. Если в роутере — проверь, есть ли API у производителя. Если есть — начни с него.
  3. Если нет API — подключи модуль к компьютеру через USB и попробуй AT+CESQ через терминал.
  4. Если это смартфон — скачай Network Cell Info Lite и запусти в зоне с проблемами.
  5. Собирай данные 5–10 минут в той же зоне, где ты замечаешь сбои.
  6. Смотри на SINR и throughput — не на RSRP отдельно.
  7. Если SINR < 5 дБ — ищи помехи. Если Cell ID прыгает — проверь покрытие. Если throughput низкий, а SINR нормальный — проблема у провайдера.

Ты не ищешь «лучший сигнал». Ты ищешь причину сбоев. И пока ты не видишь параметры в реальном времени — ты просто гадаешь. Как только ты начнёшь собирать эти данные — ты перестанешь быть пассивным пользователем. Ты станешь тем, кто понимает, почему что-то ломается — и сможет это починить.

Начни с одного из способов — и сделай это сегодня. Не жди «когда будет время». Собери 5 минут данных — и ты уже увидишь то, что раньше было скрыто.

Информация в статье носит ознакомительный характер. Для диагностики и настройки оборудования, особенно в критически важных системах, рекомендуется привлекать специалиста по телекоммуникациям или поставщика оборудования.

Virtual SIM