新风模块独立控制线控器

liuxiaodi b581103d5c 添加ERROR 1 month ago
1 3bbc65fae8 first commit 2 months ago
main b581103d5c 添加ERROR 1 month ago
server_cert 3bbc65fae8 first commit 2 months ago
xfUI b581103d5c 添加ERROR 1 month ago
.gitignore 3bbc65fae8 first commit 2 months ago
CMakeLists.txt b581103d5c 添加ERROR 1 month ago
copyui.bat 3bbc65fae8 first commit 2 months ago
copyui.sh 3bbc65fae8 first commit 2 months ago
dependencies.lock 3bbc65fae8 first commit 2 months ago
partitions.csv 3bbc65fae8 first commit 2 months ago
readme.md b581103d5c 添加ERROR 1 month ago
sdkconfig 3be9c4e512 log bug 2 months ago
sdkconfig.old a4c74352f4 fix bug 2 months ago
sdkconfigs 3bbc65fae8 first commit 2 months ago
字表 3bbc65fae8 first commit 2 months ago

readme.md

4寸线控器项目

目录

1.云端接入指令说明

1.1 运行状态上报

线控器向云端上报的自己的运行状态

  • 标识符: status
  • 参数:
{
  "action": "devSend",
  "msgId": 0,
  "deviceCode": "84FCE66AA534",
  "subDeviceId": "",
  "data": {
    "cmd": "status",
    "params": {
      "power": 1,
      "set_max_hum": 25,
      "filter_life_remaining": 80,
      "set_filter_life_time" : 3600000,
      "mode": 1,
      "temperature": 25,
      "humidity": 52,
      "air_quality": 0,
      "co2": 0,
      "fan_speed": 5,
      "timer_status": 1,
      "duration": 0.5
      
    }
  }
}
  • 参数说明:
字段 读写类型 类型 说明
power W/R int 电源状态(0:关,1:开)
set_max_hum W/R int 设定最大湿度
filter_life_remaining R int 滤芯剩余%
set_filter_life_time R int 设置滤芯寿命(分钟)
temperature W/R int 室内温度
humidity R int 室内湿度
air_quality R int 空气质量PM2.5
co2 R int 二氧化碳浓度
mode W/R int 工作模式(1:内循环,2:新风,3:加湿4:自动)
fan_speed W/R int 风速(1:1档; 2:2 档; 3: 3 档; 4:4 档; 5: 5 档;)
timer_status W/R int 定时状态(1:有定时;0:无定时)
duration W/R float 定时时间

1.2 故障上报

  • 标识符: fault
  • 参数:
{
    "action": "devSend",
    "msgId": 0,
    "deviceCode": "M1",
    "subDeviceId": "",
    "timestamp": 1231242345,
    "data":{
        "cmd": "fault",
        "params": [
          {
            "code": "故障码1",
            "desc": "故障描述1"
          },
          {
            "code": "故障码2",
            "desc": "故障描述2"
          }
        ]
      
    }
}

1.3 最大湿度设定

  • 标识符:setMaxTemp
  • 参数:
字段 类型 说明
value int 预设最大湿度值
  • 示例:
{
    "cmd":"setMaxTemp",
    "params": {
        "value": 24
    }
}

1.4 模式设定

  • 标识符:setMode
  • 参数:
字段 类型 说明
value int 预设模式,工作模式(1:内循环,2:新风 3:加湿4:自动)
  • 示例:
{
    "cmd":"setMode",
    "params": {
        "value": 1
    }
}

1.5 风速设定

  • 标识符:setFanLevel
  • 参数:
字段 类型 说明
value int 预设风速( 1:1档; 2:2 档; 3: 3 档; 4:4 档; 5: 5 档)
  • 示例:
{
    "cmd":"setFanLevel",
    "params": {
        "value": 1
    }
}

1.6 定时设定

  • 标识符:setTimer
  • 参数:
