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

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

3天内不再提示

Air780EP模块 LuatOS开发-MQTT接入阿里云应用指南

合宙LuatOS 2024-07-24 13:51 次阅读

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

wKgZomaglO6ATWkxAAAnEciTEcA879.png
  • 关联文档和使用工具:
  • LuatOS库
  • 阿里云平台

准备工作

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

PC电脑,串口工具

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

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

阿里云介绍

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

wKgaomaglSuAa_NnAADeMZLaRrk330.png

API说明

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

详细的API介绍请参见aLiYun章节

实现流程

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

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

设置地域

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

poYBAGLEW2-AdT4qAABCjTnPQ5E046.png

阿里云操作

产品操作

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

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

具体详细介绍见阿里云页面

wKgZomad-ROAbDglAAk3D7tfPr4720.png

设备操作

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

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

阿里云设备创建

wKgZomad-SuAe5jDABy7wGu063o497.png

连接阿里云

LuatOS-Air方式连接概述

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

文档中用到的API接口见aLiYun API章节。

一机一密LuatOS-Air方式连接

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

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

wKgaomaglX6ARoF5AAJlJa_89ZQ294.png

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

wKgZomaglYaACNnUAAQpYdjzrR0722.pngwKgZomaglYyAaPmbAAIN9E3Nebk817.png

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

wKgZomaglZWAIx9YAAJoLCnffKo458.pngwKgaomaglZ2AbjLmAAH6NrCZfCc810.pngwKgaomaglaSANbjUAAERIbTWGuE203.png

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

wKgZomaglauAX4rCAAKyrMNB99A862.pngwKgaomaglbSAS5HXAADzQUwnVSY106.png

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

wKgaomaglb-AQDDcAADmpYml8EQ017.pngwKgZomaglceAGVzCAAJSU9ywnQI748.png

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

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

wKgaomagldCAB8ZKAAJmkEkqvIw400.png

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

wKgaomagldmAahgFAAJp4sRQJpU232.png

接着打开testYxym.lua,根据后面的操作修改DeviceNameProductKeyProductSecretInstanceId信息。

wKgZomagleCAP7NPAASsqT16LX4947.png

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

wKgZomagleiAZpQZAAMj6kjA_9Y365.pngwKgZomagle-ATZT9AAJ6ju7xkfw758.png

接着将DeviceNameProductKeyProductSecretInstanceId信息填写到testYxym.lua中对应位置。

wKgZomaglfmABupQAAFc16N9SqY956.png

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

wKgZomaglgCAYx5MAADlHFEOEkg353.png

发布与订阅消息

发布消息

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

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

demo里**publishTest()**这个函数演示了接口的操作。无需修改即可实现每20s向阿里云推送一条消息。

--发布一条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编码
paramqos为number类型(0/1,默认1)
returnnil

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

--- 连接结果的处理函数 -- @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. 制作差分升级文件包 生成差分包详细步骤
  3. 阿里云平台上传差分包
wKgaomaglgyAdy6zAATW8tXxko8808.png
  1. 升级包验证
wKgZomaglhOAJti6AALrMgOvIDY242.png
  1. 平台查看升级结果
wKgaomaglhuAAEtvAAIWHOl_B-s097.pngwKgaomagliSAZ2K-AAGCrFTvvEc785.png

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

    关注

    3

    文章

    920

    浏览量

    42775
  • MQTT
    +关注

    关注

    5

    文章

    625

    浏览量

    22273
  • 合宙通信
    +关注

    关注

    0

    文章

    146

    浏览量

    1654
  • LuatOS
    +关注

    关注

    0

    文章

    43

    浏览量

    1892
