AIoT物联网《智能电车防盗系统》项目实战-Day3-流量上网访问高德Web服务实现

3、流量上网访问高德Web服务实现

在这里插入图片描述

3.1、GPS位置获取

3.1.1、坐标系

①、地球坐标:WGS-84

​ World Geodetic System 1984,是为GPS全球定位系统使用而建立的坐标系统。国际标准,从 GPS 设备中取出的数据的坐标系,国际地图提供商使用的坐标系。

②、火星坐标系:GCJ-02

​ GCJ-02(G-Guojia国家,C-Cehui测绘,J-Ju局),又被称为火星坐标系,是一种基于WGS-84制定的大地测量系统,由中国国测局制定。此坐标系所采用的混淆算法会在经纬度中加入随机的偏移。绝大部分国内互联网地图提供商都是使用GCJ-02坐标系,包括高德地图,谷歌地图中国区、腾讯地图等。

③、百度坐标系:bd-09

​ 百度坐标系是在GCJ-02坐标系的基础上再次加密偏移后形成的坐标系,只适用于百度地图。(目前百度API提供了从其它坐标系转换为百度坐标系的API,但却没有从百度坐标系转为其他坐标系的API)。

3.1.2、GNSS相关AT指令介绍

①、AT+QGPS 打开 GNSS

​ 该命令用于打开 GNSS 或者唤醒 GNSS 功能。当<fix_count>为 0,GNSS 引擎将持续定位,可通过AT+QGPSEND 终止 GNSS 会话;当<fix_count>不为 0,且实际定位次数达到指定值时,GNSS 引擎将自动停止;若实际定位次数未达到指定值,也可通过 AT+QGPSEND 终止 GNSS 会话。

设置:
AT+QGPS=<GNSS_mode>[,<fix_maxtime>[,<fix_maxdist>[,<fix_count>[,<fix_rate>]]]]

响应:
OK
或者
ERROR
若错误与 ME 功能相关:
+CME ERROR:

参数:
<GNSS_state> 整型。GNSS状态。
0 GNSS关闭
1 GNSS打开
<GNSS_mode> 整型。GNSS工作模式。
1 独立模式
<fix_maxtime> 整型。最长定位时间,包括测量GNSS伪距期间的反应时间、GPS卫星搜索的时间上限、解调星历数据的时间以及计算位置的时间。范围:1~255;默认值:30;单位:秒。
<fix_maxdist> 整型。定位精度阈值。范围:0~1000;默认值:50;单位:米。
<fix_count> 整型。定位次数。范围:0~1000;默认值:0。 0表示持续定位;其他值表示实际定位次数。
<fix_rate> 整型。定位的时间间隔。范围:1~65535;默认值:1;单位:秒。
操作错误码。

②、AT+QGPSEND 关闭 GNSS

​ 该命令用于关闭 GNSS 功能。通过 AT+QGPS=1 打开 GNSS 且<fix_count>为 0,GNSS 引擎将持续定位,可通过该命令强制终止 GNSS 会话,此时 GNSS 引擎进入休眠模式。若在 2 小时内执行 AT+QGPS=1打开 GNSS 并唤醒 GNSS 引擎,GNSS 引擎默认执行热启动。

设置:
AT+QGPSEND

响应:
OK
或者
ERROR
若错误与 ME 功能相关:
+CME ERROR:

③、AT+QGPSLOC 获取定位信息

​ 该命令用于获取定位信息。执行该命令前,必须通过 AT+QGPS 打开 GNSS。如果定位失败,将根据对应情况返回+CME ERROR: 。

设置:
AT+QGPSLOC=

响应:
+QGPSLOC: ,,,,,,,,,,
OK
若错误与 ME 功能相关:
+CME ERROR:

