README.md 2.4 KB

IOT 服务端

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

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

    1. 设备日志:

      1. 设备连接、断开、配置、状态、错误等
      2. 设备操作,接收到某设备指令或者执行某中操作的日志
      3. 管理员操作日志,如添加设备、修改设备、删除设备、添加房间、修改房间、删除房间发送给某设备执行的操作等

        Run

        1. yarn build
        2. ./server
        

Debug

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