随着物联网的兴趣,很多物联网项目诞生了。其中物联门禁系统可以说是一个非常有前景的项目。首先说说物联门禁可以实现哪些功能?最具物联网代表的功能就是手机远程开门,无论你在世界的哪个角落,你只需要一台可以上网的手机,你就可以实现远程控制门禁开门。在此功能的拓展下,我们还可以实现微信开发、扫码开门、小程序开发,还有远距离开门(1-3米可调),当然还有最基本刷卡开门。

雷小天博客

了解完门禁的开门功能,我们再来了解下我们今天讨论的主题。门禁设备如何与服务器保持连接?想要通过互联网来控制门禁机设备开发,那么我们的必须要有一个东西跟门禁设备通信,我们得告诉它我们什么时候要开门了,这个工作由谁来做?没错,就是服务器,服务器通过TCP/IP协议完成与硬件设备的通信。而这个通信的基础首先是要建立起门禁设备与服务器的连接状态,那么这个链接状态是如何维持的呢?

前面我们有提到到,服务器与硬件设备的通信协议走的TCP/IP协议,我们为什么不用HTTP协议?TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议。“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把IP想象成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。 说了这么多,其实你只需要明白http不能维持长连接,而TCP/IP中的tcp或者udp可以做到。门禁设备需要全天24小时监控在线状态。

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:

雷小天博客

上面的协议你如果还没有理解也没关系,我就直接告诉你吧我们门禁设备与服务器的通信是通过udp实现的,而我不用tcp的原因是,tcp有着繁琐的三次握手确认机制,这不仅会增加连接的时间而且还会占用过的的内部系统资源。说了这么多你也许还没明白服务器和门禁机设备到底是怎么维持连接的?其实他们之间是通过“心跳包”的方式维持连接。设备通电之后,设备的连网功能模板不管是流量卡还是直接插网线,就会发生一串心跳包数据,这是数据会按照一定的频率一直发生,以此来维持连接。下面再看看详细的数据包格式。雷小天博客

服务器收到门禁设备的心跳包数据,应答一条数据给门禁设备告诉服务器已经收到心跳包,我们把改门禁的状态维持为在在线状态,里面的数据格式全部采用16进制,其中插入时间数据是为了保持时间同步。