超全开发流程!低功耗Air724UG模组LuatOS开发:HTTP示例

随着物联网技术的飞速发展,低功耗无线通信模组在各种智能设备中得到了广泛应用。本文将详细介绍如何使用Air724UG模组基于LuatOS系统进行HTTP请求开发,帮助开发者快速上手,实现设备与互联网的高效通信。

一、HTTP 概述

此部分内容只是简单的对HTTP作一个介绍,更详细的说明或协议文档,请查阅相关网站或文档。

1.1 HTTP 请求方法

HTTP/1.1 协议中共定义了八种方法来以不同方式操作指定的资源。

a.GET

向指定的资源发出请求。使用 GET 方法应该只用在读取数据。

b.HEAD

与 GET 方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。

c.POST

向指定资源提交数据,请求服务器进行处理,例如上传文件。

d.PUT

向指定资源位置上传其最新内容。

e.DELETE

请求服务器删除 Request-URI 所标识的资源。

f.TRACE

回显服务器收到的请求,主要用于测试或诊断。

g.OPTIONS

这个方法可使服务器传回该资源所支持的所有 HTTP 请求方法。用’*'来代替资源名称,向 Web 服务器发送 OPTIONS 请求,可以测试服务器功能是否正常运作。

h.CONNECT

HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。通常用于 SSL 加密服务器的链接。

HTTP 服务器至少应该实现 GET 和 HEAD 方法,其他方法都是可选的。

1.2 HTTP 状态码

状态代码的第一个数字代表当前响应的类型:

1xx 消息——请求已被服务器接收,继续处理

2xx 成功——请求已成功被服务器接收、理解、并接受

3xx 重定向——需要后续操作才能完成这一请求

4xx 请求错误——请求含有词法错误或者无法被执行

5xx 服务器错误——服务器在处理某个正确请求时发生错误

RFC 2616 中已经推荐了描述状态的短语,例如"200 OK",“404 Not Found”。

1.3 URL 链接地址

超文本传输协议(HTTP)的地址包含五个基本元素,分别是:

