我正在开发一个项目,需要 GPRS 连接并同时发送短信。
我正在使用 Raspberry Pi 和 adafruit fona。
我按照此 FONA Tethering to Raspberry Pi 建立了 GPRS 连接教程。
我没有使用 ttyAMA0。我已将其更改为 ttyUSB0
,然后使用 USB 转 TTL 连接。
我已经成功建立了 GPRS 连接,但问题是,当我的 Python 代码尝试使用 AT 命令发送短信时,它将无法工作。
这就是我发送短信的方式:
modem=serial.Serial('/dev/ttyUSB0',115200,timeout=5)
modem.write("AT+CMGF=1\r".encode())
time.sleep(1)
modem.write('AT+CMGS="00*******"\r\n'.encode())
time.sleep(1)
modem.write("message\r".encode())
time.sleep(1)
modem.write(ascii.ctrl('z').encode())
time.sleep(1)
为什么代码在 GPRS 不工作的情况下只发送短信?
最佳答案
我也使用 fona 来发送短信和 http 帖子大约一年了。通过短信接收命令和帖子以将更新发送到云端。
首先要可靠地接收短信,fona 必须打开 20 秒(我的系统使用太阳能运行 - 所以当不需要时我会完全关闭 fona)。
发送短信的速度可能会快于 20 秒,但无论如何,我在打开 fona 时提出了以下工作周期作为最佳实践:
- fona 已开启
- GPRS 已开启
- 发布数据已发送(需要几秒钟)
- 关闭 GPRS
- 请等到 fona 打开后至少 20 秒,以确保已收到短信
- 检查短信
- 如果需要,发送回复短信
所以我认为当时关闭 gprs 对于接收或发送短信是必要的。它还消耗更多电量。
关于python - 编程: adafruit Fona gprs+sms?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40563462/