ALink协议是最简单的通信协议

简介:

物联网全栈教程-从云端到设备(六)


关注零妖的微信公众号,获取第一手物联网的技术干货:  LINGYAOIOT


物联网项目在开发初期,需要云端和设备端两个工种的工程师一起谈谈实现的技术细节。有一个叫作ALink协议的语言,成功解决了两个物种之间交流困难的世纪难题!

ALink协议是针对物联网开发领域设计的一种数据交换规范。设备端按照这个简单的规范把数据组织一下发送给云端,云端工程师也懂这个简单的规范,可以直接拿这个数据进行处理。同时还解决了调试困难的痛点:云端工程师使用一个叫做MQTT客户端的电脑工具,就可以发送符合ALink协议的测试数据调试云端产品的代码;设备端工程师就可以在给单片机写代码的时候直接组织一个符合ALink协议的测试数据,从而不用依赖云端下发。

 

物联网将物理世界的万物接入网络并通过整合各类服务实现智能化。“物”(Things)作为整个网络中的基础节点和商业触手,既是环境信息的采集者,也是智能服务的提供者和承载者。“物”就是设备端。

你首先需要对物联网中的“物”能做什么,能提供什么样的服务进行描述。这就需要从产品层面进行功能建模,定义物的“属性”(Property)、“服务”(Service)和“事件”(Event)。最简单的情况下你定义一个属性就够了,比如零妖的物联网弹幕器项目,就仅有两个属性。

通过功能建模将各类设备统一抽象为云端的资源,并对外暴露相应的接口,以满足不同场景下不同系统的调用和快速集成。

物模型是对设备是什么,能做什么的描述,包括设备身份标识、连接状态、描述信息,以及设备的属性(properties)、服务(services)、事件(events),后三者构成了设备的功能定义。Link Develop通过定义一种物的描述语言来描述物模型,称之为 TSL(即 Thing Specification Language)。

 

有一种非常简单的数据格式,叫作JSON字符串,有编程基础的人两分钟就能研究清楚那是什么。ALink协议的数据格式就是JSON字符串的格式。零妖只是提一下而已,ALink协议想读懂根本不用了解啥是JSON,我要开车了,兄弟们请坐好扶稳。

2a4f9438e473b10a769a58510a683c6a6543ffae 

看到了吧,就是这么简单。上面那个截图就是设备上报自己属性的字符串。设备端发送的数据其实就是那些内容,而且零妖也解释很清楚了。总结一下,就是 <“属性”:数值 >的做法,非常类似 <键:值> 的做法。反正对于单片机来说,想要上报哪个属性,就发送哪个,修改一下后面的数值就行了。

同理,云端下发的数据也是符合ALink协议的。单片机想解析这些数据就更简单了,简直不要太爽。我们只管记住这些固定的格式就行了,其他的不用修改。上行数据和下行数据在格式上都一样,但是有些固定的地方是不一样的,可以去  https://linkdevelop.aliyun.com/developGuide#kgd6wp.html  查看单个设备的报文,复制你需要的报文,然后修改其中的属性名称和数值,就可以了。

对于云端开发的工程师来说,要做的工作就是调用阿里云提供的API,往里面扔数据就行了,自己更需要关注的是业务的实现逻辑而不是这些细节问题。云端开发代码的流程零妖会在后面的文章里讲一个小小的Demo,帮助你快速上手。

 

你一定正在好奇属性的名称是怎么得到的。零妖告诉你,属性的名称和取值范围是在 LinkDevelop 平台上,“设备开发”里面,定义产品的时候自己选择的。零妖的下一篇文章将会讲解“设备开发”的内容,这部分是在云端完成的工作,也是团队开会时候需要确定的内容。

 

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
5天前
|
安全 数据安全/隐私保护 网络架构
认识TACACS+协议
TACACS+(Terminal Access Controller Access-Control System Plus)是一种用于网络认证、授权和账户(AAA)服务的协议。它最初由Cisco开发,用于管理路由器、交换机等网络设备的访问控制。
8 0
|
4月前
|
存储 XML 移动开发
应用层协议设计 ProtoBuf
应用层协议设计 ProtoBuf
|
4月前
|
存储 XML JSON
Protobuf应用层协议设计
Protobuf应用层协议设计
47 0
|
6月前
|
存储 XML JSON
应用层协议设计及ProtoBuf
应用层协议设计及ProtoBuf
60 0
|
8月前
|
搜索推荐 网络架构
RTP协议应用方案
RTP协议应用方案
51 0
|
Web App开发 存储 编解码
【WebRTC原理探索】更进一步,核心组件RTP/RTCP数据传输协议
【WebRTC原理探索】更进一步,核心组件RTP/RTCP数据传输协议
281 0
|
网络协议 程序员 数据安全/隐私保护
协议/协议分层(详解)
协议/协议分层(详解)
698 0
协议/协议分层(详解)
|
网络协议 网络架构
各种协议的简单理解
各种协议的简单理解
71 0
各种协议的简单理解
|
移动开发 JSON 网络协议
Alink 协议解析 | 学习笔记
快速学习 Alink 协议解析
267 0
Alink 协议解析 | 学习笔记
|
存储 缓存 网络协议
通信协议(一)
1、 目前我们网络通信经常使用的两种传输介质,一种是传输电信号的双绞线,一种是传递光信号的光纤。2、 所谓的“电信号”是以电流的变化所表示的3、 所谓的“光信号”是以明暗变化所表示的4、 用于定义通信过程及细节规则的协议称为通信协议通信系统之间为了完成通信所必须遵循的规则和约定(数据包格式/字段的内容/字段的含义/发送的时间/接收的时间等细节)所有通信系统之间通信,需要相同的协议5、 协议就是规则6、 协议实现:通过程序语言将协议文档实现为具体的程序代码;再将代码集成在某个软件或者操作系统中,以实现通信的目的。7、 将数据包每个字段拆开分析,找到数据的部分8、 原始的数据包是以16进制的数据和
通信协议(一)