开发者学堂课程【基于LoRaWAN的物联网络管理平台:基于LinkWAN的应用开发】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/560/detail/7678
基于LinkWAN的应用开发
内容介绍:
一、Link WAN概览
二、搭建与管理网络
三、应用开发流程
四、LoRaWAN应用
一、 Link WAN概览
Link WAN主要功能
1、组网(网关)
网关管理
网络管理
2、入网(凭证)
开通入网
通讯配置
3、通信(节点)
节点管理
双向通讯
Link WAN平台数据流
LoRaWAN网关如何对接Link WAN平台
LoRaWAN网关
Link WAN平台
家庭级网关
企业级网关
运营级网关
Link WAN平台系统集成流程
供应链:网关
网络运营商户
应用提供商户
供应链:终端(烟感)
供应链:模组
二、 搭建与管理网络
Link Market:购买网关、模组和终端设备
在https://linkmarket.aliyun.com/里的广域物联网中
Link WAN平台添加网关
网关管理
添加网关:
网关安装
Link WAN授权凭证
添加专用凭证授权
把应用凭证授权给应用商:
点击授权应用商
完成授权
三、 应用开发流程
应用开发与部署基本流程
应用ISV→获取入网凭证(JoinEUI)→添加节点DevEUI,Pincode→配置数据流转→基于LP/MQSDK开发应用→交付部署
用
Link WAN给凭证添加节点
在凭证下面去添加自己的节点
添加节点入网
节点应用数据流转配置
节点上行数据流转-物联网平台
节点上行数据流转-物联网平台
对应产品下服务端订阅示例
节点上行数据流转-物联网平台
基于阿里云AccessKey进行身份认证并建立连接
//阿里云accessKey
string accessKey = "xxXXXXXXXXXXXxX";
//阿里云accessSecret
string accessSecret = "xxxXXXXXXXXXXxx";
//regionId
string regionId = "cn-shanghai" ;
//阿里云uid
string uid = "xxxxxXXXXXXx";
// endPoint: https : / / ${uid} .iot-as-http2.${region}.aliyuncs.com
string endPoint = "https: / /" + uid + ".iot-as-http2." + regionId + ".aliyuncs.com"
/ /连接配置
Profile profile = Profile.getAccessKeyProfile(endPoint,regionId,accessKey,acces:
//构造客户端
Messageclient client = MessageclientFactory.messageclient (profile);
//数据接收
client.connect ( messageToken -> {
Message m = messageToken.getMessage( ) ;
system.out.println( "receive message from " + m) ;return MessageCallback. Action. Commitsuccess ;
节点下行数据流转-物联网平台
节点下行数据流转-物联网平台
普通版和高级版通过sDK下发JSON格式数据,其格式和控制台下发的JsON数据格式相同。普通版下发二进制数据只需要包含业务数据,但是高级版通过SDK 下发二进制数据必须以下面3个字节作为开头来定义网络参数,节点实际接收到的数据不会包含这3个起始空节。
物联网平台高级版-物模型
物联网平台高级版-功能定义
物联网平台高级版-运行状态
消息队列MQ
消息队列(MQ)是企业级互联网架构的核心产品,是一个低延迟、高并发、高可用、高可靠,可支撑万亿级数据洪峰的分布式消息中间件。
如需使用MQ,需要开通MQ服务
(https://www.aliyun.com/product/开通MQ服务后进入管理控制台进行MQ资源的创建。MQ的资源包括:
消息主题(Topic)
消息生产者(Producer ID)消息消费者(Consumer ID)
阿里云Access Key ID和Access Key Secret
在MQ消息系统中,消息生产者将消息发送到某个指定的消息主题Topic,消息消费者则通过订阅该指定的Topic来获取和消费消息
节点上行数据流转-消息队列MQ
订阅消息格式与样例
样例:
{
"data" :"68656c6c6f20776f726c64","datr" : "SF9BW125",
"devAddr":"664dffff",
"devEui": "d396e0000ffffff","fcnt": 1123,
"fport":3,
"gwEui": "d396e0fffffff","joinEui":"d396d0affffff"","mtype" : 2,
"rssi": -71,"snr":13.5,
"time":1530961377256
}
节点下行数据流转-消息队列MQ
发生消息格式与样例
样例:{
"data": "af616c0263",
"fport":10,
"devEui" :“xxxXXx",
"confirmed" : false,
" time ":1530961377256
}
【注】data用16进制字符串表示,譬如下发数据"abc"表示为"616263”。
【注】fport不能为0,在LoRaWAN协议中fport为0是指MAC指令。
四、LoRaWAN应用
速率与包长
窄带小数据传输,单包最大负载为51~222字节
不向速率不同最大包长
NS与节点侧ADR自动调速
让无线空口传输的数据尽量紧凑
应用层数据超过当前单包最大负载需要分包组包
可考虑固定应用层包长为51字节
应用端口
建议基于Link WAN开发应用时使用端口1~199
0:MAC指令
1~199:建议应用使用
200:RPD Remote Multicast Setup over LoRaWAN中定义为组播使用
201:RPD Fragmented Data Block Transport over LoRaWAN定义为分包组包使用
202:RPD Application layer clock synchronization over LoRaWAN定义为应用层时钟同步使用
203~223:建议应用保留
224:LoRaWAN MAC协议测试模式
225~255:为将来标准化应用扩展保留
确认帧与非确认帧
LoRaWAN网关典型为8上1下,下行比较紧缺
如上行确认帧过于频繁,会占用紧缺的下行信道
节点需要上行确认帧,并根据ACK触发降速与入网
周期性频繁上行的数据应以非确认帧为主
上行数据根据应用类型尽量为非确认帧与确认帧组合
下行数据建议为确认帧
单播与组播
单播方式:1000盏路灯空口传输1000次
组播方式:1000盏路灯空口传输1次
路灯应用
电池供电,下行为主,Class C设备每小时上行1包确认帧心跳包
有控灯需要时,立即下行确认帧控灯指令
智能锁应用
电池供电,上下行均有,Class B设备每小时上行1包确认帧心跳包,包含设备状态;每128秒开beacon接收窗口;每3.84秒开接收窗口收下行指令