参数:
整型。纬度和经度显示格式。
0 ,格式:ddmm.mmmmN/S,dddmm.mmmmE/W
1 ,格式:ddmm.mmmmmm,N/S,dddmm.mmmmmm,E/W
2 ,格式:(-)dd.ddddd,(-)ddd.ddddd
字符串类型。UTC时间。格式:hhmmss.sss(引自GPGGA语句)。
字符串类型。纬度。
如果为0:
格式:ddmm.mmmmN/S(引自GPGGA语句)
dd 度。范围:00~89
mm.mmmm 分。范围:00.0000~59.9999
N/S 北纬/南纬
如果为 1:
格式:ddmm.mmmmmm,N/S(引自GPGGA语句)
dd 度。范围:00~89
mm.mmmmmm 分。范围:00.000000~59.999999
N/S 北纬/南纬
如果为 2:
格式:(-)dd.ddddd(引自GPGGA语句)
dd.ddddd 度。范围:-89.99999~89.99999
- 南纬
字符串类型。经度。
如果为 0:
格式:dddmm.mmmmE/W(引自 GPGGA 语句)
ddd 度。范围:000~179
mm.mmmm 分。范围:00.0000~59.9999
E/W 东经/西经
如果为 1:
格式:dddmm.mmmmmm,E/W(引自 GPGGA 语句)
ddd 度。范围:000~179
mm.mmmmmm 分。范围:00.000000~59.999999
E/W 东经/西经
如果为 2:
格式:(-)ddd.ddddd(引自 GPGGA 语句)
ddd.ddddd 度。范围:-179.99999~179.99999
- 西经
水平精度因子。范围:0.5~99.9(引自GPGGA语句)。
天线的海拔高度。精确到小数点后一位。单位:米(引自GPGGA语句)。
整型。GNSS定位模式(引自GAGSA/GPGSA语句)。
2 2D定位
3 3D定位
字符串类型。以正北方为对地航向。
格式:ddd.mm(引自GPVTG语句)。
ddd 度。范围:000~359
mm 分。范围:00~59
对地速度。精确到小数点后一位。单位:千米/时(引自GPVTG语句)。
对地速度。精确到小数点后一位。单位:节(引自GPVTG语句)。
UTC日期。格式:ddmmyy(引自GPRMC语句)。
dd 日
mm 月
yy 年
卫星数量。固定两位数,前导位数不足则补0(引自GPGGA语句)。
操作错误码。

④、AT+QGPSINFO 查看 GNSS 版本信息

​ 该命令用于查看 GNSS 的版本信息。

设置:
AT+QGPSINFO

响应:
+QGPSINFO: <GNSS_info>
OK
若错误与 ME 功能相关:
+CME ERROR:

参数:
<GNSS_info> 字符串类型。GNSS的版本信息。
操作错误码。

3.1.3、GNSS相关AT指令应用

GNSS相关AT指令

3.1.3.1、打开和关闭 GNSS

​ 该示例使用默认参数来打开 GNSS。打开 GNSS 后,NMEA 语句默认从“usbnmea”端口输出。通过AT+QGPSEND 可关闭 GNSS。

AT+QGPS=1 //打开 GNSS。

OK

//打开 GNSS 后,NMEA 语句默认从“usbnmea”端口输出。

AT+QGPSLOC=0 //获取定位信息。

+QGPSLOC: 061951.000,3150.7223N,11711.9293E,0.7,62.2,2,000.00,0.0,0.0,110513,09

OK

AT+QGPSEND //关闭 GNSS。

OK

3.1.3.2、GNSS 休眠模式

​ 模块上电并打开 GNSS 之后,在不断电重启的情况下发送 AT+QGPSEND 可使 GNSS 引擎进入休眠模式并停止定位降低流耗,同时保存星历数据。若在 2 个小时内通过 AT+QGPS=1 唤醒 GNSS 引擎并进行热启动,从而实现快速定位。

AT+QGPS=1 //打开 GNSS。

OK

AT+QGPSEND

OK

//在不断电重启的情况下关闭 GNSS。此时 GNSS 引擎进入休眠模式并停止定位,但是星历数据保存。

AT+QGPSLOC=0 //获取定位信息。