字段 类型 说明
value float 定时时间(小时
status int 1:开启0:关闭
  • 示例:
{
    "cmd":"setTimer",
    "params": {
        "value": 0.5,
        "status": 1
    }
}

1.8 设置滤芯寿命(主控)

  • 标识符:setFilterLifeTime
  • 参数:
字段 类型 说明
value int 滤芯寿命(分钟 )
  • 示例:
{
    "cmd":"setPower",
    "params": {
        "value": 360000
    }
}

1.9 运行参数设定

  • 标识符:setParam
  • 参数:
字段 类型 说明
report_duration int 数据上报频率(单位:秒)
  • 示例:
{
  "cmd":"setParam",
  "params": {
    "report_duration": 10
  }
}

1.10 排风风机电压设定

  • 标识符:setsupplyFanVoltage
  • 参数:
字段 类型 说明
gear int 档位 (1:一档 2:二挡 3:三档 4:四档 5:五档)
value int 风机电压 (0-100,1代表0.1V)
  • 示例:
{
  "cmd":"setexhaustFanVoltage",
  "params": {
    "gear": 1,
    "value": 40
  }
}

1.11 送风风机电压设定

  • 标识符:setsupplyFanVoltage
  • 参数:
字段 类型 说明
gear int 档位 (1:一档 2:二挡 3:三档 4:四档 5:五档)
value int 风机电压 (0-100,1代表0.1V)
  • 示例:
{
  "cmd":"setsupplyFanVoltage",
  "params": {
    "gear": 1,
    "value": 40
  }
}

2.设计说明

2.1 风阀配置设计思路

高级配置界面提供风阀与控制器对应关系设置功能,配置后保存到 NVS 中,NVS存储结构为 key-value 形式,

  • key 对应控制器的编号 ,定义如下:
#define NVS_FAN_VALVE_MAIN_CONTROLLER "main_controller" // 主控风阀设置
#define NVS_FAN_VALVE_SUB_CONTROLLER_1 "sub_controller_1" // 分控风阀设计
#define NVS_FAN_VALVE_SUB_CONTROLLER_2 "sub_controller_2" // 分控二风阀设置
#define NVS_FAN_VALVE_SUB_CONTROLLER_3 "sub_controller_3" // 分控三风阀设置
#define NVS_FAN_VALVE_SUB_CONTROLLER_4 "sub_controller_4" // 分控四风阀设置
  • value 保存为风阀的配置值,类型为uint8_t,5个风阀的设置分别对应其实5个BIT, 如配置了1号风阀和2号风阀则,二进制为0000 0011, 实际保存值是3

系统上电加载时,先从 nvs 中读取本地保存的风阀配置,如果没有配置过,则默认为主控控制1-5个风阀,并写入到配置中。 读取到配置后将setting_t数据结构转化为 ac_controller中的结构,并可以同步到主逻辑中.

2.2 分控说明

2.2.1 分控从站号

分控的从站号为02-05,一条总线最多支持4个,主控可以设置分控与风阀的对应关系。

2.2.2 设计思路

主控的【高级设置】界面中可以配置主控及4个分控与风阀的对应关系,主控的逻辑中维护配置信息。当主控开机时,会根据风阀配置信息,来识别当前设备接了哪几个分控,同步开启一个任务,轮询每个分控的状态 包含(开关机,风档(1-3-5,三个档位),环境温湿度,设置温度),当任意一个分控开机时,主控会开机,主控根据分控的风档,设置相应风阀的角度,1-3-5档分别对应角度为;30-60-90,当前分控关机时,风阀角度为0 主控根据分控的设置温度与环境温度的差值设置风阀角度。

  • 制冷模式:当环境温度低于设置温度1度切持续10分钟时,当前分控对应的风阀角度为60,2度时的角度为30度,3度时的角度为0度 ,即风阀关闭。
  • 制热模式:当环境温度高于设置温度1度切持续10分钟时,对应的风阀角度为60,2度时为30度,3度则关闭。
  • 其他模式:以分控的设置角度为准。
2.2.3 优先级问题

主控读取分风箱主板5个风阀的寄存器,当前5个风阀角度全部为0时,要关机,但此时一任意一个分控开着又会开机,所以产生了逻辑冲突。 此时,主控以5个风阀角度都为0的情况为最优级,以确保机组的安全运行,此时如果分控都开机,会不以分控的状态为准,但如果任一个分控的风阀没有关闭,则开机。

2.2.4 主控与分控485通讯协议
  • 1.采用RS485接口。
  • 2.采用MODBUS-RTU通讯模式。
  • 3.遵循主-从通讯方式,线控器为从机。
  • 4.通讯波特率:9600bps。
  • 5.数据采用1个起始位,8个数据位,0个无校验位,一个停止位格式。
  • 6.通讯帧之间间隔须大于500ms。

采用标准modbus-rtu数据格式,数据帧中包含地址信息,功能码,信息域及CRC检验码。

地址 数据含义 访问类型 范围值 备注
40001 工作模式 RW 0-5:0x00 制冷模式0x01 制热模式0x02 除湿模式0x03 送风模式0x04 加湿模式 从机显示相应模式的图标
40002 PM2.5 RW 0-999 主机写入,预留
40003 主机设置温度 RW 16-30
40004 CO2 RW 400-9999 由主机写入,目前预留
40005 电源状态 R 0:关机,1:开机
40006 风速档位 R 1-5:代表风速1-5档
40007 当前环境温度 R 以16 位有符号整型存储,将其除以10 得实际温度值
40008 当前环境湿度 R 以16 位有符号整型存储,将其除以10 得实际温度值
40009 通讯状态 R 0: 通讯失败,1:通讯正常 可用来标识分控与主控的通讯状态。当接收不到主控的指令超过一定时间,则认为通讯失败。从机需要显示相应图标
40010 设定温度 R 以16 位有符号整型存储,将其除以10 得实际温度值