0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

4G 模组 HTTP 网络协议应用 白嫖版!

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-10-30 14:22 次阅读

今天我们来白嫖的是Air780E模组LuatOS开发4G通信中HTTP网络协议的应用,实现模组和服务器之间数据的传输,详细介绍硬件环境、软件环境、功能验证等…

1、HTTP概述

1.1 简介

HTTP是HyperTextTransferProtocol(超文本传输协议)的缩写。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS,所以HTTPS相关的指令只需要参考SSL部分配置连接,其他和http都是一样的。

HTTP协议的_主要应用场景_有:基于浏览器的网页获取与表单提交、文件上传与下载、移动应用、物联网设备的数据上报等。

1.2 请求报文

wKgZoWchyiCASVusAADoAVkxpR0334.png

●method:请求方法,GET和POST是最常见的HTTP方法。

●URL:为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。

●Version:协议名称及版本号。

●Headerlines:HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息

●Entitybody:是报文体,它将一个页面表单中的组件值通过param1=value1&m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。

●请求报文示例如下:

wKgaoWchyj2AFbtzAAPQ64HNwo0363.png

1.3 响应报文

wKgaoWchyleAYdd2AAGTBfu5Kao390.png

●version:报文协议及版本。

●statuscode:状态码及状态描述。

●phrase:原因短语。

●Headerlines:响应报文头。

●Entitybody:响应报文体,即我们真正要的内容。

●响应报文示例如下:

wKgaoWchyn-Af2vGAAGsgktgiNk689.png

注意:sp表示空格,crlf表示回车换行,报文头和报文体之间要有一行空格

1.4 HTTP请求方法

HTTP客户端发出请求,告知服务端需要执行不同类型的请求命令,这些命令被称为HTTP方法。

●GET:获取资源方法

●POST:传输实体数据方法

●HEAD:获取头部报文方法

●PUT:传输文件方法

●DELETE:删除指定资源方法

1.5 HTTP状态码

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:

●信息响应(100–199),信息响应中,服务器收到请求,需要请求者继续执行操作;

●成功响应(200–299),信息响应成功,操作被成功接收并处理;

●重定向,需要进一步操作(300–399),信息需要被重新定向,需要进一步的操作以完成请求;

●客户端错误(400–499),客户端错误,请求包含语法错误或无法完成请求;

●服务器错误(500–599),服务器错误,服务器在处理请求的过程中发生了错误。

2演示功能概述

本文教你合宙4G模组使用LuatOS开发4G通信中http网络协议的应用,实现模组和服务器之间数据的传输!

教程实现的功能定义是:

使用Air780E核心板下载Air780的LuatOS示例代码中http的例程进行验证,包含get请求,post请求,文件上传,文件下载等功能。

3、硬件环境

3.1 Air780E核心板

使用Air780E核心板。

此核心板的详细使用说明参考:Air780E产品手册中的<<开发板Core_Air780E使用说明VX.X.X.pdf>>,写这篇文章时最新版本的使用说明为:开发板Core_Air780E使用说明V1.0.5.pdf;核心板使用过程中遇到任何问题,可以直接参考这份使用说明pdf文档。

3.2 SIM

中国大陆环境下,可以上网的sim卡,一般来说,使用移动,电信,联通的物联网卡或者手机卡都行;

3.3 PC电脑

WINDOWS系统,其他暂无特别要求;

3.4 数据通信线

USB数据线,暂无特别要求;

4、软件环境

4.1 Luatools工具

要想烧录AT固件到4G模组中,需要用到合宙的强大的调试工具:Luatools;

详细使用说明参考:Luatools工具使用说明。

Luatools工具集具备以下几大核心功能:

一键获取最新固件:自动连接合宙服务器,轻松下载最新的合宙模组固件。

固件与脚本烧录:便捷地将固件及脚本文件烧录至目标模组中。

串口日志管理:实时查看模组通过串口输出的日志信息,并支持保存功能。

串口调试助手:提供简洁的串口调试界面,满足基本的串口通信测试需求。

Luatools下载之后,无需安装,解压到你的硬盘,点击Luatools_v3.exe运行,出现如下界面,就代表Luatools安装成功了.

4.2 准备需要烧录的代码

首先要说明一点:脚本代码,要和固件的bin文件一起烧录。

4.2.1 烧录的底层固件文件

底层core下载地址:LuatOS固件版本下载地址