+CMS ERROR: 505 //此时 GNSS 功能无法使用。

AT+QGPS=1 //2 小时内重新开启 GNSS,GNSS 引擎执行热启动。

OK

AT+QGPSLOC=0 //获取定位信息。

+QGPSLOC: 121251.000,2301.4623N,11314.4612E,0.8,141.6,3,000.00,0.5,0.3,020321,20

OK

3.1.4、实际操作

3.1.4.1、用GPS需要注意以下几点:

朝上面

​ ①、GPS必须放在室外
​ ②、尽量保证无贴纸面朝上
​ ③、开机上电大概要等1分钟左右才可以获取GPS服务
​ ④、开机上电GPS位置和上一次差太远,需要等更长时间

3.1.4.2、串口测试
①、+CMS ERROR: 50 没有订阅请求的设备

发生 +CMS ERROR: 50 没有订阅请求的设备 说明还需要等GPS初始化

GPS测试1

②、+CMS ERROR: 516 当前未定位

发生 +CMS ERROR: 516 当前未定位 ,前后大约花费15分钟才获取到GPS数据

GPS测试2

③、休眠后再次开启GPS 获取数据时间约2分钟

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

GPS测试5

④、GPS数据的三种模式

GPS测试3

3.1.4.3、GPS数据分析
①、UTC时间

北京位于中国,所属时区是CST(中国标准时间,China Standard Time)
UTC表示世界协调时间(Coordinated Universal Time)

北京时间(Beijing)世界协调时间(UTC)
00:0016:00**-1天**
01:0017:00**-1天**
02:0018:00**-1天**
03:0019:00**-1天**
04:0020:00**-1天**
05:0021:00**-1天**
06:0022:00**-1天**
07:0023:00**-1天**
08:0000:00
09:0001:00
10:0002:00
11:0003:00
12:0004:00
13:0005:00
14:0006:00
15:0007:00
16:0008:00
17:0009:00
18:0010:00
19:0011:00
20:0012:00
21:0013:00
22:0014:00
23:0015:00

时差

[2022-11-15 09:37:08.942 T]AT+QGPSLOC=2 //获取模式2 GPS数据

[2022-11-15 09:37:08.960 R]AT+QGPSLOC=2

//UTC、纬度、经度、水平精度因子、天线的海拔高度、GNSS定位模式、以正北方为对地航向…

+QGPSLOC: 013709.000,40.05457,116.32738,7.1,36.6,3,000.00,1.5,0.8,151122,07

OK

UTC时间格式: HH:mm:ss.SSS

UTC时间为:013709.000 换算为北京时间为:09点37分09秒

②、坐标值转换

网址:地图坐标系转换 - 在线工具

​ 纬度:40.05457 经度:116.32738

​ 经度:116.33353096053096 纬度:40.05588657394468

GPS坐标系转换

火星坐标系验证

3.2、访问高德Web服务

3.2.1、高德API注册与访问

3.2.1.1、高德开放平台注册

高德API官网

3.2.1.2、应用key的注册
①、创建新应用

高德key注册1

②、添加key

高德key注册2

③、起名、选择服务类型

高德key注册3

④、找到key密钥

高德key注册4

3.2.1.3、坐标拾取器
①、进入坐标拾取器

高德坐标拾取器

②、未认证时,坐标只精确到小数点后两位

高德坐标精度

③、开启认证

高德开发者认证

④、查看精度

高德坐标精度1

3.2.1.4、坐标转换
①、进入坐标转换

首页-坐标转换

坐标转换

②、查看使用方法

坐标转换URL

③、查看返回结果

输入:
//restapi.amap.com/v3/assistant/coordinate/convert?key=您的key&locations=116.32738,40.05457&coordsys=gps

实际结果:
{“status”:“1”,“info”:“ok”,“infocode”:“10000”,“locations”:“116.33353108724,40.055886501737”}

