0

我一直在研究带有 ESP32 的 SIM800L GPRS 模块。我的目的是使用 GPRS 将数据发布到物联网平台。我正在使用 sim800l 库。

在代码中,我想像这样手动提供 apn,

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

有没有可能自动分配apn的方法?

4

1 回答 1

0

这是可能的,但并不简单。有人维护世界上网络提供商及其接入点的公共数据库:服务提供商数据库。登录 GSM 网络后,您可以根据 GSM 模块报告的 MCC 和 MNC 选择正确的 APN。这并不完全是微不足道的,因为数据库文件超过 341 KiB(但它是 XML,所以有很多冗余)。

最烦人的因素是存在具有不同 APN 的条目,但 MCC 和 MNC 的组合相同。这意味着有些网络看起来与 GSM 模块完全相同,但使用不同的 APN。在这种情况下,您不能自动选择 APN 并期望它能够正常工作。要么用户必须在替代 APN 之间进行选择,要么您必须逐个尝试它们,直到您成功连接到 Internet。

于 2021-09-29T12:42:54.737 回答