在 Sim800L AT-Commands Guide 中有很多不同的状态命令,应该告诉我们,状态是有的。
例如:
AT+CPAS - check if device is ready
AT+CGREG? - check registration status in network
AT+CGATT? - check if device "attached to network"
AT+CSQ - get signal level
但是,在某些情况下,此命令的答案可能是“错误”,或者根本没有答案。
我需要一种可靠且快速的方法来确定设备是否已连接到网络,或者它已经处于 GPRS 模式,现在我开始使用 Sim800L 上闪烁的 LED 来检测它的状态。
LED 具有三种闪烁频率:
- 快速闪烁 - GPRS 连接处于活动状态
- 中速闪烁 - 尚未建立网络连接
- 缓慢闪烁 - 设备已连接到网络(但不是 GPRS)
我可以使用光电二极管和“读取”LED 的闪光,或者我可以将 LED 的电源引脚连接到 Arduino 的模拟引脚,并读取它的电压。接下来,我可以计算 LED 闪烁的速度,并确定 Sim800L 处于哪个状态。
但是,如何在不使用这种拐杖的情况下获得这种级别的可靠性呢?