方便查看结果:
{
“status” :“1”,
“info” :“ok”,
“infocode” :“10000”,
“locations” :“116.33353108724,40.055886501737”
}

WGS84 输入:116.32738,40.05457
GCJ-02 结果:116.33353108724,40.055886501737

高德坐标转换

3.2.1.5、实现逆地理编码
①、找到页面

逆地理编码0

②、配置参数、运行

逆地理编码1

③、查看返回JSON数据

逆地理编码2

④、URL中添加自己的key测试

逆地理编码3

3.2.2、TCP/IP相关AT指令介绍与应用

3.2.2.1、TCP/IP协议介绍

TCP-IP协议簇(部分)

3.2.2.2、TCP/IP相关AT指令介绍
①、AT+QICSGP 配置 TCP/IP 场景参数

​ 该命令用于配置****以及其他 TCP/IP 场景参数。

设置:
AT+QICSGP=[,<context_type>,[,,)[,[,<CDMA_pwd>]]]]
参数:
** **整型。场景 ID。范围:1~15。
<context_type> 整型。协议类型。
1 IPv4
2 IPv6
3 IPv4v6
字符串类型。接入点名称。
中国联通接入点:UNINET
中国移动接入点:CMWAP、CMNET
中国电信接入点:CTNET、CTWAP
字符串类型。用户名。最大长度:127 字节。
字符串类型。密码。最大长度:127 字节。
整型。APN 鉴权方式。
0 None
1 PAP
2 CHAP
3 PAP 或 CHAP
<CDMA_pwd> 整型。是否在 CDMA 网络下保存和。
0 不保存
1 保存

②、AT+QIACT 激活 PDP 场景

​ 在用AT+QIACT激活PDP场景前,需要使用AT+QICSGP配置场景。场景激活后,可以通过AT+QIACT?查询 IP 地址。虽然的范围为 1~15,但是模块最多仅可同时激活 3 路 PDP 场景。受网络状态影响,执行AT+QIACT 后,等待返回结果 OK 或者 ERROR 的最大时间为 150 秒,在结果尚未返回之前,无法执行任何 AT 命令。

设置:
AT+QIACT=

查询:
AT+QIACT?

查询响应:
+QIACT: 1,<context_state>,<context_type>,<IP_address>

+QIACT: 15,<context_state>,<context_type>,<IP_address>
OK

参数:
整型。场景 ID。范围:1~15。
<context_state> 整型。场景状态。
0 去激活
1 激活
<context_type> 整型。协议类型。
1 IPv4
2 IPv6
3 IPv4v6
<IP_address> 字符串类型。场景激活后的本地 IP 地址。

③、AT+QIDEACT 去激活 PDP 场景

​ 该命令用于去激活特定场景,断开在这个场景内建立的所有 TCP/IP 连接。受网络状态影响,执行AT+QIDEACT 后,等待返回结果 OK 或者 ERROR 的最大时间为 40 秒。在结果尚未返回之前,无法执行任何 AT 命令。

设置:
AT+QIDEACT=
参数:
整型。场景 ID。范围:1~15。

④、AT+QPING 进行远程服务器 Ping 操作

​ 该命令用于检测 Host 网络协议可达性。在使用 Ping 工具前,Host 应首先通过 AT+QIACT 激活对应的场景,在期间内返回结果,默认值是 4 秒。

设置:
AT+QPING=,[,[,]]

响应:
OK
+QPING: ,<IP_address>,,

⑤、AT+QNTP 使用NTP服务器同步本地时间

​ 该命令用于通过 NTP 服务器同步本地时间到 UTC 时间,在同步之前,Host 需通过 AT+QIACT 来激活对应的场景。受网络状态影响,等待返回结果最多需要 125 秒。

设置:
AT+QNTP=,[,[,]]

响应:
同步成功:
OK
+QNTP: ,

参数:
整型。场景ID。范围:1~15。
字符串类型。NTP服务器地址。
整型。NTP服务器端口。范围:1~65535。
整型。是否自动设置同步时间到本地时间。
0 不设置
1 设置
整型。错误码。

