首页 > 解决方案 > 使用 SIM800c GSM 模块进行网络定位的 Python 代码

问题描述

我正在尝试使用 SIM800c GSM 模块获取网络位置。

我需要 python 代码来获取网络位置的纬度和经度。

有现有的 AT 命令可以获取 lat long。

AT+SAPBR=3,1,"Contype","GPRS"
OK
AT+SAPBR=3,1,"APN","AIRTELGPRS.COM"
OK
AT+SAPBR =1,1
OK
AT+SAPBR=2,1
+SAPBR: 1,1,"100.89.157.83"

OK

AT+CIPGSMLOC=1,1
+CIPGSMLOC: 0,73.856689,18.490337,2019/02/14,12:49:57

我只想从 python 代码中的所有输出中获取纬度和经度。

标签: pythongsmsim800

解决方案


您可以使用正则表达式提取值:

import re

loca = '+CIPGSMLOC: 0,73.856689,18.490337,2019/02/14,12:49:57'

m = re.match('\+CIPGSMLOC: [\d\.]+,([\d\.]+),([\d\.]+)',loca)
if m:
    lat = float( m.group(1) )
    lon = float( m.group(2) )

    print("%f, %f" % (lat,lon))

推荐阅读