合宙Air780EP模块Lua开发阿里云应用指南

2024-08-08

简介

  • 针对部分用户在尝试使用合宙Air780EP模块连接阿里云时遇到的挑战,今天我们就来详细讲解一下怎么利用LuatOS连接阿里云!超详细的教程,让你轻松上手!
  • 关联文档和使用工具:
  • LuatOS库
  • 阿里云平台

我在本文简单讲述了利用LuatOS-Air进行二次开发,采用一型一密、一机一密两种方式认证方式连接阿里云。

整体结构如图

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第1张

一、准备工作

  1. Air780EP_全IO开发板一套,包括天线SIM卡,USB线

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第2张

2.PC电脑,串口工具

3.准备设备证书及产品证书 注意:下方证书信息仅为本教程使用,用户需要使用自己的证书信息

-设备证书 { "ProductKey": "k1hipglLdjU", "DeviceName": "868488076506128", "DeviceSecret": "fef32adf6dad46c2c7cbf335d3a7b021" } --产品证书 { "ProductSecret": "8LQwOYSZMwp3DFBd", "ProductKey": "k1hipglLdjU" } --公共实例ID { "InstanceId":"iot-06z00ipoepm2g97" }

阿里云介绍

物联网平台提供安全可靠的设备连接通信能力,支持设备数据采集上云,规则引擎流转数据和云端数据下发设备端。此外,也提供方便快捷的设备管理能力,支持物模型定义,数据结构化存储,和远程调试、监控、运维。阿里云物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制。物联网平台消息通信流程图如下。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第3张

二、API说明

API接口 功能描述
aLiYun.setup() 配置阿里云物联网套件的产品信息和设备信息
aLiYun.setRegion() 设置地域region id
aLiYun.setConnectMode() 设置连接方式
aLiYun.subscribe() 订阅主题
aLiYun.publish() 发布一条消息

三、实现流程

注册接入服务器结果回调函数

在收到true时表示连接成功,本demo中去发布一条QOS为1的消息给阿里云。

设置地域

配置为在阿里云创建项目时所用地区。每个地域完全独立。每个可用区完全隔离,但同一个地域内的可用区之间使用低时延链路相连。地域和可用区之间的关系如下图所示。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第4张

四、阿里云操作

产品操作