⑥、AT+QIDNSGIP 用域名获取IP地址

​ 查询 DNS 之前,Host 需通过 AT+QIACT 来激活****对应的场景。受网络状态影响,等待返 回响应结果最多需要 60 秒。

设置:
AT+QIDNSGIP=,

响应:
OK
以 URC 格式返回结果
+QIURC: “dnsgip”,,<IP_count>,<DNS_ttl>

+QIURC: “dnsgip”,
如有错误:
ERROR

参数:
整型。PDP 场景 ID。范围:1~15。
字符串类型。域名。
整型。操作错误代码。
<IP_count> 整型。对应的 IP 地址数。
<DNS_ttl> 整型。DNS 的 TTL 值。
字符串类型。IP 地址。

3.2.2.3、TCP/IP相关AT指令应用
①、开启入网

AT+QICSGP=1,1,“UNINET”,“”,“”,1 //配置场景 1,APN 配置为"UNINET"(中国联通)。

OK

AT+QIACT=1 //激活场景 1,受网络状态影响,最大响应时间为 150 秒。

OK //场景激活成功。

AT+QIACT? //查询场景状态。

+QIACT: 1,1,1,“10.7.157.1”

OK

AT+QIDEACT=1 //去激活场景 1。

OK //场景去激活成功,受网络状态影响,最大响应时间为 40 秒。

②、ping测试

AT+QPING=1,“www.baidu.com” //在场景 1 中 Ping www.baidu.com,在 Ping 目标 IP地址前,Host 需通过 AT+QIACT来激活场景。
OK
+QPING: 0,“39.156.66.18”,64,197,255
+QPING: 0,“39.156.66.18”,64,25,255
+QPING: 0,“39.156.66.18”,64,40,255
+QPING: 0,“39.156.66.18”,64,20,255
+QPING: 0,4,4,0,20,197,47

PING测试

③、获取时间信息

AT+QNTP=1,“ntp.aliyun.com”
AT+QNTP=1,“ntp.aliyun.com”

OK

+QNTP: 0,“2022/11/10,08:42:59+32” //UTC时间

获取NTP时间

3.2.3、HTTP相关AT指令介绍与应用

HTTP

3.2.3.1、HTTP协议简单介绍
①、URL - 统一资源定位符

URL

②、请求方法:GET

HTTP_GET

③、请求方法:POST

HTTP_POST

3.2.3.2、HTTP相关AT指令介绍
①、AT+QHTTPCFG 配置 HTTP(S)服务器参数

​ 该命令用于配置 HTTP(S)服务器参数,包括配置 PDP 上下文 ID,自定义 HTTP(S)请求头信息,输出HTTP(S)响应头信息和查询 SSL 设置。若执行设置命令时只保留一个参数,表示查询当前配置。

设置:
AT+QHTTPCFG=“contextid”[,]
AT+QHTTPCFG=“requestheader”[,<request_header>]
AT+QHTTPCFG=“responseheader”[,<response_header>]
AT+QHTTPCFG=“sslctxid”[,]
AT+QHTTPCFG=“contenttype”[,<content_type>]
AT+QHTTPCFG=“closed/ind”[,]

参数:
整型。PDP 上下文 ID。范围:1~15。默认值:1。
<request_header> 整型。禁用或启用自定义 HTTP(S)请求头信息。
0 禁用
1 启用
<response_header> 整型。禁用或启用输出 HTTP(S)响应头信息。
0 禁用
1 启用
整型。HTTP(S)的 SSL 上下文 ID。范围:0~5。默认值:1。通过 AT+QSSLCFG配置 SSL 参数。
<content_type> 整型。HTTP(S)体的数据类型。
0 application/x-www-form-urlencoded
1 text/plain
2 application/octet-stream
3 multipart/form-data
<auto_outrsp> 整型。禁用或启用自动输出 HTTP(S)响应头信息。若启用自动输出 HTTP(S)响应头信息,AT+QHTTPREAD 和 AT+QHTTPREADFILE 会执行失败。
0 禁用
1 启用
整型。禁用或启用上报 HTTP(S)会话关闭标识。
0 禁用
1 启用
整型。错误代码。