收藏 人收藏

    评论

    相关推荐

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

    合宙Air780EP模块Lua开发阿里超详细教学!看完包学会!
    的头像 发表于 08-08 09:00 685次阅读
    合宙<b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b>Lua<b class='flag-5'>开发</b><b class='flag-5'>阿里</b><b class='flag-5'>云</b>应用<b class='flag-5'>指南</b>

    MQTT应用看这篇!合宙Air780EP_LuatOS_MQTT应用指南

    Air780EP 是合宙的低功耗4G模组之一,支持LuatOS的脚本二次开发,即使是不太懂技术的老板,也能轻松使用 Air780EP开发产品
    的头像 发表于 08-08 17:13 1124次阅读
    <b class='flag-5'>MQTT</b>应用看这篇!合宙<b class='flag-5'>Air780EP_LuatOS_MQTT</b>应用<b class='flag-5'>指南</b>

    合宙Air780EP模块开发常见问题——异常断链篇

    在用合宙Air780EP模块开发的时候,有时候会遇到收不到网络数据的问题。 这里把遇到的问题和排查方法记录下来,希望能够帮助到大家!
    的头像 发表于 08-09 17:47 2441次阅读
    合宙<b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b><b class='flag-5'>开发</b>常见问题——异常断链篇

    合宙Air780EP模块——AT指令MQTT接入OneNET开发指南

    物联网设备要互动,Air780EP模块是桥梁。用AT指令告诉MQTT:“帮我把话带给OneNET吧!”MQTT就忙着打包数据,像寄信一样传给OneNET。OneNET收到后,处理、存着
    的头像 发表于 08-19 16:40 1510次阅读
    合宙<b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b>——AT指令<b class='flag-5'>MQTT</b><b class='flag-5'>接入</b>OneNET<b class='flag-5'>开发指南</b>

    AT指令速通FTP:合宙Air780EP模块超详细教程

    合宙Air780EP低功耗4G模组AT开发接入FTP超详细示例!
    的头像 发表于 08-20 17:40 1651次阅读
    AT指令速通FTP:合宙<b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b>超详细教程

    合宙 | Air780EP首版LuatOS固件发布,新品模组内测抢先体验

    07日,合宙Air780EP首版LuatOS固件发布。 软件支持已就绪,开发板还会远吗? 合宙Air780EP首版LuatOS固件发布
    的头像 发表于 12-11 12:20 2434次阅读
    合宙 | <b class='flag-5'>Air780EP</b>首版<b class='flag-5'>LuatOS</b>固件发布,新品模组内测抢先体验

    Air780EP模块AT开发FOTA远程升级指南

    Air780EP模块AT开发FOTA远程升级指南简介AT版本的远程升级主要是对AT固件进行升级,实际方式为通过合宙官方IOT平台升级或者使用自己搭建的服务器进行升级服务。关联文档和使用
    的头像 发表于 07-19 15:16 423次阅读
    <b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b>AT<b class='flag-5'>开发</b>FOTA远程升级<b class='flag-5'>指南</b>

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析简介本文档适用于合宙
    的头像 发表于 07-19 15:37 375次阅读
    <b class='flag-5'>Air780</b>E/<b class='flag-5'>Air780EP</b>/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201<b class='flag-5'>模块</b>遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到内存死机如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到内存死机如何分析简介本文档适用于合宙
    的头像 发表于 07-19 16:07 283次阅读
    <b class='flag-5'>Air780</b>E/<b class='flag-5'>Air780EP</b>/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201<b class='flag-5'>模块</b>遇到内存死机如何分析

    Air780EP模块AT开发-MQTT接入阿里应用指南

    简介>使用AT方式连接阿里分为一机一密和一型一密两种方式,其中一机一密又包括HTTP认证二次连接和MQTT直连两种方式>>-关联文档和使用工具:>-[AT固件获取
    的头像 发表于 07-22 14:19 213次阅读
    <b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b>AT<b class='flag-5'>开发</b>-<b class='flag-5'>MQTT</b><b class='flag-5'>接入</b><b class='flag-5'>阿里</b><b class='flag-5'>云</b>应用<b class='flag-5'>指南</b>

    Air780EP模块AT开发-HTTP应用指南

    Air780EP模块AT开发-HTTP应用指南
    的头像 发表于 07-22 14:38 328次阅读
    <b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b>AT<b class='flag-5'>开发</b>-HTTP应用<b class='flag-5'>指南</b>

    Air780EP模块 AT开发-MQTT接入OneNET移动物联网平台应用指南

    应用概述  使用AT方式通过MQTT协议连接onenetstudio。官网地址:https://open.iot.10086.cn/材料准备Air780EP(V)开发板一套,包括天线SIM卡,USB
    的头像 发表于 07-24 14:24 447次阅读
    <b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b> AT<b class='flag-5'>开发</b>-<b class='flag-5'>MQTT</b><b class='flag-5'>接入</b>OneNET移动物联网平台应用<b class='flag-5'>指南</b>

    合宙 Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析简介本文档适用于合宙
    的头像 发表于 08-01 17:27 432次阅读
    合宙 <b class='flag-5'>Air780</b>E/<b class='flag-5'>Air780EP</b>/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201<b class='flag-5'>模块</b>遇到死机问题如何分析

    Air780EP模块FTP应用AT开发详解

    基于合宙Air780EP使用AT指令接入FTP的超详细教程!
    的头像 发表于 08-21 11:16 232次阅读
    <b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b>FTP应用AT<b class='flag-5'>开发</b>详解

    合宙LuatOS开发板Core_Air780EP使用说明

    Core-Air780EP 开发板是合宙通信推出的基于 Air780EP 模组所开发的,包含电源,SIM卡,USB,天线,音频等必要功能的最小硬件系统。以方便用户在设计前期对
    的头像 发表于 09-03 17:38 287次阅读
    合宙<b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>板Core_<b class='flag-5'>Air780EP</b>使用说明