a.传送协议, 层级 URL 标记符号(为[//],固定不变) 访问资源需要的凭证信息服务器,一般情况下为域名,也可以使用 IP 地址。

b.端口号,以数字方式表示,HTTP 默认为”:80“,默认值可不给出。

c.路径,字符“/”区别路径中的每一个目录名称。

d.查询,GET 模式的窗体参数,用“?”字符作为起点,每个参数用“&”隔开,再以“=”分开参数名称与数据。

e.片段,以“#”字符为起点。

由于超文本传输协议允许服务器将浏览器重定向到另一个网页地址,因此许多服务器允许用户省略网页地址中的部分内容,比如 www。

本文通过几个具体的例子,演示 http 与 https 协议的具体实现。

二、功能演示概述

2.1 演示内容

本文通过作者自身的使用经历与实践,给大家演示 http 的常见操作与使用,包括:

a.get 方法的实现;

b.post 方法的实现;

c.文件的上传操作;

d.文件的下载操作;

e.https 加密通讯;

f.处理 JSON 数据;

g.gzip 操作。

三、硬件环境准备

3.1 开发板准备

本文所涉及到的所有演示,都使用开发板 EVB_Air724UG_A14 完成

此核心板的详细使用说明参考:

https://docs.openluat.com/air724ug/product/

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

3.2 开发板的接线方式

首先将开发板放置好,接上 USB 并连接到电脑,同时,记得将天线也连接好,保证信号环境比较良好,比如可以看看手机信号来判断一下所在环境的信号状况。USB 的连接如上图所示。

在上图中,连接 USB 的插口旁边有一个 USB 字样,在进行脚本下载时,须连接此端口。旁边另一个 USB 插口是 USB 转 UART 的接口,可以通过串行口工具查看调试 TRACE 信息。在本文的测试环境中,使用 USB 打印 trace,即在 Luatools工具中,将软件上的"usb 打印 trace"选中即可,不必再另外连接串行口监视打印 trace 的相关信息。

3.3 固件操作相关内容

a.Luatools,是下载固件与脚本必不可少的工具,并且使用其查看 TRACE 调试信息也非常方便。

https://docs.openluat.com/Luatools/

b.Luatools 工具的使用请参阅:

https://docs.openluat.com/blog/Luatools/

c.远程固件升级请参阅:

https://docs.openluat.com/blog/fota_lesson/

d.USB 驱动安装请参阅:

https://docs.openluat.com/blog/usb_drv/

四、软件环境准备

4.1 Lua 脚本语言

本文以 Lua 脚本语言为基础,因而需要有 Lua 脚本语言基础,可以通过下列文档了解:

Lua 脚本语言的语法,请参阅:

https://wiki.luatos.com/luaGuide/luaReference.html#lua-5-3

https://docs.openluat.com/blog/lua_lesson/

4.2 Lua 脚本语言的 http 接口 API

本文既然是说 http,除了在 http 概述内的简单说明,还有必要对 Lua 脚本语言的 API 有一个了解。http 的 API 接口定义如下面的代码。我之所以贴出下面这段定义代码,三个方面的原因。

a.首先当然是注释说明中有较明晰的 http 协议结构的定义;

b.其次对参数的解释说明比演示文档 testHttp.lua 文件内容更全面,更有利于读者对各个参数形式有一个了解。比如,传递证书就有了较明晰的表达式形式,这样也方便大家组织参数时,能做到心里有数;

c.最后是给出了不少调用示例,而这些示例在 testHttp.lua 文档内没有或者不全面,而此处的示例能起到一个很好的补充。

关于 http 接口的具体说明,读者还可以查询其它相关资料或参考其它文件档。

4.3 辅助工具

为了有效的分析开发过程中可能遇到的问题,并能查看数据,准备一些辅助工具很有必要,将大大缩短大家解决问题的时间。本文编写过程中,使用了几款工具介绍给大家,本文在后面将使用用或提到这些工具,请大家先了解。

1)Progress Telerik Fiddler Classic,抓包工具。

https://downloads.getfiddler.com/fiddler-classic/FiddlerSetup.5.0.20244.10953-latest.exe

2)Postman,API 调试平台工具,可以方便的验证本文所提到的各种操作。

https://dl.pstmn.io/download/latest/win64

3)httpbin.org,一个很不错的 API 调试网站,本文有关 http 的不少内容的演示,即使用本网站完成。

五、Luatools 的基本使用

5.1 准备演示代码

本文使用 air724 模块的演示代码 testHttp 作为蓝本,在此基础上进行修订删改,来完成本文第二章中所提到的内容。该演示蓝本有两个文件,分别为 main.lua、testHttp.lua 两个文件。大家如果了解可以跳过,如果不熟悉又不想去费劲下载资源,可以直接复制使用。testHttp.lua 随着本文的测试进行,会有所修订,本文最后会给出完整的包含所有修订的文件。

5.2 使用 Luatools 工具

按照本文的第三章第 2 节所描述的方式连接好开发板后,确认无误后,我们就可以启动 Luatools 工具,如下图所示。点击界面中“项目管理与测试”按钮,出现下图所示的窗口,点击“创建项目”,并输入项目名称,如本文建立的项目名称为 http_doc。

项目建立完成后,点添加脚本或资源文件,按上节所说将蓝本 main.lua 与 testHttp.lua 添加上去,如图所示。

将"usb 打印 trace”使能,“添加默认 lib”选中。

完成上面的操作后,还要选择底层 CORE。因为合宙模块有各种资源,不同的底层 CORE 支持的内容不同,这些底层内核一般安装在工具所在目录的 ressoure 子目录下。打开此目录,会有不同的选择,如图。因为 724ug 模块属于 8910 平台,所以我们要选择 8910 的某一个内

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值