IoT 通信和系统管理

智能零售货柜是一种结合了物联网、人工智能和大数据技术的现代化零售设备。它具有自动售货、库存管理、支付结算、数据分析等功能,能够提供更便捷、高效的购物体验。

1 网络

IoT 通信和系统管理

上述是IoT平台的网络图,目前,主要使用的通信协议有MQTT和WebSocket。

MQTT是一种轻量级的发布/订阅消息传输协议,专为物联网设备设计。它采用发布/订阅模式,允许设备发布消息到一个或多个主题(topic),其他设备可以订阅这些主题来接收消息。MQTT协议具有低带宽消耗、低功耗、可靠性强等特点,非常适用于网络带宽有限、设备资源有限的环境。在智能货柜中,可以使用MQTT协议来实现设备之间的实时通信和数据传输。

另一方面,WebSocket是一种基于TCP的全双工通信协议,它允许在单个TCP连接上进行双向通信。WebSocket通常用于实时的Web应用程序,如聊天应用、实时数据更新等。在智能货柜中,WebSocket可以作为MQTT协议的备份方案,以确保通信的可靠性和稳定性。当MQTT协议出现问题时,WebSocket可以接管通信任务,保证货柜设备与云平台之间的连接不中断。

为了实现MQTT协议,需要建立专门的服务集群,包括消息的接收、分发和QoS等功能。目前,主流的云服务提供商都提供了MQTT相关的服务,我们可以购买这些服务来简化部署和管理过程。相比自建MQTT服务集群,使用第三方云服务的成本更低,并且功能更加丰富。通过使用第三方云服务,我们可以节省部署和维护MQTT服务的成本,同时获得更好的可扩展性和稳定性。

然而,我们也要注意到“鸡蛋不能放在同一个篮子里”的道理。如果我们完全依赖云服务商提供的MQTT服务,一旦云服务商出现问题,所有的货柜设备都将失去连接,可能导致严重的事故和损失。因此,我们需要一个备份方案来应对这种情况。WebSocket作为备份方案可以很好地替代MQTT协议的发布/订阅模式,确保货柜设备与云平台之间的通信不中断。

2 消息设计

在实际业务中,我们需要与多个平台进行对接,而每个平台的消息传输格式都不一致。为了解决这个问题,我们进行了业务抽象,设计了一个通用的消息体。


//业务消息
class BizMessage {
    var actionId: Int //消息类型
    var uuid: String //消息ID
    var serialNo: String //设备硬件号
    var body: Any //具体业务数据
    var createAt: Datetime //消息创建时间
}

每个动作都使用actionId来区分。此外,我们还设计了createAt属性,因为消息具有时效性,如果没有及时收到,我们应该丢弃它。

3 系统设计

IoT 通信和系统管理
部份设计

4 消息管理


//消息平台接口
interface IMessageService {
    fun deviceAuth(device) //设备授权
    fun onMessageReceive(message)  //消息接受
    fun sendMessage(message) //消息发送
    ...
}

根据自身业务抽象了如下接口,为每个平台实现具体业务就可以统一处理消息。

除了消息的收发,每个平台都有各自的设备鉴权的流程,所以也需要抽象。

IoT 通信和系统管理
消息路由

针对类似于采用WebSocket连接方式的设备,我们采用了消息路由的机制来实现设备与集群的通讯。当实例B需要向设备发送消息时,它会将消息发送给消息路由。消息路由会了解到设备与实例A之间的连接,并将消息转发给实例A。随后,实例A会将消息传递给设备,确保消息的准确送达。

通过消息路由的应用,我们能够实现设备与集群中不同实例之间的无缝通讯。无论设备连接的是哪个实例,我们都能够通过消息路由来确保消息的传递。这种机制为我们提供了更灵活、高效的消息传递方式,使得设备与实例之间的通讯更加可靠和稳定。

5 设备管理

由于硬件设备的多样性,我们需要对每种设备的软件版本进行有效管理。每个软件的发布都需要经历一个灰度过程,以确保其稳定性和可靠性。

在硬件设备出厂时,必须配备一套完善的管理工具,以确保每个组件在出厂时都是可用的。这套管理工具不仅能够对设备进行全面监控,还能够及时修复潜在问题,确保设备的正常运行。

此外,我们还拥有一套设备控制系统,可以实现对设备的远程操作。通过这个系统,我们可以方便地对设备进行管理,无论身处何地。这种远程操作的便利性为我们带来了极大的便捷和效率。

6 监控告警

IoT 通信和系统管理
告警系统

在设备的使用过程中,由于各种原因,难免会出现一些问题。为了及时发现和解决这些问题,我们特别设计了一套告警系统。当设备进行自检时,如果发现任何问题,它会立即将相关消息上报给我们。我们的平台会根据这些上报的消息进行归类统计,并将其展示在看板上。只有当某个规则的条件达到时,才会将相关信息展示出来。这样,我们可以更加清晰地了解设备的使用情况,并及时采取相应的措施。

另外,我们还建立了一套高效的处理机制,以确保对问题的快速响应,并尽量减少潜在损失。无论是设备故障还是其他异常情况,我们都能够迅速采取行动,保证设备的正常运行。

通过告警系统和处理机制的应用,我们能够更好地监控设备的状态,并及时处理任何问题。这样,我们可以保证设备的稳定性和可靠性,为用户提供更好的使用体验。

7 订单管理

在用户进行购物时,我们需要进行购物视频的上传管理,并调用识别系统进行识别。

考虑到视频文件的大小,长期存储的成本较高。因此,我们根据订单的特点将视频分为短期保存和长期保存。对于无风险的订单,我们将视频标记为短期保存;而对于有争议的订单,我们则将视频标记为长期保存。

作者介绍

WinGao,现任信也科技X团队全栈资深专家

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论