Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Главная
Статьи
Сканер сотовой сети 2G/3G/4G
Очень часто, при установке GSM-репитера или LTE направленной антенны, требуется знать уровень сигнала от базовых
станций всех операторов, а также их местоположение. Хочется иметь устройство с одной кнопкой, при нажатии которой
будет сканироваться эфир и выводиться список всех базовых станций неподалеку, упорядоченных по ухудшению сигнала.
Конечно, можно с собой возить все симки от всех операторов и переставлять их по очереди в телефон, но это, как
минимум, не профессионально, да и приходится постоянно следить за балансом, что зачастую накладывает свои
ограничения.
Быстрый гуглинг на эту тему не принес никакого результата, я не нашел профессиональных решений, но возможно, даже
если они есть, они будут стоить как крыло самолета. Поэтому было решено сделать сей девайс самому. Ну что же,
приступим!
В рамках этой статьи мы, к сожалению, не создадим то самое устройство с одной кнопкой, но сильно приблизимся к этому,
и если будет спрос, то можно и создать законченное решение.
Так как очень часто для организации LTE интернета у заказчиков мы используем связку модем E3372 от Huawei и мини-
роутер GL Inet, которая к слову сказать, очень хорошо себя зарекомендовала, то в один момент наткнулся на интересную
AT команду для этого модема - AT^NETSCAN. Данная команда позволяет получить список окружающих базовых
станций ВСЕХ операторов, независимо от того, какая симка установлена в свисток. Более того, данная команда работает
даже без симки. Единственное ограничение - это поддержка диапазонов 2G и 3G, 4G не поддерживается. Просмотрев всю
линейку LTE модемов от Huawei, я нашел поддержку сканирования 4G диапазона только у модема ME909S в форм
факторе Mini PCIe.
Для подключения данного модема по USB потребуется дополнительный адаптер, которых навалом на aliexpress. Мы
выберем переходник в корпусе с двумя выносными SMA-разъемами для удобного подключения к всенаправленным
антеннам. По сути, на платке адаптера разведен слот под сим карту и организовано питание 3.3V для питания LTE
модуля.
В качестве головного устройства выберем все тот же мини-роутер от компании Gl Inet MT300N. Основная уникальность
роутеров от этой компании заключается в предустановленной операционной системе OpenWrt, которая дает большие
возможности по настройке, кастомизации и обеспечивает колоссальную стабильность в работе.
Итак, подключим LTE модем к роутеру по USB и приступим к настройке, готовая сборка выглядит следующим образом:
Как упоминалось выше, на роутере уже предустановлен OpenWrt и все пакеты для общения с модемом по USB. Зайдем на
роутер по SSH, и установим пару недостающих пакетов:
opkg update
opkg install openssh-sftp-server nano minicomshellКопировать
Данный модем определяется как пять устройств [ttyUSB0-ttyUSB4]. ttyUSB0 используется для поднятия соединения с
интернетом, а вот ttyUSB2 используется как раз для AT-команд. Подключимся с помощью minicom к порту ttyUSB2, для
этого вызовем окно настроек minicom:
Подключившись, сразу видим отладочные сообщения о сети, которые спамят нам консоль. Отключаем их командой
AT^CURC=0, в ответ должно прийти сообщение OK. Давайте для примера исполним несколько команд, чтобы понять
возможности AT терминала. Запросим IMEI и информацию о текущем подключении. Для этого воспользуемся командами
AT CGSN и AT^HCSQ? Если хочется поиграться, то полный список доступных AT команд с описанием доступен на сайте
производителя.
Итак, для получения информации о базовых станциях служит команда AT^NETSCAN, но для ее правильного исполнения
необходимо сначала указать модему, с какими типами сетей (GSM/UMTS/LTE) и диапазонами работать. Для этого
используется команда AT^SYSCFGEX.
AT^SYSCFGEX=<net_order>,<band>,<roaming>,<srvdomain>,<lteband>,<reserve1>,<reserve2>
1000000000000000 - WCDMA_XIX_850
00680380 - Automatic
Каждый из кодов представляет собой шестнадцатеричное (HEX) число. Для задания комбинации диапазонов надо
сложить соответствующие коды. Например, для задания диапазонов GSM 850,
WCDMA IMT 2100, WCDMA_V_850 надо вычислить 0x80000 0x400000 0x4000000=0x4480000. Это и будет
результирующий код диапазона - 4480000.
<lte_band> - код допустимых диапазонов LTE, список большой, приведу лишь диапазоны, поддерживаемые модемом:
1 - LTE BС1
2 - LTE BC2
4 - LTE BC3
8 - LTE BC4
10 - LTE BC5
40 - LTE BC7
80 - LTE BC8
80000 - LTE BC20
8000000 - LTE BC28
Итак, разобрались, для перевода модема в 2G/3G/4G соответственно используем следующие команды:
AT^SYSCFGEX="01",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,
AT^SYSCFGEX="02",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,
AT^SYSCFGEX="03",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,shellКопировать
После получения команды на смену диапазона, модем пройдет перерегистрацию в заданной сети, на что обычно уходит
примерно 10-20 сек, после этого он радостно оповестит об этом, прислав OK.
AT^NETSCAN=<num>,<level>,<mode>, где
<num> - число находимых БС (от 1 до 20). Если будет найдено больше БС чем задано, то станции с самым слабым
сигналом будут исключены из списка.
<level> - минимальный уровень сигнала БС, включаемых в список. Задается в дБ, от -110 (самый низкий уровень) до
-47 (самый высокий уровень). Станции с уровнем сигнала меньше <level> в список включаться не будут.
<mode> - тип БС. 0 - поиск 2G-станций, 1 - поиск 3G-станций, 3 - поиск LTE-станций.
Довольно теории, попробуем запросить список LTE базовых станций у модема, для этого явно укажем диапазон работы
LTE и выполним команду сканирования. Внимание! Перед поиском требуется убедиться, что интернет-канал отключен.
AT^SYSCFGEX="03",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,
AT^NETSCAN=20,-110,3shellКопировать
1. ^NETSCAN: 6175,,,6CC0,250,20,0,-67,BD02B51,80000,,266
2. ^NETSCAN: 3400,,,6CC0,250,20,0,-77,BD02B15,40,,171
3. ^NETSCAN: 1301,,,881,250,99,0,-88,BC3D908,4,,487
4. ^NETSCAN: 6413,,,881,250,99,0,-97,BC8A302,80000,,255
5. ^NETSCAN: 6350,,,13C1,250,02,0,-101,7AA9C03,80000,,241
6. ^NETSCAN: 1802,,,455A,250,01,0,-102,2D470D,4,,375
7. ^NETSCAN: 2850,,,13C1,250,02,0,-104,BC88202,40,,403
8. ^NETSCAN: 1602,,,13C1,250,02,0,-106,BC88205,4,,367
Немного поясню формат вывода данной команды, на примере первой найденной БС из списка:
^NETSCAN: 6175,,,6CC0,250,20,0,-67,BD02B51,80000,,266
6175 - частота
6СС0 - LAC станции
250 - MCC (Россия)
20 - MNC (В данном случае - TELE2). 01 - МТС, 02 - Мегафон, 99 - Билайн. Полный список MNC
0 - код индентификации 2G БС (ДЛЯ 3G/4G всегда будет 0)
-67 - уровень сигнала данной БС в дб
BD02B51 - CID станции
80000 - диапазон, в котором принимается сигнал БС (в данном случае LTE BC20)
266 - физический ID БС в сети LTE
По результатам данного сканирования можно сделать вывод, что наилучший сигнал LTE в данной местности у TELE2, а
антенну нужно направить на БС с CID = BD02B51 и LAC = 6CC0. Координату БС можно посмотреть на сайте xinit.ru или
через их телеграм бота @xinitbot.
Вот таким нехитрым образом можно узнать об окружающих нас вышках сотовых операторов и выбрать лучшего оператора
в данной местности.
Спасибо всем за внимание, надеюсь данный материал окажется кому-то полезным. Прошу также написать в
комментариях, кто и как решает поставленную задачу, возможно, я что-то не знаю и изобретаю велосипед)
К списку статей
Россия, г. Москва
+7 495 199-15-81
ТОП авторов
Россия, г. Нижний Новгород
Россия, г. Санкт-Петербург
Похожие статьи
В данной статье описывается сборка слаботочного эл. щита на базе Wiren Board 6, а так же силового щита для небольшой
квартиры.
Разбираем простейшую задачу по электрическому подключению светодиодной ленты к источнику питания и управлению
через Умный дом.
Голосовые уведомления через Xiaomi Gateway, Home Assistant и HomeKit. Пример реализации, кейсы применения.
Небольшая статья о том, зачем нужна малина, почему автоматизации в HomeKit это не очень хорошо и чем USB стик
лучше отдельного шлюза.
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
Пользование устройствами начального уровня, такие как лампы, датчики, мойка и пылесос. Опыт эксплуатации и мнение
на счет необходимости покупки устройств.
Общие рекомендации по созданию красивого 3D плана вашей квартиры или дома в Home Assistant.