wKgZoWchys2AXUqYAAFD1GnW3pA704.png

Air780E的底层固件在Luatools解压后目录的LuatOS-SoC_V1112_EC618_FULL.soc

wKgZoWchyuSAIB5MAADxCQ_P09M775.png

4.2.2 烧录的脚本代码

首先要下载Air780的LuatOS示例代码到一个合适的项目目录,示例代码网站:https://gitee.com/openLuat/LuatOS-Air780E

下载流程参考下图:

wKgZoWchywaAOOKUAARZCpO3B2Q259.png

下载的文件解压,找到

LuatOS-Air780E-masterdemohttpmain.lua,如图:

wKgaoWchyzWAJgy1AADtNHKY2_o604.png

4.3 烧录步骤

4.3.1 正确连接电脑和4G模组电路板

使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线;

4.3.2 识别4G模组的boot引脚

在下载之前,要用模组的boot引脚触发下载,也就是说,要把4G模组的boot引脚拉到1.8v,或者直接把boot引脚和VDD_EXT引脚相连。我们要在按下BOOT按键时让模块开机,就可以进入下载模式了。

具体到Air780E开发板:

1、当我们模块没开机时,按着BOOT键然后长按PWR开机。

2、当我们模块开机时,按着BOOT键然后点按重启键即可。

4.3.3 识别电脑的正确端口

判断是否进入BOOT模式:模块上电,此时在电脑的设备管理器中,查看串口设备,会出现一个端口表示进入了boot下载模式,如下图所示:

wKgaoWchy1uAA9CHAAIDDiN8Izs498.png

当设备管理器出现了3个连续数字的com端口,并且每个数字都大于4,这时候,硬件连接上就绪状态,恭喜你,可以进行烧录了!

4.3.4 用LuatOS工具烧录

新建项目

首先,确保你的Luatools的版本,上大于3.0.6版本的。

在Luatools的左上角上有版本显示的,如图所示:

wKgaoWchy3GAB9w9AAFGnb0t-_M317.png

Luatools版本没问题的话,就点击LuaTOols右上角的“项目管理测试”按钮,如下图所示:

wKgZoWchy4mATiX9AAGABdTyE0k416.png

这时会弹出项目管理和烧录管理的对话框,如下图:

wKgZomchy5uAOdR8AAKtKOOA9J0734.png

开始烧录

选择780E板子对应的底层core和刚改的main.lua脚本文件。下载到板子中。

wKgZoWchy7CAA4o_AALyvk9vu3I012.png

点击下载后,我们需要进入boot模式才能正常下载。

wKgaoWchy8KANVQXAAGAmk-sf7c260.png

5API说明

http客户端:

http.request(method,url,headers,body,opts,ca_file,client_ca,client_key,client_password)

参数

传入值类型 解释
string
请求方法,支持GET/POST等合法的HTTP方法
string
url地址,支持http和https,支持域名,支持自定义端口
tabal
请求头可选例如{[“Content-Type”]=“application/x-www-form-urlencoded”}
string/zbuff
body可选
table
额外配置可选包含timeout:超时时间单位ms可选,默认10分钟,写0即永久等待dst:下载路径,可选adapter:选择使用网卡,可选debug:是否打开debug信息,可选,ipv6:是否为ipv6默认不是,可选callback:下载回调函数,参数content_len:总长度body_len:以下载长度userdata用户传参,可选userdata:回调自定义传参
string
服务器ca证书数据,可选,一般不需要
string
客户端ca证书数据,可选,一般不需要,双向https认证才需要
string
客户端私钥加密数据,可选,一般不需要,双向https认证才需要
string
客户端私钥口令数据,可选,一般不需要,双向https认证才需要

返回值

返回值类型 解释
int
code,服务器反馈的值>=100,最常见的是200.如果是底层错误,例如连接失败,返回值小于0
tabal
headers当code>100时,代表服务器返回的头部数据
string/int
body服务器响应的内容字符串,如果是下载模式,则返回文件大小

创建HTTP客户端

wKgaomchy_yAahSfAATO0zjNbmY251.png

6、功能验证

6.1 GET请求

HTTPGET请求是一种用于从指定资源URI(统一资源标识符)请求数据的HTTP方法。它通常用于请求服务器发送资源(如HTML页面、图片等)给客户端,且请求信息包含在URL中。

下面根据demo演示HTTP的GET请求用法,示例代码如下(具体demo可以点此链接跳转)

