IOT 服务端
使用aedes作为MQTT服务
使用fastify作为http服务
使用sqlite3作为数据存储
服务框架使用http+mqtt+sqlite3,以轻量化为目的。整个原理采用IM群聊方式进行设备管理
- 设备:
- 存储:
- wifi相关信息、房间号、设备唯一ID(芯片ID)、设备类型、软件版本、设备电量、
- 接收:(下发)
- 接收来自管理端的配置信息:wifi 房间号,唯一设备ID等
- 接收来自房间的控制信息:执行命令
- 发送:(上传)
- 订阅房间号后发送设备状态等相关信息
- 订阅:
- 主动订阅房间号
- 被动订阅管理端(由服务端完成)
- 管理端(网页)
- 对房间进行增删改查操作
- 对设备进行相关配置,分配房间号,IOT软件升级、配置Wi-Fi等
- 对房间中的设备进行增删改查,控制等操作,房间外的设备(不在线的可以删除)其他不允许控制操作
- 设备统计(包括未分配房间的设备,未分配设备只显示状态),在房间中显示各设备状态
- 控制设备时,需要下发设备唯一ID
- 在登录的管理中可以对房间设备进行控制,如打开或关闭某个设备,以登录管理员进行指令下发
- 服务端
- 主动对连接设备进行管理号的订阅,方便后面统计管理设备
- 增加http-jwt鉴权
- splite3
- 存储房间,设备,日志等相关数据
- 为管理端提供数据支撑
- mqtt
- 终端连接mqtt服务器时需要用户名和密码进行认证,认证通过后才能连接
- 对已连接设备进行主动订阅,并下发唯一设备id: 设备连接时需要提供名称,唯一ID=名称+uuid
- 日志
- 设备日志:
- 设备连接、断开、配置、状态、错误等
- 设备操作,接收到某设备指令或者执行某中操作的日志
- 管理员操作日志,如添加设备、修改设备、删除设备、添加房间、修改房间、删除房间发送给某设备执行的操作等
Run
1. yarn build
2. ./server
Debug
1. yarn
2. node index.js
3. node>=18.0.0