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

简介

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

在这里插入图片描述

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

准备工作

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

在这里插入图片描述

  1. PC电脑,串口工具

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

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

阿里云介绍

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

在这里插入图片描述

API说明

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

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

实现流程

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

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

  • 设置地域

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

在这里插入图片描述

阿里云操作

产品操作

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

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

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

在这里插入图片描述

设备操作

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

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

阿里云设备创建

在这里插入图片描述

连接阿里云

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(如果有被注释掉,将注释去掉),并将其他不相关的注释掉。

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

发布与订阅消息

发布消息

发布消息使用的是**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 thensys.publish("aliyun_ready")log.info("aliyun", "连接成功")--订阅主题--根据自己的项目需要订阅主题-- aliyun.subscribe(topic,qos)-- aliyun.subscribe("/".. aliyun.opts.ProductKey.."/".. aliyun.opts.DeviceName.."/user/ceshi",1)--PUBLISH消息测试publishTest()elselog.warn("aliyun", "连接失败")end
end

OTA升级

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

在这里插入图片描述

  1. 升级包验证

在这里插入图片描述

  1. 平台查看升级结果

在这里插入图片描述

生成差分包详细步骤
3. 阿里云平台上传差分包

[外链图片转存中…(img-MIHcoZW0-1721798317814)]

  1. 升级包验证

[外链图片转存中…(img-MroD0eJ6-1721798317815)]

  1. 平台查看升级结果

[外链图片转存中…(img-ng3LEiZw-1721798317816)]

在这里插入图片描述
如有需要,请点击 www.openluat.com 获取联系方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/49952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品经理-​统计数据是如何产生的(20)

在互联网当中,监测一个项目的实际情况,在产品当中,往往需要进行数据的监测,看用户的习惯,进而进行对产品进行优化,比如统计产品用户的一些行为,鼠标点击,鼠标hover,停留时长,进入,进出等 产品经理看到的数据统计一般是经历了下面几个阶段 数据埋点:这个阶段产品经理…

RK3568笔记四十三:MPU6050驱动开发(硬件I2C_3)

若该文为原创文章,转载请注明原文出处。 正点原子提供的I2C有测试ap3216c,SH3001等传感器,根据手册操作可以实现效果。 这里记录使用I2C3驱动MPU6050. 记录原因是前面有模拟I2C,但硬件如何使用,有点不是很清楚&#…

猫头虎分享:GPT-4o Mini VS GPT-3.5 Turbo 新旧对决,谁能拔得头筹?

GPT-4o Mini VS GPT-3.5 Turbo 🌟 新旧对决,谁能拔得头筹? 我们正在进入廉价语言模型的新时代 🚀 阅读时间:6分钟 摘要: 尽管 GPT-4o 功能强大,但我并不经常使用它。如果我正在寻找一个用于复…

【Hec-Ras】案例1:韩国Seung-gi stream稳定流/非稳定流模拟

Hec-Ras案例1:韩国Seung-gi stream 研究区域:Seung-gi stream(韩国)研究数据降水数据(Rainfall data) 步骤1:创建工程文件/打开已有工程文件步骤2:参数调整步骤2.1:数据导…

mysql 数据库空间统计sql

mysql 数据库空间统计 文章目录 mysql 数据库空间统计说明一、数据库存储代码二、查询某个数据库的所有表的 代码总结 说明 INFORMATION_SCHEMA Table Reference 表参考 information_schema是‌MySQL中的一个特殊数据库,它存储了关于所有其他数据库的元数据信息。…

D4.前缀和、差分

前缀和 一维前缀和(区间) 这样的好处是,可以以O(1)的时间复杂度来计算。而不是遍历O(n)。当读入数据非常大(>1000000)的时候,建议使用scanf()来读取数据,会比cin >> 快很多。在全局开…

享元模式(结构型)

目录 一、前言 二、享元模式 三、总结 一、前言 享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少大量细粒度对象的内存占用。它通过共享尽可能多的相同数据来节约内存空间。 享元模式由以下角色组成: Flyweight&…

「JavaEE」Spring MVC:基本操作1

🎇个人主页:Ice_Sugar_7 🎇所属专栏:JavaEE 🎇欢迎点赞收藏加关注哦! 简介 Spring Web MVC 是⼀个 Web 框架,简称为 Spring MVC MVC 是 Model View Controller 的缩写,它是软件工程…

vscode回退不显示了,不方便操作

一、后退前进按钮 顶部显示&#xff0c;方便调试 <—— ——> 文件-> 首选项 -> 设置->commandcenter->勾选 Window: Title Bar Style->custom 将native —>custom

