iot梳理
近段时间一直在搞公司的iot项目,没啥时间学习新的知识(也是自己懒),这边记录下整体对iot知识领域的认识。
首先说到iot会想到物联网,对于我们开发来说物联网很明显要用到几个不太常用到的技术,如mqtt、netty等,因为我们这个项目是直接拿云某声的源码进行二次开发的,很多逻辑功能等需要我们从头开始梳理和阅读源码,在这一整个探索过程中发现这个项目用到的技术块还真不少,大体总结下有mysql、mongo、redis、kafka、mqtt、netty、flink、elk、xxljob。SpringCloud架构用的是eureka+apollo+feign+gateway,整个项目经过裁剪后还有近30个模块,不过经过近几个月的磨总算对这个项目有那么一定的自我理解了。
首先我们都知道设备是通过服务器发布指令控制的,现在经过验证我们成功测试了利尔达的一系列产品,现在就简单介绍下这套产品的控制流程,“首先开启所有设备和网关,然后网关的设备管理里会有所有子设备,设置中找到网关的mac地址,然后到dev后台添加设备写入设备编码(后台服务器需要开启tcp端口),当添加网关成功后需到利尔达后台点击找到子设备,紧接着子设备就会在后台显示出来”。然后后台控制设备简单画了个逻辑图
科普
设备影子:意思可以理解为保存在云端的设备属性,方便查询跟踪,我们使用的是mongo保存的
物模型:抽象出来的n个功能类似的设备模型,在这个里面可以添加各种属性如温度,亮度等
设备模型:继承于物模型,可以选择继承的属性,方便给设备继承,可以理解为是单独设备的模型
设备:新建设备可以继承设备模型,然后自己命名及设置在哪个空间下,记录真实设备的属性影子
emmm还有关于设备跟云之间的交互有三种方式,如下图