No Description

caner c69c594950 初始化项目,更新文档 1 year ago
src c69c594950 初始化项目,更新文档 1 year ago
.gitignore e3b07211bd Initial commit 1 year ago
LICENSE e3b07211bd Initial commit 1 year ago
README.md c69c594950 初始化项目,更新文档 1 year ago
app.js c69c594950 初始化项目,更新文档 1 year ago
config.js c69c594950 初始化项目,更新文档 1 year ago
package.json c69c594950 初始化项目,更新文档 1 year ago

README.md

IOT 服务端

使用aedes作为MQTT服务 使用fastiry作为http服务 使用sqlite3作为数据存储 服务框架使用http+mqtt+sqlite3,以轻量化为目的。整个原理采用IM群聊方式进行设备管理

  1. 设备:
    1. 存储:
      1. wifi 房间号,设备唯一ID
    2. 接收:
      1. 接收来自管理端的配置信息:wifi 房间号,唯一设备ID等
      2. 接收来自房间的控制信息:执行命令
    3. 发送:
      1. 订阅房间号后发送设备状态等相关信息
    4. 订阅:
      1. 主动订阅房间号
      2. 被动订阅管理端(由服务端完成)
  2. 管理端(网页)
    1. 对房间进行增删改查操作
    2. 对设备进行相关配置,分配房间号,配置Wi-Fi等
    3. 对房间中的设备进行增删改查,控制等操作,房间外的设备不允许控制操作
    4. 设备统计(包括未分配房间的设备,未分配设备只显示状态),在房间中显示各设备状态
    5. 控制设备时,需要下发设备唯一ID
  3. 服务端
    1. 主动对连接设备进行管理号的订阅,方便后面统计设备状态,修改wifi 信息等
    2. 增加http-jwt鉴权
    3. splite3
      1. 存储房间,设备,日志等相关数据
      2. 为管理端提供数据支撑
    4. mqtt
      1. 对已连接设备进行主动订阅,并下发唯一设备id: 设备连接时需要提供名称,唯一ID=名称+uuid

Run

1. yarn build
2. ./server

Debug

1. yarn
2. node index.js
3. node>=18.0.0