【经验】NB-IoT模组EC系列如何通过AT指令发送HTTP请求
NB-IoT模组EC系列教程的前一次更新还是去年,上一篇教程就实现了定位信息监控,可以在微信公众号实时查看EC模组的位置信息,从那以后都不怕自己的小电驴被偷了。
一、测试准备
同样的,除了EC-01开发板之外,本次测试需要能够连接网络的NB物联网卡,已经接好配套的天线。开发板的micro USB接入电脑。
apiPost 验证URL是否可以正常响应。(apiPost下载地址:https://www.apipost.cn/?utm_source=10120)
EC系列AT指令集:https://docs.ai-thinker.com/_media/nb-iot/nb-iot系列模组AT指令集v1.0.pdf
二、配置入网
1. 指令列表
指令解释:
AT+CGATT ——附着网络
AT+CGDCONT ——配置APN
AT+CGACT ——激活网络
AT+CREG ——注册网络
成功入会打印如下信息:
提示
1、如果在附着网络指令提示:+ CMS ERROR:308,证明物联网卡被锁,通常是换卡使用导致的,需要解锁或者直接换新的卡。
2、如果在配置APN指令时回复:+ CMS ERROR:3。证明附着不成功,或者没装卡导致
3、如果成功之后,后面设备重启可以不发入网的指令,会自动入网
三、HTTP GET请求
1. 发送简单的GET请求
本节我们以 http://httpbin.org/get这个URL为例,控制EC-01-Kit 开发板发送GET请求。首先使用apiPost验证一下这个URL:
可以看到,这个URL可以正常响应。
(1)指令列表
AT+HTTPCREATE=0,"http://httpbin.org"\r\n
AT+HTTPCON=0\r\n
AT+HTTPSEND=0,0,4,"/get"\r\n
重点指令解释:
AT+HTTPSEND=<httpclientId>,<method>,<pathlen>,<path>[,<customheaderlen>,<customheader>,<contentTypelen>,<contentType>,<contentlen>,<content>]
根据指令描述:AT+HTTPSEND=0,0,4,“/get”
参数1:0 为httpclientId 即AT+HTTPCREATE=0,“http://httpbin.org” 中的“0”
参数2:0 为GET ,1为POST,2为PUT,3为DELETE 4为HEAD
参数3:4 为path 的字符数,即“/get” 的字符数量
参数4 :”/get“为请求的路径,就是path
(2)请求结果
可以看到,响应头和响应数据都分别打印出了,只是响应数据是HEX格式的,只要把这个数据转换成字符串就可以了,在线转换工具:https://www.sojson.com/hexadecimal.html
2.自定义头部的GET请求
(1)URL的验证
自定义头部的请求通常出现在需要验证令牌的情况。因为网上找不到需要自定义头部的HTTP服务器,本次测试为了演示如何使用自定义头部来发送请求,相关URL会关掉,所以不要使用本节的URL进行测试。
HTTP服务器配置如下:
URL: http://weixin.xuhongv.com
PATH: /aliyun.DeviceHandler/postFAEData
custom handle: token:fae12345678
我们依旧是先使用apiPost验证一下:
没加token 的请求
加入token的请求头:
(2)指令列表
根据指令描述,\<customheader> 参数要使用16进制表示:
所以,token:fae12345678字符串转换成16进制就是: 746f6b656e3a6661653132333435363738
AT+HTTPCREATE=0,"http://weixin.xuhongv.com"\r\n
AT+HTTPCON=0\r\n
AT+HTTPSEND=0,0,33,"/aliyun.DeviceHandler/postFAEData",34,"746f6b656e3a6661653132333435363738"\r\n
AT+HTTPSEND 头部参数解释(请同步查看AT指令集)
<customheaderlen>:自定义头部的字符长度----本节自定义头部是:746f6b656e3a6661653132333435363738 长度为:34
<customheader>:自定义头部的内容,以16进制表示。
EC-01-Kit 开发板请求结果:
把数据转换一下:
乱码部分是中文,数据和apiPost 请求的是一样的内容
四、HTTP HEAD请求
HTTP 的HEAD请求其实就是获取目标的响应头。通常在获取目标信息的时候用得到,比如文件大小,MD5值等。HEAD请求和GET请求的指令唯一区别就是AT+HTTPSEND 指令中的第二个参数为4。例如:
//发送GET请求:
AT+HTTPSEND=0,0,4,"/get"\r\n
//发送HEAD请求:
AT+HTTPSEND=0,4,4,"/get"\r\n
五、对MCU做OTA升级流程
EC-01使用AT指令固件,通常需要一个MCU来发送AT指令,随之对MCU进行OTA升级的需求也是必要的。既然讲完了HEAD请求和GET 请求,也可以满足对MCU做固件升级了。
本节使用的固件是随便找了一个ESP8266的固件进行介绍,名字如有雷同,纯属巧合。再者,请不要使用本节的URL进行测试,因为本章写完之后,会修改URL。
提示:NB-IOT 不支持HTTPS,请把固件的URL改成HTTP。
本节的URL为:http://seahibucket1.oss-cn-shenzhen.aliyuncs.com//http_test/release-v1.5-huawei-ota-20220325.bin
1.获取目标固件信息
在升级之前,获取目标固件的信息,固件大小,MD5校验值等,以确定固件的完整和正确。通常情况下,这些信息都在响应头中。这时候我们只需要发送HEAD 请求就可以获取到这些信息。
HEAD请求指令
AT+HTTPCREATE=0,"http://seahibucket1.oss-cn-shenzhen.aliyuncs.com"\r\n
AT+HTTPCON=0\r\n
AT+HTTPSEND=0,4,47,"/http_test/release-v1.5-huawei-ota-20220325.bin"\r\n
AT+HTTPDESTROY=0\r\n
请求结果
可以看到:
Content-Length: 766304
Content-MD5: h6AwnvNCs8AERGX4QLQeqQ==
这两个信息,就是目标固件的大小和MD5值。
2.GET请求固件内容
(1)整包请求
EC-01的GET请求的数据内容最大可以到3000 Byte。无法整包请求。而且过程不可控制。
指令列表
注意
请求下载的数据是原数据的HEX值,MCU是不能直接运行的,需要把这些数据使用算法转换成字符串才是原始数据,才能使用。
例如:
(2)分包请求
分包请求不是差分包升级,而是对整包进行连续的内容下载,直到下载完整个固件包的内容。实现方式就是在请求头中加入Ranges参数,比如:需要下载前0-1024个字节,Ranges:bytes=0-1024,而下一个包的首个字节的位置就是1025,下一次请求头中 Ranges:bytes=1025-1025+xxx。
指令列表,请求前两个包,每包1024Byte
AT+HTTPCREATE=0,"http://seahibucket1.oss-cn-shenzhen.aliyuncs.com"\r\n
AT+HTTPCON=0\r\n
AT+HTTPSEND=0,0,47,"/http_test/release-v1.5-huawei-ota-20220325.bin",36,"52616e67653a62797465733d302d31303234"\r\n
AT+HTTPSEND=0,0,47,"/http_test/release-v1.5-huawei-ota-20220325.bin",42,"52616e67653a62797465733d313032352d32303439"\r\n
请求结果
同样的,这些数据都是要进行HEX到字符串的转换。并且把转换后的数据用MD5验证,确保数据正确。
六、HTTP POST请求
POST请求和GET请求的参数大致一样,唯一不同的是POST要是使用Body信息。
1.简单的POST请求
我们需用以下信息作为HTTP服务器:
URL: http://httpbin.org/post
Body 类型: application/json
Body 类型长度: 16
Body:{“form”:{“purpose”:“test”}}
Body的16进制表示: 7b22666f726d223a7b22707572706f7365223a2274657374227d7d
Body长度: 54
指令列表为:
AT+HTTPCREATE=0,"http://httpbin.org"\r\n
AT+HTTPCON=0\r\n
AT+HTTPSEND=0,1,5,"/post",,,16,"application/json",88,"6170706c69636174696f6e2f6a736f6e3d7b22666f726d223a7b22707572706f7365223a2274657374227d7d"\r\n
请求结果
2.其他参数的POST请求
其他参数的POST请求,可以完全参考GET请求的方式。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由剑藏锋转载自安信可科技官网,原文标题为:【安信可NB-IoT模组EC系列应用笔记⑥】AT指令HTTP请求一篇就够,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】如何用NB-IoT模组EC系列了解LwM2M协议并接入云平台
安信可本文将介绍如何用NB-IoT模组EC系列了解LwM2M协议并接入云平台,LwM2M作为一种轻量级的、标准通用的物联网设备管理协议,主要面向基于蜂窝的窄带物联网场景下的应用。
【经验】如何使用安信可NB-IoT模组EC系列的MQTT
在IoT行业中,智能家居和远程服务器的通信,常用的就是MQTT协议。EC系列作为一款NB-IoT模组,自然也是支持MQTT协议,在EC的出厂的AT固件中,就集成MQTT的指令,本文将会介绍出厂固件的MQTT指令的具体使用方法及使用实例。
【经验】NB-IoT模组如何使用EC-01F-Kit和GP-01开发板实现广域网通信
本文教大家如何使用NB-IoT模组实现广域网通信,即通过基站把定位数据上传至服务器。硬件选择EC-01F-Kit 开发板+GP-01开发板/GP-02开发板(或EC-01G开发板)来完成。
用NB-IoT技术拧紧燃气“安全阀”:移远NB-IoT模组是理想之选
随着物联网的发展,国内许多城市已经展开了基于NB-IoT技术的智慧燃气建设,燃气也成为首批量产的的NB-IoT行业之一。智慧燃气应用包括可以实现远程数据采集的智能表计设备,监测泄漏燃气浓度的燃气报警器,以及对管线压力、温度等进行监控的燃气管网监测系统等,来实时掌握设备工作状况和故障信息。
夏季暴雨频发,科技能发挥什么作用?移远NB-IoT模组可赋能智能井盖,助力实时监测井盖状态
如何更好地处理由暴雨引发的系列问题,成了社会关注的话题。近年来,随着科技的发展,大数据、云计算、区块链等技术的进步,科技赋能千行百业的同时,越来越多的物联网应用出现在防汛工作中,在暴雨中保障着人们的出行和生命财产安全。
【元件】体积小、功耗低、高度集成的NB-IoT模组,各种无线环境下保持优异的通信性能和稳定性
随着NB-IoT纳入5G标准,LPWAN(低功耗广域网)行业迎来蓬勃的发展机遇。安信可3款NB-IoT系列模组:EC-01、EC-01G和EC-01F。搭载移芯EC616S芯片平台,超低成本、超低功耗和超高集成度的NB-IoT SoC芯片。
安信可科技无线模组选型表
提供安信可科技无线模组选型,封装:DIP/SMD,尺寸:10.3mm*9.9mm*2.4(±0.2)mm-120.0mm*120.0mm*30.0mm,通信接口:UART/GPIO/ADC/PWM/I?C/SPI/Touch senser/PSRAM/SDIO/Duplex I²S/麦克风/扬声器,最大速率:2.5mW-100mW,参考距离:80m-5km,供电电压:1.9V-5.25V
产品型号
|
品类
|
封装
|
尺寸(mm)
|
通信接口
|
最大速率(mW)
|
参考距离(m/km)
|
供电电压(V)
|
空中速率(Kbps/Mbps)
|
天线形式
|
工作温度(℃)
|
NF-01-S
|
2.4G模组
|
DIP-8
|
28.6mm*15.3mm
|
SPI
|
5mW
|
240m
|
1.9V-3.6V
|
250Kbps-2Mbps
|
板载天线
|
-20℃~70℃
|
选型表 - 安信可科技 立即选型
QUECTEL通信模组系列解决方案实现用物联网技术促进人与自然和谐共生
近年来,5G、大数据、云计算、人工智能等数字技术迅速崛起,越来越多的物联网应用投入到生物多样性和生态平衡的保护中,科技成为了守护地球生命力不可或缺的新生力量。作为物联网应用的赋能者,移远通信积极践行社会责任,依托成熟的物联网技术多方位赋能生态文明建设,让人与自然和谐共生成为可能。
有方科技N316 NB-IoT模组通过OpenHarmony测试, 共建稳定、健康的鸿蒙生态
近日,有方科技NB-IoT模组通过OpenHarmony 3.2.2 Release 版本兼容性测评,获得OpenHarmony生态产品兼容性证书。N316模组可广泛适合用于包括智慧燃气、智慧水务、消防烟感、智慧城市等低速率低功耗的物联网通信领域。
搭载移远通信NB-IoT模组BC28的NB-IoT 5G血糖仪,成为慢病管理的得力助手
微策生物推出的NB-IoT 5G血糖仪利用移远通信模组,实现血糖数据的实时监控和传输,提高预防效率和健康水平。该设备自动开机、快速测试,并能通过NB-IoT网络传输数据至管理平台。患者家属和医护人员可实时获取数据,及时干预,降低并发症风险。此外,该血糖仪支持多种试纸,确保测试准确稳定。移远NB-IoT模组的优势保证了数据传输的稳定性和设备的长周期使用,已在多个行业实现规模化应用。
【IC】有方新品超小封装NB-IoT+BLE工业级无线通信模组N306-CN上市,助力物联网应用高效节能
有方科技采用新一代NB-IoT芯片平台推出高集成度、高性能、高安全性、低功耗的超小封装NB-IoT+BLE 5.0工业级无线通信模组N306-CN,为智慧燃气、智慧水务、智慧消防、智慧农业、智慧城市等成熟NB-IoT应用提供了更优选择。
电子商城
服务
拥有IC烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。
最小起订量: 1 提交需求>
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
登录 | 立即注册
提交评论