示例如下:

wKgZoWchzC6AZeNvAAUGZGKq_Ko389.pngwKgaoWchzE2AaCgeAAF30jGnFtM892.png

对应log:

wKgaoWchzF-AAvsTAADqI_02Zow137.png

6.2 POST请求

HTTPPOST请求是一种HTTP方法,用于向指定的资源提交数据。与GET请求不同,POST请求的数据包含在请求体中,可以提交大量数据且数据不会显示在URL中,常用于提交表单数据或上传文件等操作。

下面根据demo演示HTTP的POST请求方法提交一个表单,示例代码如下(具体demo可以点此链接跳转)

示例:

wKgZomchze2AD6X_AAPstgbqdf0505.pngwKgaomchzbGAPNC7AAIMNvzzi-E303.png

对应log:

wKgZomchzgiARB76AAEVlfDhJtY646.png

6.3 文件上传

HTTPPOST请求在文件上传场景中发挥着关键作用。用户通过POST请求可以将文件数据包含在请求体中发送给服务器,而不是像GET请求那样通过URL传递。这种方式允许上传大量数据,包括各种类型的文件,如图片、视频、文档等。服务器接收到请求后,会解析请求体中的文件数据,并存储到服务器上相应的位置。文件上传是HTTP应用中常见的功能。

下面根据demo演示HTTP文件上传的功能,示例代码如下(具体demo可以点此链接跳转)

示例:

wKgZoWchziCAYBNxAAPKGg3cW68000.pngwKgZoWchzkOAY9FhAAUKMOq0DI8547.pngwKgZoWchzm2AUt-tAAUUVvr8Dkg233.pngwKgZoWchzpSAHl98AARflI_dsgo849.pngwKgaomchzqWADE9GAAHWVdmWosY525.png

对应log:

wKgZomchzraAetJJAAFXFT_WpHs869.png

6.4 文件下载

下面根据demo演示HTTP文件下载的功能,示例代码如下(具体demo可以点此链接跳转)

示例:

wKgaomchz_-AZ-DIAAOk64EGdHA868.png

对应log:

wKgaomch0BWAOjxLAASQ1RBMzT0405.png

6.5 处理JSON数据

处理json数据主要有两个函数,json.encode(t)和json.decode(str),参考示例代码:

https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/json

wKgaomch0CiASFZwAAFQHhdk4ng460.png

6.6 压缩和解压

这个例程用和风天气的api做演示,请求到的数据配合miniz库进行解压,示例代码如下(具体demo可以点此链接跳转)

示例:

wKgZomch0D-AFyHpAAHb1fIY5L8858.png

对应log:

wKgZoWch0FGAaMPXAAKEYUEPqiY239.png

也可以参考例程:

https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/miniz

wKgZoWch0GaAZKc5AAIaoFWem_w302.png

7、总结

本文档主要介绍4G通信中http网络协议的应用。讲解了HTTP基本原理,GET和POST请求,以及文件上传下载、HTTPS加密、JSON数据处理和数据压缩等高级功能,直接烧录例程即可测试,旨在实现高效、安全的数据传输。

8、常见问题

8.1 HTTP支持多连接吗

目前HTTP仅支持单连接,不支持多连接。

8.2 重试多次PDP,HTTP应用一直连接失败

如果重试多次PDP激活,PDP一直激活失败,或者HTTP一直请求应答失败,则尝试使用如下手段恢复:

1、使用RESET引脚复位模块

2、极端情况下,直接给模块断电,再上电,POWERKEY引脚拉低开机

8.3 为什么我只发了10字节消息,100次却消耗了那么多流量?

因为还有HTTP自带的请求头。如何统计流量

8.4 为什么频繁请求会失败?

支持的http连接总数有限数量为tcp连接数量8个,建议一个http连接返回请求结果之后,再去请求下一个连接;不要使用循环定时器方式不断的发起新的http请求。

8.5 专网卡访问白名单

用定向Ip的物联网卡,需要把域名或IP加入白名单才能使用。如果不加入白名单会出现无法访问服务器的情况.

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 4G
    4G
    +关注

    关注

    15

    文章

    5485

    浏览量

    118671
  • 物联网
    +关注

    关注

    2900

    文章

    43892

    浏览量

    369537
  • 网络协议
    +关注

    关注

    3

    文章

    260

    浏览量

    21486
  • HTTP
    +关注

    关注

    0

    文章

    498

    浏览量

    30926
  • LuatOS
    +关注

    关注

    0

    文章

    54

    浏览量

    1912
