Как собрать статистику качества сигнала 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 секунд — это значит, что ты едешь мимо вышек, или вышки плохо покрывают зону. Это не «плохой модуль» — это проблема покрытия.
Как лучше сделать — практические рекомендации
Вот как я делаю это на практике:
- Всегда начинаю с AT+CESQ — это база. Даже если есть API, сначала проверяю через AT, чтобы убедиться, что модуль вообще отвечает.
- Собираю данные каждые 2 секунды. Этого достаточно, чтобы поймать переключения, но не перегружать систему.
- Сохраняю в CSV: timestamp, RSRP, SINR, Cell ID, Throughput. Потом импортирую в Excel или Google Sheets — и строю график.
- Если вижу, что SINR падает ниже 5 дБ — ищем источник помех: Wi-Fi роутер рядом? Металлический корпус? Смартфон на зарядке?
- Если Cell ID меняется чаще 2 раз в минуту — проверяю, не еду ли я по трассе с плохим покрытием. Если стационарно — значит, вышки плохо настроены или есть интерференция.
- Если 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-устройств в сельской местности.
Что делать дальше
Вот твой план на сегодня:
- Определи, где у тебя модуль: в смартфоне, в роутере, в IoT-устройстве?
- Если в роутере — проверь, есть ли API у производителя. Если есть — начни с него.
- Если нет API — подключи модуль к компьютеру через USB и попробуй AT+CESQ через терминал.
- Если это смартфон — скачай Network Cell Info Lite и запусти в зоне с проблемами.
- Собирай данные 5–10 минут в той же зоне, где ты замечаешь сбои.
- Смотри на SINR и throughput — не на RSRP отдельно.
- Если SINR < 5 дБ — ищи помехи. Если Cell ID прыгает — проверь покрытие. Если throughput низкий, а SINR нормальный — проблема у провайдера.
Ты не ищешь «лучший сигнал». Ты ищешь причину сбоев. И пока ты не видишь параметры в реальном времени — ты просто гадаешь. Как только ты начнёшь собирать эти данные — ты перестанешь быть пассивным пользователем. Ты станешь тем, кто понимает, почему что-то ломается — и сможет это починить.
Начни с одного из способов — и сделай это сегодня. Не жди «когда будет время». Собери 5 минут данных — и ты уже увидишь то, что раньше было скрыто.
Информация в статье носит ознакомительный характер. Для диагностики и настройки оборудования, особенно в критически важных системах, рекомендуется привлекать специалиста по телекоммуникациям или поставщика оборудования.
