一文教你小区如何自建快递柜

简介: 共享快递拟收费事件后,国内小区物业开启一波自建快递柜的浪潮,阿里平台快递柜销量暴涨1400%。那么问题来了,企业如何基于阿里云物联网平台快速构建一套高可用的共享快递柜服务?

1.背景

阿里云物联网平台为海量设备提供接入和托管服务,除了99.9%的高可用性保障外,平台还具备设备跨Region、跨账户分发的功能。本文从实现的角度为大家介绍常用业务技术细节。

当我们的设备和物联网平台建立mqtt连接通道后,会根据业务需求传输不同的数据。本次以共享快递柜业务场景讲解topic和payload的设计。

在共享快递柜场景中,我们会涉及到C端用户操作:

  • 在App端扫码,操作快递存取,触发后台下发指令到当前机柜,执行相关操作。
  • 用户存取完毕,触发订单结算或其他操作

商家后台交互操作:

下行指令

  • 开关快递柜门
  • 广告的添加/删除

设备数据处理

  • 用户取走快递的消息的处理,订单结算
  • 用户寄存的消息的处理,订单结算
  • 广告播放的记录存储

2.设计方案

总体思路如下:

  • 根据业务不同划分不同topic,每个topic对应payload结构体。
  • 当数据发送到物联网平台,我们通过规则引擎把数据分流到多个mq队列、DB、时序数据库等。
  • 不同优先级队列,DB分配不同计算资源,配置降级策略


2.1 上行数据逻辑

下图展示了设备数据上行场景的划分和后台系统不同处理方式

7`1.jpg

2.2 下行控制指令

下图展示了云端下行控制指令的来源和完整链路

7`2.jpg


3.通信Topic和Payload定义

按照以上分析,整理出在这个场景中的Topic和Payload细节参考表格,如下:

分类 topic 权限 payload 备注
NTP服务 /ext/ntp/${pk}/${dn}/request 发布 {
"deviceSendTime":"1000"
}
物联网平台提供

/ext/ntp/${pk}/${dn}/response 订阅 {
"deviceSendTime":"1000",
"serverRecvTime":"1543475763010",
"serverSendTime":"1543475763020"
}
物联网平台提供
定时上报
每5分钟
/${pk}/${dn}/user/bizheart/post 发布
QoS=0
{
"battery":69,
"devices":[0,1,0,0,0,1,0],
"net":84
}

设备上报
指令响应
/${pk}/${dn}/user/borrow 发布QoS=1 {
"device":2
}

用户上报
用户存取触发
/${pk}/${dn}/user/return 发布QoS=1 {
"device":2
}

弹出指令
用户App触发->Server->IoT->机柜
/${pk}/${dn}/user/pop 订阅QoS=1 {
"device":2
}

设备上报
是否弹出的响应
/${pk}/${dn}/user/borrow 发布QoS=1 {
"device":2
}

广告播放
播放记录
/${pk}/${dn}/user/ad/play 发布QoS=1 {
"adId":14323
}

添加广告资源 /${pk}/${dn}/user/ad/new 订阅
QoS=1
{
"adId":732124,
"uri":"https://ad.com/732124"
}

删除广告资源 /${pk}/${dn}/user/ad/delete 订阅
QoS=1
{
"adId":32546
}

设备状态变更 /as/mqtt/status/${pk}/${dn}
{
    "status":"online/offline",
    "productKey":"pk13543",
   "deviceName":"dn1234",
    "lastTime":"2018-08-31 15:32:28.195",
    "clientIp":"123.123.123.123"
}
物联网平台提供

具体实现过程中,业务payload还会ID用于实现消息去重逻辑。

