目标

  1. 数据入库: 历史数据记录
  2. 家庭组: 设备与人或网关绑定,权限控制
  3. 消息订阅实时推送: 获取设备的最新状态
  4. 数据模板: 数据模板是一切的基础,规范化数据格式可以很方便的进行数据处理
  5. 设备控制: 设备不仅仅需要获取状态,也需要可以控制设备
  6. 低代码数据流转: 由于物联网的通用性,及使用者需要对设备的交互进行独特控制就需要有一些编程能力,这时候低代码就能很好的解决用户不会编程的缺点,同时大大提高了灵活性和拓展性

服务介绍

mqtt服务器

MQTT服务器负责提供mqtt服务
git地址:https://gitee.com/godLei6/hmq

  1. 目前使用开源的mqtt服务器hmq改造,提供mqtt,mqtts给client进行连接
  2. 通过grpc和dmsvr交互,进行设备登陆认证,订阅认证及发布认证
  3. 设备的发布的消息通过kafka进行发布

    dmsvr

    dmsvr是设备管理模块,是device manage的简称,负责提供设备管理交互的grpc模块

  4. 提供设备登陆认证,订阅认证

  5. 设备及产品的管理
  6. 设备发送消息的数据模板匹配及入库
  7. 设备交互,提供给其他服务控制设备的能力
  8. 数据入库:将模板后的数据入库并提供数据的查询能力
  9. 订阅实时转发:将其他服务订阅的消息实时转发到该服务,目前计划用redis的发布订阅来实现

    usersvr

    usersvr是负责用户管理的grpc模块,这个模块提供用户登录信息修改等基础功能,该模块将作为通用模块进行开发,不依赖其他物联网相关模块

  10. 用户注册:可以通过配置可以根据需要是否需要输入用户信息,是否需要绑定手机号等通用的注册方式

  11. 用户登录:可以实现手机短信登录,账密登录,微信,小程序等多种方式的登陆
  12. 用户管理:提供用户信息的修改,密码,用户名,等参数
  13. 第三方绑定:可以提供微信,支付宝,qq,邮箱,手机号等方式绑定账号
  14. 第三方服务:如微信推送,支付等能力

dcsvr

dcsvr 是设备交互模块,是device connect的缩写,提供设备与人的交互,设备与设备交互的能力,是设备与设备,设备与人交互的桥梁.依赖于usersvr和dmsvr所提供的能力整合的grpc模块.

  1. 低代码数据流转:通过gengine提供的低代码能力实现设备与设备,设备与人,设备与网关的交互能力
  2. 家庭组管理:提供用户绑定设备,创建家庭组,及管理家庭组中设备的能力
  3. 数据推送:能够将低代码所设定的数据推送到用户侧

    webapi

    webapi是things中的http网关,负责提供负载均衡及与第三方模块交互,提供http接口给客户端访问

  4. 负责提供http接口将内部grpc服务的数据提供出去

  5. 负责提供图形验证码的生成及校验
  6. 负责短信验证码的接入

后台服务

后台服务是基于开源的gin-vue-admin开发的管理后台,提供产品设备的管理,及用户数据报表等功能.这个服务是需要实现腾讯云的物联网开发平台.
git地址:https://gitee.com/godLei6/gin-vue-admin

  1. 产品及设备的管理:可以创建及修改产品及设备信息
  2. 可以编辑及修改产品的数据模板
  3. 可以查看到设备的历史消息及实时交互消息
  4. 可以查阅到设备的在线状态
  5. 可以创建模拟设备进行调试

参考

腾讯云物联网开发平台:https://console.cloud.tencent.com/iotexplorer
gin-vue-admin:https://www.gin-vue-admin.com/
hmq:https://gitee.com/godLei6/hmq