Как автоматически выбрать APN в модуле SIM800L GPRS, взаимодействующем с ESP32

#post #esp32 #sim800l

Вопрос:

Я работал над модулем SIM800L GPRS с ESP32. Моя цель-отправлять данные на платформу интернета вещей с помощью GPRS. Я использую библиотеку sim800l.

Здесь, в коде, я хочу предоставить apn вручную, как это,

const char APN[] = "airtelgprs.com";

существует ли какой-либо возможный способ автоматического назначения apn?

Ответ №1:

Это возможно, но не просто. Есть люди, которые ведут общедоступную базу данных сетевых провайдеров по всему миру и их точек доступа: База данных поставщиков услуг. После входа в сеть GSM вы можете выбрать правильный APN на основе MCC и MNC того, что сообщает ваш GSM-модуль. Это не совсем тривиально, так как размер файла базы данных превышает 341 КБ (но это XML, так что много избыточности).

Самым раздражающим фактором является то, что существуют записи с разными APNS, но с одинаковой комбинацией MCC и MNC. Это означает, что существуют сети, которые выглядят точно так же, как и GSM-модуль, но используют разные APNS. В таком случае вы не можете автоматически выбрать APN и ожидать, что он будет работать. Либо пользователю придется выбирать между альтернативными APNS, либо вам придется опробовать их один за другим, пока вам не удастся подключиться к Интернету.