至此,我们完成了IoT场景的需求梳理和业务协议设计。

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
安全 Linux 数据安全/隐私保护
国内外四款强大的远控使用体验:ToDesk、向日葵、AnyDesk、Microsoft 远程桌面横向比较
国内外四款强大的远控使用体验:ToDesk、向日葵、AnyDesk、Microsoft 远程桌面横向比较
2032 0
|
11月前
|
项目管理 开发者
「Mac畅玩鸿蒙与硬件6」鸿蒙开发环境配置篇6 - 理解鸿蒙项目结构
本篇将介绍鸿蒙应用项目的结构与文件组织方式,帮助开发者熟悉各文件夹的作用。掌握项目结构有助于高效管理代码和资源文件,为鸿蒙应用开发打下坚实的基础。
453 2
「Mac畅玩鸿蒙与硬件6」鸿蒙开发环境配置篇6 - 理解鸿蒙项目结构
|
安全 物联网 数据安全/隐私保护
车联网
对于车联网的操作,我们可以按照以下步骤进行,这些步骤涵盖了从初始设置到日常使用的大部分关键流程。请注意,具体步骤可能会因车型、汽车制造商以及所选的服务提供商而有所不同。
|
网络协议 算法 关系型数据库
MySQL8 中文参考(八十四)(5)
MySQL8 中文参考(八十四)
389 5
|
监控 安全 测试技术
探索软件测试的多维度策略
【6月更文挑战第21天】在软件开发生命周期中,测试环节是确保产品质量的关键步骤。本文将介绍一种多维度的软件测试策略,旨在通过不同角度和层面的测试方法来提高软件的可靠性和性能。我们将探讨如何结合静态代码分析、动态测试、自动化测试以及探索性测试等多种测试手段,构建一个全面的测试体系。此外,文章还将讨论如何根据不同的开发阶段和产品特性选择合适的测试工具和技术,以及如何有效地整合这些测试活动以提升测试效率和覆盖率。
|
SQL 人工智能 自然语言处理
一次中稿10篇EMNLP22,达摩院对话智能团队在研究什么
达摩院Conversational AI团队在EMNLP 2022上发表了10篇论文,涵盖了任务型对话、表格型对话、文档型对话、多模态对话和对话终身学习等多个前沿方向。团队构建了首个大规模中文任务型对话评估数据集CGoDial,用于提升对话系统的真实世界表现,并提出了一种新的预训练模型STAR,增强模型对复杂和抽象信息查询的处理能力。此外,他们还研究了多模态情感分析和对话情绪识别,以及终身学习对话系统的解决方案,以减少灾难性遗忘问题。这些研究旨在推动对话智能的发展,提高人机交互的效率和准确性。
|
存储 网络协议 网络虚拟化
SRv6 基本结构
【5月更文挑战第4天】SRv6是一种网络功能指令化技术,将128位IPv6地址用于表达网络操作。它将业务需求转化为有序指令列表,由网络设备执行,实现灵活的网络业务编排和定制。
|
Shell 开发工具 git
git获取gitee老版本的分支内容
git获取gitee老版本的分支内容
286 0
|
人工智能 固态存储 关系型数据库
阿里云国际短信收费价格表(一条价格/短信包费用)
阿里云国际短信收费价格表,国际短信一条价格、国际短信包费用,​​阿里云国际短信费用价格表,印度短信0.216元一条、中国香港短信0.33元一条、美国短信0.053元一条、日本短信0.514元一条、俄罗斯短信1.02元一条、印尼短信1.01元一条、意大利短信0.565元一条、伊朗短信0.592元一条,阿里云国际短信支持东南亚、欧洲、非洲、美洲等国家和地区
1469 0
|
JSON API 开发者
submail邮箱API发送邮件的方法
Submail是提供短信和邮件服务的平台,其邮箱API允许开发者轻松集成邮件发送功能。通过HTTP协议,开发者使用API密钥验证后可利用邮件模板发送邮件。配置API需在Submail注册并获取API密钥,设定邮件参数。发送邮件步骤包括构建HTTP请求,设置请求头和体,发送并处理响应。以下是Python调用API的示例代码。Submail API为快速高效集成邮件功能提供了便利。