力扣每日一题1186. 删除一次得到子数组最大和【动态规划】

本题的核心在于对于每个元素&#xff0c;我们分别考虑保留和删除两种状态&#xff0c;并根据前面的状态转移来更新当前状态。最后&#xff0c;遍历所有元素&#xff0c;找到最大和即可。 状态定义 dp[i][0] 表示以第 i 个元素结尾且未删除元素的子数组的最大和。dp[i][1] 表示…

Qemu virtio-blk 后端驱动开发 - PureFlash对接

本文以PureFlash为例&#xff0c;介绍了如何将一个新的存储类型对接到qemu虚拟化平台下&#xff0c;为虚机提供存储能力。 关于virtio-blk以及其工作原理这里就不介绍了&#xff0c;网上有很多分析的文章。总之就是如果我们想给虚机提供一种新的存储类型&#xff08;不同于标准…

【日常记录】【JS】对一个数组,按照某个字段的值,进行分组

文章目录 1. 前言2. lodash 的分组3. Object.groupBy()参考链接 1. 前言 在开发中&#xff0c;经常会遇到一组数据&#xff0c;要按照某个字段进行分组&#xff0c;这个时候会有很多种方法&#xff0c;可以使用 forEach、reduce、等其他方法 reduce 方法 function groupBy(arr…

LLama 405B 技术报告解读

LLama 405B 技术报告解读 果然传的消息都是真的&#xff0c;meta在24号凌晨发布了llama 3的405B版本&#xff0c;这次还是做一个技术报告解读。 值得一提的是&#xff0c;在技术报告的开头&#xff0c;meta特意强调了一个 Managing complexity&#xff0c;大意是管控复杂度。…

主题公园- 海豹主题式风格餐厅设计【AIGC应用】

业务背景&#xff1a;海洋馆针对细分客群增设一个打卡主题点位&#xff0c;以海豹主题式餐厅为打卡卖点&#xff0c;效果参见海豹主题式风格。 AIGC概念图制作平台&#xff1a;&#xff08;可灵&#xff09; https://klingai.kuaishou.com/ 关键词&#xff1a; 海豹主题餐厅…

Blender插入关键帧的位置报错

在操作过程中&#xff0c;有时候是误操作或者是做动画选择了活动插帧集&#xff0c;导致按i键插入关键帧一直报提示&#xff1a;插入关键帧的帧位置或者是其他的报错弹窗。 1、解决方法是&#xff1a;在时间线的抠像(插帧)选项里&#xff0c;将活动插帧集给清空 2、若是骨骼动画…

Ubuntu 修改源地址

注意事项&#xff1a;版本说明&#xff01;&#xff01;&#xff01; Ubuntu24.04的源地址配置文件发生改变。 不再使用以前的 sources.list 文件&#xff0c;该文件内容变成了一行注释&#xff1a; # Ubuntu sources have moved to /etc/apt/sources.list.d/ubuntu.sources…

操作系统面试知识点总结2

#来自ウルトラマンメビウス&#xff08;梦比优斯&#xff09; 1 进程与线程 1.1 进程的概念和特征 更好地描述和控制程序并发执行&#xff0c;实现操作系统的并发性和共享性。 进程控制块&#xff08;PCB&#xff09;&#xff1a;更好的描述进程的基本情况和运行状态&#xff…

Eclipse 搭建 C/C++ 开发环境以及eclipse的使用

一、下载、安装 MinGW 1、下载: 下载地址&#xff1a;MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.net 点击“Download Latest Version”即可 下载完成后&#xff0c;得到一个名为 mingw-get-setup.exe 的安装文件。双击运行&#xff0c;安装即可。 …

大数据、区块链与人工智能

大数据、区块链与人工智能&#xff1a;技术融合与未来展望 摘要 本文旨在探讨大数据、区块链和人工智能这三个技术领域的基本概念、发展历程、应用场景及其相互之间的融合。文章首先分别介绍这三个技术的定义和特点&#xff0c;然后分析它们在不同行业中的实际应用&#xff0…

Llama 3.1发布,性能媲美最强闭源大模型

美国太平洋时间 7 月 23 日&#xff0c;Meta 公司发布了其最新的 AI 模型 Llama 3.1&#xff0c;这是一个里程碑时刻。Llama 3.1 的发布让我们看到了开源 LLM 有与闭源 LLM 一较高下的能力。 Meta 表示&#xff0c;“到目前为止&#xff0c;开源 LLM 在功能和性能方面大多落后于…