收藏 人收藏

    评论

    相关推荐

    篇:4G 模组 MQTT 通信功能!

    今天我们的是4G 模组 MQTT 通信功能!以AIR708E开发板为例 从MQTT介绍,演示功能概述,准备硬件环境,准备软件环境,代码示例介绍等给大家展示明白
    的头像 发表于 10-30 14:53 167次阅读
    <b class='flag-5'>白</b><b class='flag-5'>嫖</b>篇:<b class='flag-5'>4G</b> <b class='flag-5'>模组</b> MQTT 通信功能!

    #硬声创作季 #4G模块 4G&图传-08 4G网络SOCKET协议TCP双向透传

    4G网络移动芯片4G模块
    水管工
    发布于 :2022年11月12日 14:19:14

    4G网络的概念

    自从有了3G,就开始了对4G的畅想与建设。如今3G网络搞的如火如荼,三大运营商不断针对自己的优势调低资费,吸引用户,以扩大市场占有率;与此同时,4G
    发表于 07-15 06:04

    MiniPCIE 封装4G模组价值仍在

    领域,实现M2M领域的较高速联网通讯。 目前市面上的4G模组封装大概主要分两种形态,贴片式和miniPCIE式; 贴片式的模组应用很普遍,但是miniPCIE形态的模组也广泛应用于各种
    发表于 02-21 11:57

    Xray高级版如何破解?

    Xray高级版破解指南
    发表于 11-06 06:50

    4g网络是什么意思_4g手机介绍

    4g网络介绍 1.1 4g网络是什么意思? 4G是第四代移动通信及其技术的简称,是集3G与WLA
    发表于 09-17 17:36 6.5w次阅读

    移动4G是什么?4G网络能做什么?怎么用?

    面对越来越近的移动4G网络,你是否了解?本文就移动4G网络是什么,4G网络能做什么,怎么用等问题
    发表于 05-24 14:16 15w次阅读

    4G模组

    4G模组:CR100IP-AHD-TF1-1F
    发表于 03-21 20:02 0次下载

    4G模块是什么4G模块的类别4G模块的选择

    ,具备通讯更快、互联网频带宽、通讯灵活性等特性。4G模块就是指硬件设备载入到特定频率段,手机软件兼容规范的LTE协议书,硬件软件高宽比集成化模组化的一种商品的通称。硬件设备将频射、基带集成化在一块PCB
    的头像 发表于 10-24 18:56 5.1w次阅读

    4G模组4G模块是什么?4G模组4G模块的平台?4G模组4G模块怎么选?ASR RDA 高通

    频带宽、通讯灵活性等特性。4G模块就是指硬件设备载入到特定频率段,3GPPP规范的LTE协议书,硬件软件高度集成化模组化通称。硬件设备将
    的头像 发表于 06-07 19:50 1.5w次阅读

    工业级4G路由器模组的功能

    咱实诚的工程师较真了将无线CPE解决方案工业级4G路由器模组带到户外深山进行了网速,信号等测试。虽然稳定不掉线,但还是具备有有线/4G/WIFI智能切换备份的功能,有线网络断开可以自动
    发表于 08-24 10:35 870次阅读

    4G终端主板盒测试报告

    4G终端主板盒测试报告
    发表于 09-30 16:35 17次下载

    大彩串口屏4G应用-HTTP定位和获取天气

    大彩串口屏4G应用-HTTP定位和获取天气:本例程中,通过获取天气、定位来介绍4GHTTP GET的应用。
    的头像 发表于 07-22 16:40 1794次阅读
    大彩串口屏<b class='flag-5'>4G</b>应用-<b class='flag-5'>HTTP</b>定位和获取天气

    大彩串口屏4G应用-HTTP下载文件

    大彩串口屏4G应用-HTTP下载文件:本例程中,介绍4GHTTP下载的应用,通过下载图片、视频、音频说明下载流程。
    的头像 发表于 07-26 14:56 1434次阅读
    大彩串口屏<b class='flag-5'>4G</b>应用-<b class='flag-5'>HTTP</b>下载文件

    5G4G的区别 5g网络4g网络耗电吗?5g功耗是4g的多少倍?

    5G4G的区别 5g网络4g网络耗电吗?5g功耗
    的头像 发表于 10-19 17:08 3230次阅读