打开阿里云平台(找到物联网平台,开通业务后进入控制台。

点开设备管理的产品页面,点击新建产品。根据需求和图示说明创建产品。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第5张

设备操作

创建产品完成后就可以进入设备页面添加设备,在对应产品页面进入设备管理,按照提示添加设备

(在做正式产品时建议使用imei为devicename,方便后期维护)

阿里云设备创建

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第6张

五、连接阿里云

LuatOS-Air方式连接概述

LuatOS-Air连接相比AT更为简单,只需要简单的配置即可连接,还可以灵活的对数据进行处理。需要从官网或者github下载aliyun的脚本包,或者使用luatoolsv2会自动下载脚本资源,在工具根目录的\Luatools\resource\soc_script\v2024.06.25.16\demo\aliyun中脚本资源会随官网同步更新,具体版本可能和本文不同,不过功能都是一致的。

一机一密LuatOS-Air方式连接

一机一密需要提前按照文档中阿里云操作章节事先建好产品并添加设备。

然后找到所使用的脚本版本进入demo目录找到aliyun文件夹打开main.lua,根据下方图示打开这三行的require(如果有被注释掉,将注释去掉),并将其他不相关的注释掉。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第7张

接着打开testYjym.lua,根据后面的操作修改三元组信息(DeviceName、ProductKey、DeviceSecret)和InstanceId信息。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第8张

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第9张

首先将testYjym.lua中的三元组信息(DeviceName、ProductKey、DeviceSecret)修改为自己项目中的三元组信息。通过下方图示可找到自己项目中的三元组信息。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第10张
合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第11张
合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第12张

然后在实例详情页面,找到实例id并将其填写到代码中对应位置。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第13张

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第14张

最后将代码保存,通过Luatools软件将固件+脚本烧录进设备后,便能连接上阿里云了。

这是烧录教程。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第15张

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第16张

一型一密LuatOS-Air方式连接(公共实例)

除了需要添加产品和设备外还需要在阿里云平台中打开对应产品的动态注册开关

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第17张

先找到所使用的脚本版本进入demo目录找到aliyun文件夹打开main.lua,根据下方图示打开这两行的require(如果有被注释掉,将注释去掉),并将其他不相关的注释掉。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第18张

接着打开testYxym.lua,根据后面的操作修改DeviceName、ProductKey、ProductSecret和InstanceId信息。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第19张

其中DeviceName、ProductKey和InstanceId信息的位置在一机一密LuatOS-Air方式连接中已指出。下图为ProductSecret信息的位置。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第20张

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第21张

接着将DeviceName、ProductKey、ProductSecret和InstanceId信息填写到testYxym.lua中对应位置。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第22张

最后将代码保存,通过Luatools软件将固件+脚本烧录进设备后,便能连接上阿里云了。这是烧录教程。 注意:第一次使用一型一密时,设备要处于未激活状态。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第23张

六、发布与订阅消息

发布消息

发布消息使用的是**aliyun.publish(topic,qos,payload,cbFnc,cbPara)**这个API。

传入值类型 释义
string UTF8编码的主题
number qos质量等级,0/1,默认0
string payload 负载内容,UTF8编码
function cbFnc 消息发布结果的回调函数,回调函数的调用形式为:cbFnc(result,cbPara)。result为true表示发布成功,false或者nil表示订阅失败;cbPara为本接口中的第5个参数
param cbPara 消息发布结果回调函数的回调参数
return nil

--发布一条QOS为1的消息 function publishTest() --注意:在此处自己去控制payload的内容编码,aLiYun库中不会对payload的内容做任何编码转换 -- aliyun.publish(topic,qos,payload,cbFnc,cbPara) log.info("aliyun", "上行数据") aliyun.publish("/"..aliyun.opts.ProductKey.."/"..aliyun.opts.DeviceName.."/user/update",1,"LUATOS_CESHI",publishTestCb,"publishTest_"..publishCnt) end

订阅消息

订阅使用的是aLiYun.subscribe(topic, qos)

传入值类型 释义
string 主题内容为UTF8编码
param qos为number类型(0/1,默认1)
return nil

以下代码为订阅的操作,用户可根据自己的项目需要订阅主题。

--- 连接结果的处理函数 -- @bool result,连接结果,true表示连接成功,false或者nil表示连接失败 local function connectCbFnc(result) log.info("aliyun","连接结果", result) if result then sys.publish("aliyun_ready") log.info("aliyun", "连接成功") --订阅主题 --根据自己的项目需要订阅主题 -- aliyun.subscribe(topic,qos) -- aliyun.subscribe("/".. aliyun.opts.ProductKey.."/".. aliyun.opts.DeviceName.."/user/ceshi",1) --PUBLISH消息测试 publishTest() else log.warn("aliyun", "连接失败") end end

七、OTA升级

  1. 建立项目并接入阿里云
  2. 制作差分升级文件包 生成差分包详细步骤(

    https://doc.openluat.com/wiki/37?wiki_page_id=4578#__132

  3. 阿里云平台上传差分包

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第24张

4.升级包验证

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第25张

5.平台查看升级结果

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第26张
合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第27张


总结


通过上面的步骤,现在的你应该能够成功使用LuatOS将合宙Air780EP模块连接到阿里云IoT平台了吧。

这不仅为您的物联网项目提供了强大的云端支持,也为后续的数据处理、远程控制等功能奠定了坚实的基础。

希望本文的详细指导能够帮助您顺利解决连接问题,让您的物联网项目更加顺畅地运行。

合宙支持LuatOS开发的模组型号,除本文介绍的Air780EP外, 还有Air780EPA、Air780E、Air780EX、Air201、Air780EPT、Air780EPS等型号, 本文介绍的接入阿里云的流程,同样也适用于这些型号。

合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第28张
合宙Air780EP模块Lua开发阿里云应用指南 (https://ic.work/) 技术资料 第29张




文章推荐

相关推荐