②、AT+QHTTPURL 设置 HTTP(S)服务器 URL

​ HTTP(S)服务器的 URL 必须以 http://或 https://开头,表示访问 HTTP 或 HTTPS 服务器。

设置:
AT+QHTTPURL=<URL_length>[,]

响应:
若参数格式正确,且不发送 HTTP(S) GET/POST 请求:
CONNECT
TA 切换到透传模式,即可输入 URL。当输入数据的总大小达到<URL_length>,TA 将切换回命令模式并上报以下结果:
OK
若输入时间 达 到 , 但 接收的 URL 长度小于<URL_length>,TA 将切换回命令模式并上报以下结果:
+CME ERROR:
若参数格式不正确或发生其他错误:
+CME ERROR:

参数:
<URL_length> 整型。URL 长度。范围:1~2048。单位:字节。
整型。URL 的最大输入时间。范围:1~65535。默认值:60。单位:秒。
整型。错误代码。

③、AT+QHTTPGET 发送 GET 请求

设置:
若<request_header>为 0(禁用自定义HTTP(S)请求头信息)
AT+QHTTPGET[=]

​ 若<request_header>为 1(启用自定义HTTP(S)请求头信息)
​ AT+QHTTPGET=,<data_length>[,<input_time>]

响应:
若<request_header>为 0,若参数格式正确且无其他错误发生:
OK
模块收到来自 HTTP(S)服务器的响应后,将上报以下 URC:
+QHTTPGET: ,[,<content_length>]
若参数格式不正确或有其他错误发生:
+CME ERROR:

​ 若<request_header>为 1,若 HTTP(S)服务器连接成功:
​ CONNECT
​ TA 切换到透传模式,即可输入 HTTP(S) GET 请求头信息。当输入数据的总大小达到<data_length>,TA 将切换回命令模式
并上报以下结果:
​ OK
​ 模块收到来自 HTTP(S)服务器的响应后,将上报以下 URC:
​ +QHTTPGET: ,[,<content_length>]
​ 若输入时间达到<input_time>,但收到的数据长度小于<data_length>,TA 将切换回命令模式并上报以下结果:
​ +QHTTPGET:
​ 若参数格式不正确或有其他错误发生:
​ +CME ERROR:

参数:
整型。范围:1~65535。默认值:60。单位:秒。上报 OK 后,此参数可用来配置HTTP(S) GET 响应+QHTTPGET: ,[,<content_length>]的最大响应时间。
<data_length> 整型。HTTP(S)请求信息的长度,包括 HTTP(S)请求头信息和 HTTP(S)请求体。范围:1~2048。单位:字节。
<input_time> 整型。HTTP(S)请求信息的最大输入时间。范围:1~65535。默认值:60。单位:秒。
HTTP 回复码。详细信息请参考第 6 章。
<request_header> 整型。禁用或启用自定义 HTTP(S)请求头信息。
0 禁用
1 启用
<content_length> 整型。HTTP(S)响应体长度。单位:字节。
整型。错误代码。参考第 5 章。

④、AT+QHTTPPOST 通过 UART/USB 发送 POST 请求

设置:
若<request_header>为 0(禁用自定义HTTP(S)请求头信息)
AT+QHTTPPOST=<data_length>[,<input_time>,]

​ 若<request_header>为 1(启用自定义HTTP(S)请求头信息)
​ AT+QHTTPPOST=<data_length>[,<input_time>,]

