aliyun windows开启远程_阿里云物联网平台远程配置功能JAVA 示例参考
概述
很多场景下,开发者需要更新设备的配置信息,包括设备的系统参数、网络参数、本地策略等。通常情况下,是通过固件升级的方式更新设备的配置信息。但是,这将加大固件版本的维护工作,并且需要设备中断运行以完成更新。为了解决上述问题,物联网平台提供了远程配置更新的功能,设备无需重启或中断运行即可在线完成配置信息的更新。本文主要演示如何使用JAVA SDK实现两种应用场景。
原理说明
1、物联网平台提供的远程配置功能,支持:
- 开启/关闭远程配置。
- 在线编辑配置文件,并管理版本。
- 批量更新设备配置信息。
- 设备主动请求更新配置信息。
2、流程图
3、远程配置大致分为三部分:
- 生成配置文件:您在物联网平台控制台编辑并保存配置信息。
- 推送配置文件:您在物联网平台控制台批量推送配置信息给设备。设备接收后,修改本地配置文件。
- 设备主动请求配置信息:设备主动向云端请求新的配置文件,并进行更新。
远程配置使用分为两种场景,一种是云端推送配置信息给设备端,一种是设备端主动请求配置信息。根据场景的不同,远程配置的步骤也有所区别。
场景一:云端推送配置信息给设备端
1、设备端业务代码实现
import com.aliyun.alink.dm.api.DeviceInfo;import com.aliyun.alink.dm.api.InitResult;import com.aliyun.alink.dm.api.IoTApiClientConfig;import com.aliyun.alink.linkkit.api.ILinkKitConnectListener;import com.aliyun.alink.linkkit.api.IoTMqttClientConfig;import com.aliyun.alink.linkkit.api.LinkKit;import com.aliyun.alink.linkkit.api.LinkKitInitParams;import com.aliyun.alink.linksdk.cmp.connect.channel.MqttSubscribeRequest;import com.aliyun.alink.linksdk.cmp.core.base.AMessage;import com.aliyun.alink.linksdk.cmp.core.base.ConnectState;import com.aliyun.alink.linksdk.cmp.core.listener.IConnectNotifyListener;import com.aliyun.alink.linksdk.cmp.core.listener.IConnectSubscribeListener;import com.aliyun.alink.linksdk.tools.AError;public class DeviceCOTADemo1 { public static void main(String[] args) { String regionId = "cn-shanghai"; DeviceInfo deviceInfo = new DeviceInfo(); deviceInfo.productKey = "******"; deviceInfo.deviceName = "******"; deviceInfo.deviceSecret = "********"; LinkKitInitParams params = new LinkKitInitParams(); IoTMqttClientConfig config = new IoTMqttClientConfig(); config.productKey = deviceInfo.productKey; config.deviceName = deviceInfo.deviceName; config.deviceSecret = deviceInfo.deviceSecret; config.channelHost = deviceInfo.productKey + ".iot-as-mqtt." + regionId + ".aliyuncs.com:1883"; params.mqttClientConfig = config; params.connectConfig = new IoTApiClientConfig(); params.deviceInfo = deviceInfo; /**建立连接**/ LinkKit.getInstance().init(params, new ILinkKitConnectListener() { @Override public void onError(AError aError) { System.out.println("初始化失败 " + aError.getMsg()); } @Override public void onInitDone(InitResult initResult) { System.out.println("初始化成功 " + initResult.tsl); String pd = deviceInfo.productKey + "/" + deviceInfo.deviceName; // 1、cota 请求 Topic String requestcotaTopic = "/sys/"+pd+"/thing/config/push"; // 订阅Topic MqttSubscribeRequest upgradeTopicRequest = new MqttSubscribeRequest(); upgradeTopicRequest.topic = requestcotaTopic; upgradeTopicRequest.isSubscribe = true; // 直接做Topic的订阅 LinkKit.getInstance().subscribe(upgradeTopicRequest, new IConnectSubscribeListener(){ @Override public void onSuccess() { System.out.println("cota订阅成功"); } @Override public void onFailure(AError aError) { System.out.println("直接订阅失败" + aError.getMsg()); } }); // 注册ota下行监听 LinkKit.getInstance().registerOnNotifyListener(new IConnectNotifyListener() { @Override public void onNotify(String s, String s1, AMessage aMessage) { System.out.println("cota 监听响应:"); System.out.println(new String((byte[])aMessage.getData())); } @Override public boolean shouldHandle(String s, String s1) { return false; } @Override public void onConnectStateChange(String s, ConnectState connectState) { System.out.println("连接状态发生变化 :" + s + connectState); } }); } }); }}
2、管理门户配置远程控制,详细步骤参考链接。
3、启动设备端程序,管理门户批量更新,设备端获取信息(批量更新频率限制:一小时内仅允许操作一次):
{"method":"thing.config.push
aliyun windows开启远程_阿里云物联网平台远程配置功能JAVA 示例参考相关推荐
- 阿里云物联网平台python开发手册_阿里云物联网平台体验(树莓派+Python篇)
虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作.但是同时也见证了阿里云物联网团队从几十人到数百人的迅速扩张,其物 ...
- http发送16进制报文_阿里云物联网平台使用心得(25)MQTT协议详解UNSUBSCRIBE报文...
题目 大家好,超子又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖.超子今天给大家介绍一下UNSUBSCRIBE报文. UNSUBSCRIBE报文 从上图中可知,UNSUBSCRI ...
- mqtt协议详解_阿里云物联网平台使用心得(七)MQTT协议14个报文总览
大家好,物联网爱好小组成员超子,又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖.超子将参考<MQTT-3.1.1标准协议中文版>PDF手册,详解每个报文的格式,以及如 ...
- 阿里云物联网平台远程配置功能JAVA 示例参考
概述 很多场景下,开发者需要更新设备的配置信息,包括设备的系统参数.网络参数.本地策略等.通常情况下,是通过固件升级的方式更新设备的配置信息.但是,这将加大固件版本的维护工作,并且需要设备中断运行以完 ...
- 阿里云物联网平台python开发手册_阿里云物联网平台之云端API调用(即云端开发教程)...
本文介绍如何调用物联网平台的云端API,很多时候控制台上操作不太方便,需要通过API调用来完成或者通过调用API封装接口,以做到二次开发等.如产品管理,设备管理,规则创建等.分别介绍通过common ...
- 合宙Air780e+luatos+阿里云物联网平台完成设备通信与控制(属性上报+4G远程点灯)
一.简介 1.项目介绍 之前发布的文章有采用合宙的4G LTE Cat.1模块,编程语言用的是lua,整体来说代码比较简洁,实现对华为云物联网平台的设备通信与控制,即采用一个变量作为模拟属性定时上报, ...
- Esp8266 进阶之路29【高级篇】百万条消息免费之乐鑫esp8266使用TCP直连模式MQTT协议接入阿里云物联网平台,支持私家服务器对接,支持阿里云规则引擎。(附带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- 爬取阿里云物联网平台设备的物模型数据
背景说明 按项目经理的要求,需要导出阿里云物联网平台上所有设备的物模型数据到Excel上,方便后台导入.给客户演示和备份.但是,阿里云物联网平台没有这个功能,手动一个个处理不现实,因此只能写一个爬虫爬 ...
- 文末赠书5本 | 附源码 | 三等奖作品 | 基于RA4M2和阿里云物联网平台的智能卧室小管家
[RA4M2设计挑战赛]基于RA4M2和阿里云物联网平台的智能卧室小管家 摘要 本项目已RA4M2为主控,搭载了RT-Thread实时操作系统,配合Wi-Fi模块来提供网络通讯能力,外设接入了继电器. ...
最新文章
- getFields()和getDeclaredFields的区别
- 【Excle数据透视表】如何在数据透视表中使用合并单元格标志
- 解决winxp网上邻居共享问题的方法
- ANSYS——模态提取方法简介
- c语言循环链表中设立尾链表,C语言实现双向非循环链表(带头结点尾结点)的节点插入...
- MySQL如何跨机器迁移数据?
- 教师计算机提升学到的知识,教师计算机教学工作总结(精选6篇)
- NUnit的使用中可能遇到的问题
- Glib2: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)问题(六)
- 程序员应当注意的肢体语言
- int和Integer有什么区别
- php实现发送微信模板消息的方法
- echarts 双y轴设置
- 更换系统的jdk版本
- ebay详情页html,eBay详情页商品的basic Description没有了?
- Raptor实践参考:要么错误要么求和
- nand读寿命_Nand Flash的擦写次数与使用寿命
- Netgear wndr3700v2 路由器刷OpenWrt打造全能服务器(一)序章
- 我在乐视9年,亲眼看贾跃亭一步步走向失控
- 游戏计算机性能要求吗,玩电脑大型游戏对于配置有什么要求