我搭建的物联网平台叫ETCloud(everthing cloud),从去年开始我就有搭建物联网平台的想法,那时候只搭建了一套网页版,很多功能都不全,连设备通信都有频频掉线都有问题。直到今年正好赶上疫情,在家颓废了3个月,终于才下定决心开始搭建。因为有之前失败的例子,这次网页端,我只用了一个星期,当然基本上每天晚上都熬到2点左右,晚上两点多也不困,思如泉涌那种,早上醒来第一件事就是完善回想梦中的代码,做梦也在写代码真是有点醉眼朦胧。从一开始我就预计了3个端。后台服务端、pc管理端、小程序应用a端。当然在做的过程中会发现路越来越宽敞后续准备添加pc数据分析端、NettyBroker、支付端。
首先总体介绍下这个ETCloud平台:
这是一个多租户系统,有三层用户结构。系统管理员,租户管理员、普通用户
用户可以在pc端新建产品、定义产品节点、新建设备、拥有设备批量自动注册功能
pc端和app端实时展现设备数据、对设备进行数据下发。
定义触发器实现设备异常后自动告警。
一、服务端
- 作为pc端和小程序端的后台服务,提供数据接口、用户认证、小程序认证等功能
- 所用技术springboot2.2.7、Mysql5.6、EMQX、Node8.11.3、iview1.3.1、Docker1.31.1
- 版本列表
ETCloud
V0.0.1 2020年5月11日
1. 基础架构搭建 2. spring boot、Mysql、EMQ、Node、iview、Docker 3.
V0.0.2 2020年5月15日
1. 新增设备自动注册功能 2. 区分开发环境和正式环境消息 3.
V0.0.3 2020年5月18日
新增用户自动注册功能 多租户系统调整 设备权限、产品权限、菜单权限、数据权限区分 用户统一修改为邮箱注册 emq新增http认证
V0.0.4 2020年5月19日
1. 新增用户最大连接设备数拦截 2. 新增动态订阅模式,减轻前台负担,避免消息串掉
V0.0.5 2020年5月25日
1. 新增设备模拟器功能 2. 新增设备连接日志 3. 新增设备数据日志 4. 新增设备指令下发日志 5. 新增设备触发器功能
V0.0.6 2020年6月10日
1. 新增微信小程序验签接口 2. 新增微信小程序登录接口 3. 完善token拦截器
V0.0.7 2020年6月19日
1. 修复服务器调用EMQAPI输入流读取不完整bug 2. 新增告警记录已读、未读接口
二、网页端
- 功能介绍
设备列表、设备管理、产品管理、节点管理、系统日志、告警管理、触发器、告警模板、告警日志、用户管理、企业管理、权限管理、角色管理、设备模拟器、并发模拟器 - 页面展示
三、小程序端
- 所用技术
weui、path-mqtt、原生小程序 - 功能介绍
- 微信登录、平台账号绑定、设备列表展示、节点数据上报、节点数据下发、告警数据查看(已读、未读、删除)、扫码添加设备
- 页面展示
四、所需环境
软件环境:JDK8.0 、Mysql、Nginx、Docker、node、EMQ-X
开发工具:IDEA、webstrom、微信开发者工具
辅助工具:mqttfx、postman
系统环境:阿里云ECS、域名、证书
域名需要购买,证书阿里云有免费的,ECS我用的2核4G