在物联网(IOT)背景下服务器怎样和电控板打交道的?

背景

随着物联网(IOT)的发展,很多的智能设备进入了寻常人家,比如各类智能家电产品,比如智能洗衣机、智能冰箱、智能空调,这些智能产品为我们的生活提供了很多的便利和舒适的生活,并且解放了我们的双手。现在的我们只需在手机上下载产品的APP(格力+、海尔智家、美的美居),只需在移动端动动手指,设备可以快速地通过网络的方式被控制。那APP端的控制命令是怎样到设备的呢?经过了怎样的转换呢?

在这里插入图片描述

图 1 设备控制流程图

一般来说,APP端的控制信号会传递到自己的服务器,之后再通过服务器来进行命令转发;但是在前后端分离的大背景下,两者之间传递的都是Json格式的数据,那如果直接将Json格式的命令直接给电控端,就会导致命令不匹配,因为电控板只是支持二进制控制,那这里就涉及到控制命令的转化了。所以我们设备控制的流程图就如下:

在这里插入图片描述

图 2 设备控制流程图

如图2 所示,在转化过程中,使用到了一种脚本语言:lualua在智能设备控制中起到了举足轻重的左右,所有的控制都需要经过它转换,那什么是lua呢?

转换脚本—lua简介

维基百科:Lua是一个简洁、轻量、可扩展的脚本语言。Lua有着相对简单的C API而很容易嵌入应用中。很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。

特点

在这里插入图片描述

Lua 特点展示

Lua 因为其快速、可扩展的优势,被广泛应用于多个方面,其中主要的两个方面是游戏开发和 Web 应用脚本。

实例

这是一条智能空调设备的控制命令:

{"control":{"mode":"auto","applianceId":"178*****56","wind_swing_ud":"off","small_temperature":0,"mac_value":"88,77,22,24,34,bb","sensor_mode":1,"Oxygenerator_cmd":1,"wind_swing_lr":"off","temperature":26,"wind_speed":101,"power":"off","position_value":"01"}}

以上的控制命令属于脚本值,我们是很方便看懂的,但对于设备来说它是不会的,因此需要用编写的脚本对这些脚本值进行处理,转换成电控能识别的属性值。

AA 16 AC BA 00 00 00 00 00 21 02 01 01 06 00 06 88 77 22 24 34 BB 1F

这是一条下发的命令,对于设备响应之后,同理会对当前的设备的状态进行上报,上报的状态也需要进过lua脚本进行解析,解析之后发送到APP端进行状态同步;及时告诉用户此时设备的运行状态。因此整个设备的控制是双向的:控制下发和状态上报。
在这里插入图片描述

图 4 控制下发和状态上报流程图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值