物联网平台在智慧社区中的应用
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2. 物联网平台在智慧社区中的应用
目录
1. 智慧社区有哪些主要的业务
2. 面临的挑战
3. 解决方案
4. 物联网平台的架构和实现
3. 智慧社区的前端业务
• 需要支持各种异构的物联网设备接入
4. 智慧社区的后端业务-数据分析
• 需要对前端物联网设备采集到的数据进行存储和汇总分析
5. 智慧社区的后端业务-智能预警
• 在对数据进行分析基础上,利用专家系统和机器学习算法对可能存在问题进行预警
6. 智慧社区的后端业务-AI落地
• 前端设备采集的海量数据可以作为训练样本进行训练, 训练好的模型又可以推送到设备进行推理
落地实例:门禁机的尾随检测
7. 面临的挑战
• 常常以项目的方式交付, 定制化需求较多, 需要对接第三方的业务系统或者设备,边际成本较高
• 需要部署到不同的私有云,公有云或IDC机房
• 需要接入不同的,使用不同协议的异构设备
• 物联网后台开发缺少像Web开发那样的脚手架和成熟的设计模式
8. 解决方案-造一个轮子
将于设备相关的功能抽象出来, 实现一个可以同时支持公司内部多个不同业务系统和不同设备的物联网平台。复用
功能和代码,降低开发成本,提供交付速度,
自研的物联网平台需要尽量的向设备和业务系统屏蔽掉中间数据流转的细节,并实现以下功能:
• 设备接入与授权
• 设备数据上送和存储
• 指令下发
• 设备间通信
• OTA升级
• 提供通用的设备端SDK和服务器端接口以及开发工具
9. 物联网平台-架构
10. 物联网平台-架构
基于MQTT协议进行抽象:
•
• 使用mqtt3.1.1版本
设备由逻辑上的三元组表示(ProductName, DeviceName, Secret), 使用这个三元组对设备的接入进行验证和权限控制。 同时通过
( ProductName, DeviceName)这个二元组对上下行数据进行路由。
•
• 上下行数据由两部分组成,元数据和负载
元数据: 用于描述负载的信息, 例如来着哪个设备, 消息的类型(指令/上传数据等), 负载的数据类型等, 元数据放在TOPIC中, 比如:
• upload_data/IotApp/ ODrvBHNaY /temperature/5ce4e36de3522c03b48a8f7f : 这个 TOPIC 代表来着设备( IotApp , ODrvBHNaY )的上传数
据, 负载的数据类型为 temperature , 消息的 ID 为 5ce4e36de3522c03b48a8f7f
•
•
cmd/IotApp/ ODrvBHNaY /renew_data/5ce4e36de3522c03b48a8f7f: 这个 TOPIC 代码要发往设备( IotApp , ODrvBHNaY )
的指令,指令名称为 renew_data, 消息 ID 为 5ce4e36de3522c03b48a8f7f , 设备订阅需要订主题阅 cmd/IotApp/ ODrvBHNaY /+/+
• 负载: 可以为任意格式,文本,二进制, JSON 或者 Protobuf 等。
• 采用QoS1传输, 通过元数据中的消息ID进行去重
11. 物联网平台-架构
12. 物联网平台-架构
部署方式:
• IotHub的所有组件通过K8S部署, 网关可运行在IotHub所在的云端或者边缘端
业务系统样板代码(以java为例):
@Controller(IotController.UPLOAD)
class ExampleController extends IotController {
@DataType("temperature")
public void onTemperature(Device device, Payload payload){
//处理上传数据
....
//发送指令给设备
device.sendCmd("renew_data")
}
}
13.