响应:
若<request_header>为 0,参数格式正确,HTTP(S)服务器连接成功且 HTTP(S)请求头信息发送完成:
CONNECT
TA 切换到透传模式,即可输入 HTTP(S) POST 请求体。当输入数据总大小达到<data_length>,TA 将切换回命令模式并上报以下结果:
OK
模块收到来自 HTTP(S)服务器响应后,将上报以下 URC:
+QHTTPPOST: ,[,<content_length>]
若输入时间达到<input_time>,但收到的数据长度小于<data_length>,TA 将切换回命令模式并上报以下结果:
+QHTTPPOST:
若参数格式不正确或有其他错误发生:
+CME ERROR:

​ 若<request_header>为 1,参数格式正确且 HTTP(S)服务器连接成功:
​ CONNECT
​ TA 切换到透传模式,即可输入 HTTP(S) POST 请求体和
​ HTTP(S) POST 请 求 头 信 息 。 当 输 入 数 据 总 大 小 达 到<data_length>,TA 将切换回命令模式并上报以下结果:
​ OK
​ 模块收到来自 HTTP(S)服务器响应后,将上报以下 URC:
​ +QHTTPPOST: ,[,<content_length>]
​ 若输入时间达到<input_time>,但收到的数据长度小于<data_length>,TA 将切换回命令模式并上报以下结果:
​ +QHTTPPOST:
​ 若参数格式不正确或有其他错误发生:
​ +CME ERROR:

参数:
<data_length> 整型。若<request_header>为0,表示POST请求体长度;若<request_header>为 1,表示 HTTP(S)请求信息的长度,包括 HTTP(S) POST 请求头信息和HTTP(S) POST 请求体。范围:1~1024000。单位:字节。
<input_time> 整型。POST 请求体或 HTTP(S)请求信息的最大输入时间。范围:1~65535。默认值:60。单位:秒。
整型。范围:1~65535。默认值:60。单位:秒。上报 OK 后,此参数可用来配置 HTTP(S) POST 响应+QHTTPPOST: ,[,<content_length>]的最大输出时间。
http 回复码。
<request_header> 整型。禁用或启用自定义 HTTP(S)请求头信息。
0 禁用
1 启用
<content_length> 整型。HTTP(S)响应体长度。单位:字节。
整型。错误代码。

⑤、AT+QHTTPREAD 通过 UART/USB 读取

设置:
AT+QHTTPREAD[=<wait_time>]

响应:
若参数格式正确:
CONNECT
<输出 HTTP(S)响应信息>
OK
当 body 读取完成或两个数据包接收间隔时间达到<wait_time>:
+QHTTPREAD:
若参数格式不正确或有其他错误发生:
+CME ERROR:

参数:
<wait_time> 整型。接收两个数据包之间的最大间隔时间。范围:1~65535。默认值:60。单位:秒。
整型。错误代码。

⑥、AT+QHTTPSTOP 取消 HTTP(S)请求

设置:
AT+QHTTPSTOP

响应:
若参数格式正确且无其他错误发生:
OK
若参数格式不正确或有其他错误发生:
+CME ERROR:

参数:
整型。错误代码。

⑦、错误代码
0 Operation successful 操作成功 701 HTTP(S) unknown error HTTP(S) 未知错误 702 HTTP(S) timeout HTTP(S) 超时 703 HTTP(S) busy HTTP(S) 繁忙 704 HTTP(S) UART busy HTTP(S) UART 繁忙 705 HTTP(S) no GET/POST requests HTTP(S) 无 GET/POST 请求 706 HTTP(S) network busy HTTP(S) 网络繁忙 707 HTTP(S) network open failed HTTP(S) 网络连接失败 708 HTTP(S) network no configuration HTTP(S) 网络未配置 709 HTTP(S) network deactivated 激活 HTTP(S) 网络 710 HTTP(S) network error HTTP(S) 网络错误 711 HTTP(S) URL error HTTP(S) URL 错误 712 HTTP(S) empty URL HTTP(S) 空 URL 713 HTTP(S) IP address error HTTP(S) IP 地址错误 714 HTTP(S) DNS error HTTP(S) DNS 错误 715 HTTP(S) socket create error HTTP(S) socket 创建错误 716 HTTP(S) socket connect error HTTP(S) socket 连接错误 717 HTTP(S) socket read error HTTP(S) socket 读取错误 718 HTTP(S) socket write error HTTP(S) socket 写入错误 719 HTTP(S) socket closed HTTP(S) socket 关闭 720 HTTP(S) data encode error HTTP(S) 数据编码错误 721 HTTP(S) data decode error HTTP(S) 数据解码错误 722 HTTP(S) read timeout HTTP(S) 读取超时 723 HTTP(S) response failed HTTP(S)响应失败 724 Incoming call busy 来电忙 725 Voice call busy 语音通话忙 726 Input timeout 输入超时 727 Wait data timeout 数据等待超时 728 Wait HTTP(S) response timeout HTTP(S)等待响应超时 729 Memory allocation failed 内存分配不足 730 Invalid parameter 无效参数
⑧、响应码
响应代码英文描述中文描述
200OK成功
403Forbidden禁止
404Not found未发现
409Conflict冲突
411Length required需输入长度
500Internal server error内部服务器错误
3.2.3.3、HTTP相关AT指令应用

