物联网设备终端和云端系统如何通讯?
随着5G通讯的诞生,网络通讯速度更快,周围从事互联网行业的同事都说下一个风口可能是物联网。由于目前公司产品偏硬件,我也有幸接触了一些物联网的知识,这篇文章想给大家分享一下关于物联网产品中的终端设备和软件是如何进行通讯的。
什么是物联网产品
众所周知,物联网是由数以百万计的设备通过网络相互连接而成的网络。物联网是一种将硬件和软件结合起来的产品,它可以测量真实世界的信息。并连接到网络,为用户提供价值。
其实目前我们身边物联网的产品挺多的,智能家居,智能门锁比比皆是;还有共享经济时代孵化出的共享单车,共享充电宝,共享雨伞等也可以算作物联网产品。
在我们使用共享单车时,用手机扫码后点击“开锁”按钮,就能将车锁打开。等我们使用完以后,将共享单车锁上以后。不用在手机上操作,系统也能判断我们已经使用完单车了。这些功能主要是通过物联网技术来实现的。
下面我们以共享单车为例来解释一下单车设备和软件系统之间是如何通讯,如何传输数据完成业务行为的。
终端设备应该含有哪些模块
(1)物联网卡
作为一款物联网产品,就会处于联网状态,这个时候就需要用到物联网卡,物联网卡可以简单理解为流量卡,所以和我们的手机上网一样,需要插入SIM卡,只不过物联网设备插的是另外一种网络卡,有了流量,才能具体基本的联网功能。
(2)设备通讯模块
设备通讯模块是一块电路板子,这部分一般是烧录到电路板上的一段嵌入式代码,通过软件编程来和云端系统通讯,并且解析接收到的云端系统的指令,转化成电路板能够识别的二进制,以实现控制设备的控制主板部分。
(3)控制主板部分
这部分主要就是接收设备通讯码,通过一些脉冲信号或者高频低频的电压来实现业务,例如设备通讯模块告诉控制主板部分需要打开锁,那么共享单车上的锁就会受控于控制主板完成对共享单车的开锁和关锁。所以控制主板部分主要执行对锁的控制。
云端系统应该如何运作
先看一个业务流程图,以共享单车扫码开锁为例:
云端系统一般分为业务系统和设备通讯系统:
业务系统: 进行一些业务操作,例如接收用户的扫码开锁的请求,记录用户的身份信息和车辆信息等,查看用户在使用过程中的数据和车辆状态位置,创建订单等,并不直接和终端设备通讯。
设备通讯系统: 这个系统就是直接和终端通讯的系统,通过接入事先和终端设备中的设备通讯模块约定的相关协议,以实现通讯。
协议的内容是约定好的,就好比一个暗号,如果要开锁,那么设备通讯系统发送的数据内容就必须为A,而设备通讯码也只有识别到数据内容为A才会开锁。当设备通讯系统发送其他内容时,设备通讯码将不能识别。业务系统根据各种业务需要,会告诉到设备通讯系统需要终端设备做出什么要的响应,设备通讯系统通过和设备通讯模块约定的协议翻译业务系统的内容为设备通讯模块可识别的数据形式。
如何传输数据
前面已经介绍了终端设备和云端系统,那么如何进行数据传输呢。一般会用到HTPP协议或者TCP协议,当然这块开发同学就很熟悉了。
如果用HTTP发送数据,一般设备连接系统会将指令包装成一个对象,然后发送; 而TCP协议通讯的话,一般会将指令转化成二进制或者十六进制传输。
如何将指令发送给指定设备
我们的设备那么多,如何将云端系统的指令发送给指定的设备呢?其实这里面还有一个概念,就是设备通讯码。顾名思义,是终端设备和云端系统进行通讯的一个唯一标记码,这个码就类似于我们PC电脑中的MAC地址,或者是手机IMEI号码。这个设备通讯码是烧录在设备通讯模块中的,是设备通讯码的唯一标记,并且也在系统里面标记一台唯一的终端设备。
所以我们在传输数据的时候都会带上这个唯一的标记,这样我们的数据就会指定发送到某个终端设备,而不会出现混乱的情况了。
总的来说,在终端设备上,一般就是通过物联网卡让设备处于联网状态,然后设备上有一个设备通讯模块,接收云端系统的指令并解析成硬件电路板能够识别的数据形式,控制主板或者其他机械部分在接收到设备通讯码传递的信息后,会完成相应的操作。这些操作结果又会沿原路再一层层返回给业务系统,最终展示给用户。
第一次接触时,总觉得终端设备、电路板很难,其实慢慢了解流程和通讯规则后还是挺简单的。物联网也没有我们想的那么高大上,简单分享给大家,希望能对刚入物联网产品的同学有点帮助。
本文由 @粉红色的小不点 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自 Unsplash,基于CC0协议。
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: