当前位置: 首页 > news >正文

AirCloud平台与excloud扩展库协同实战:核心功能落地案例!

在边缘智能与云边协同日益融合的今天,AirCloud平台以其出色的设备管理与资源调度能力脱颖而出,而excloud扩展库则为平台注入了灵活的功能扩展机制。二者的协同应用,为复杂业务场景提供了强有力的支撑。但如何通过合理配置实现功能最大化,仍需依赖扎实的实战经验。本文将通过多个具有代表性的落地案例,深度解读AirCloud平台与excloud扩展库在核心功能实现过程中的关键技术路径与常见问题应对方案。

本文将以Air780EPM开发板为例,分享AirCloud云平台配置及excloud扩展库的核心功能示例要点。

Air780EPM系列应用示例持续更新中,本示例演示excloud扩展库的完整使用流程,包括:设备连接与认证、数据上报与接收、运维日志管理、文件上传功能、心跳保活机制。

一、示例核心代码解析

以下是excloud的几种典型场景,用户可根据实际需求选择配置方式,完整demo详见源码仓库最新文件。

1.1 回调函数注册与事件处理


1.2 使用GetIP服务连接(推荐)

负载均衡GetIP服务简介:

1)通信协议要求

协议需要兼容老设备,同时兼容负载均衡;

便于扩展到更多二进制数据的上传;

要包含鉴权,上传后要自动归入设备对应的数据里。

2)通信逻辑

负载均衡服务器,支持生成图片上传的url和额外参数;

设备通过调用getip接口,获取图片上传所需要的url和参数列表;

设备在指定条件下(定时/按键触发),使用上述参数执行上传;

设备平台收到数据后,需要展示到页面中。


1.3 使用PC模拟器配置

主要是修改"virtual_phone_number "和"virtual_serial_num "两个参数,以及netdrv_device.lua中的联网方式。


1.4 数据上报功能


1.5 心跳上报功能


1.6 运维日志功能

运维日志功能用作远程查看的设备日志,方便设备部署出去之后,还能远程做日常的诊断可以有效解决设备部署出去之后, 无法查看日志,不方便分析问题的痛点。

1)运维日志的实现方式

在日常运行中,专门开辟四个文件,用于存放代码输出的运维日志。在需要的时候,由Aircloud云平台打开网页,请求设备上传运维日志,然后查看和分析对应日志。

2)运维日志存储机制详解

文件结构:


存储空间管理:

默认大小:

每个文件占用1个block(通常4KB),4个文件共4个block(16KB)。

可配置:

通过(在setup中配置mtn_log_blocks)调整每个文件的大小。

覆盖机制:

采用循环覆盖机制。

上报逻辑:


3)运维日志功能使用

在setup中配置mtn_log_enabled=true即可,然后在代码中使用excloud.mtn_log接口记录。


1.7 图片上传功能


二、云平台配置

2.1 登录IoT平台

先登录IoT平台(iot.openluat.com),如下图所示;没有账号的,可以先注册一个。


2.2 获取项目key

创建新项目或选择现有项目并获取项目key (auth_key),并将获取的项目key配置在代码中。


2.3 查看设备报文

然后使用同样的账号登录AirCloud云平台(iot.luatos.com),查看设备上报报文。


三、示例功能验证

根据实操教程搭建好硬件环境,使用Luatools给开发板烧录内核固件和demo脚本代码,运行并查看日志。

3.1 Luatools日志查看


下发运维日志指令:


3.2 云平台数据查看

AirCloud云平台接收到的设备数据展示:


3.3 远程控制测试

通过AirCloud云平台下发控制命令,观察设备响应。

控制命令下发界面:


设备接收并响应控制命令的日志:


今天的内容就分享到这里了~

http://www.jsqmd.com/news/212127/

相关文章:

  • Linux系统下安装配置 Nginx 超详细图文教程_linux安装nginx
  • 基于STM32的果蔬保鲜系统设计
  • 调研了一下大模型知识蒸馏方向近几年的一些工作
  • MS SQL Server 实战 统计与汇总重复记录
  • 一、CS反恐精英AMXX插件安装(附带安装包)
  • maven导入spring框架
  • 深度学习毕设项目:基于python-CNN的水果识别
  • maxun爬虫机器人介绍与部署
  • Java进阶-SpringCloud设计模式-工厂模式的设计与详解
  • Thinkphp和Laravel框架的高校教室报修管理系统_14oaj0v7
  • 快速查看电脑开机时间
  • JDK17在Windows安装以及环境变量配置(超详细的教程)
  • Python+flask的高校餐饮档口管理系统的设计与实现_6t8pw5bl-Pycharm vue django项目源码
  • Thinkphp和Laravel框架的成都某民宿预订系统的设计与实现_r93v34dv
  • MS SQL Server partition by 函数实战三 成绩排名
  • Thinkphp和Laravel框架的电信学院年终高校考核材料归档平台研究与设计_80664x25
  • Java进阶-在Ubuntu上部署SpringBoot应用
  • Spring Boot Admin与Kubernetes集成监控
  • 【Unity】实现Quad瓦片(MeshRenderer)渲染图集图片
  • 【课程设计/毕业设计】基于python-CNN深度学习的水果识别
  • MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
  • Thinkphp和Laravel框架的茶叶购物网上商城系统 潇湘知茶小程序_dyo5sig5
  • 【状态估计】基于LQR控制和卡尔曼滤波算法实现二维四旋翼的状态估计(噪声传感器数据)附Matlab代码
  • 【毕业设计】基于深度学习python-CNN的水果识别
  • 2026免费好用的AIPPT工具榜:智能演示文稿制作新纪元
  • Thinkphp和Laravel框架的蛋糕甜品烘焙教程微信小程序设计与实现_6uy1k94r
  • Java进阶07 嵌套类
  • 计算机深度学习毕设实战-卷神经网络基于深度学习的土豆疾病识别
  • 【毕业设计】机器学习 基于python-cnn深度学习的罗马数据集训练识别
  • Knife4j文档请求异常(基于SpringBoot3,查找原因并解决)