HTTP相关AT指令

[2022-11-17 21:17:51.999 T]AT

[2022-11-17 21:17:52.029 R]AT

OK

[2022-11-17 21:17:54.610 T]AT+QHTTPCFG=“contextid”,1

[2022-11-17 21:17:54.627 R]AT+QHTTPCFG=“contextid”,1

OK

[2022-11-17 21:19:02.966 T]AT+QHTTPCFG=?

[2022-11-17 21:19:02.984 R]AT+QHTTPCFG=?

+QHTTPCFG: “contextid”,(1-7)
+QHTTPCFG: “requestheader”,(0,1)
+QHTTPCFG: “responseheader”,(0,1)
+QHTTPCFG: “sslctxid”,(0-5)
+QHTTPCFG: “contenttype”,(0-5)
+QHTTPCFG: “rspout/auto”,(0,1)
+QHTTPCFG: “closed/ind”,(0,1)
+QHTTPCFG: “url”,<url_value>
+QHTTPCFG: “header”,<header_value>
+QHTTPCFG: “auth”,<user_pwd>
+QHTTPCFG: “form/data”,,<file_name>,
+QHTTPCFG: “reset”

OK

[2022-11-17 21:19:17.476 T]AT+QIACT=1

[2022-11-17 21:19:17.500 R]AT+QIACT=1

OK

[2022-11-17 21:19:20.632 T]AT+QIACT?

[2022-11-17 21:19:20.650 R]AT+QIACT?

+QIACT: 1,1,1,“10.88.37.8”

OK

[2022-11-17 21:19:29.187 T]AT+QHTTPURL=136,80

[2022-11-17 21:19:29.205 R]AT+QHTTPURL=136,80

CONNECT

[2022-11-17 21:19:30.554 T]http://restapi.amap.com/v3/assistant/coordinate/convert?key=8fe62758759c05c57f3ce0a79066f0c8&locations=116.327770,40.054460&coordsys=gps
[2022-11-17 21:19:30.594 R]
OK

[2022-11-17 21:19:33.346 T]AT+QHTTPGET=80

[2022-11-17 21:19:33.377 R]AT+QHTTPGET=80

OK

[2022-11-17 21:19:33.753 R]
+QHTTPGET: 0,200,92

[2022-11-17 21:19:36.427 T]AT+QHTTPREAD=80

[2022-11-17 21:19:36.444 R]AT+QHTTPREAD=80

CONNECT
{“status”:“1”,“info”:“ok”,“infocode”:“10000”,“locations”:“116.333922254775,40.055777452257”}
OK

[2022-11-17 21:19:36.577 R]
+QHTTPREAD: 0

3.3、总结

​ 本节掌握了4G Cat.1模块如何获得GPS数据、通过TCP/IP和HTTP协议上网,做到了获取网络时间、坐标值转换、了解了JSON数据格式,轻松上手高德Web服务开发。

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值