IOT 服务端
使用aedes作为MQTT服务
使用fastiry作为http服务
使用sqlite3作为数据存储
服务框架使用http+mqtt+sqlite3,以轻量化为目的。整个原理采用IM群聊方式进行设备管理
- 设备:
- 存储:
- wifi 房间号,设备唯一ID
- 接收:
- 接收来自管理端的配置信息:wifi 房间号,唯一设备ID等
- 接收来自房间的控制信息:执行命令
- 发送:
- 订阅房间号后发送设备状态等相关信息
- 订阅:
- 主动订阅房间号
- 被动订阅管理端(由服务端完成)
- 管理端(网页)
- 对房间进行增删改查操作
- 对设备进行相关配置,分配房间号,配置Wi-Fi等
- 对房间中的设备进行增删改查,控制等操作,房间外的设备不允许控制操作
- 设备统计(包括未分配房间的设备,未分配设备只显示状态),在房间中显示各设备状态
- 控制设备时,需要下发设备唯一ID
- 服务端
- 主动对连接设备进行管理号的订阅,方便后面统计设备状态,修改wifi 信息等
- 增加http-jwt鉴权
- splite3
- 存储房间,设备,日志等相关数据
- 为管理端提供数据支撑
- mqtt
- 对已连接设备进行主动订阅,并下发唯一设备id: 设备连接时需要提供名称,唯一ID=名称+uuid
Run
1. yarn build
2. ./server
Debug
1. yarn
2. node index.js
3. node>=18.0.0