新风模块独立控制线控器

liuxiaodi b581103d5c 添加ERROR преди 9 месеца
1 3bbc65fae8 first commit преди 10 месеца
main b581103d5c 添加ERROR преди 9 месеца
server_cert 3bbc65fae8 first commit преди 10 месеца
xfUI b581103d5c 添加ERROR преди 9 месеца
.gitignore 3bbc65fae8 first commit преди 10 месеца
CMakeLists.txt b581103d5c 添加ERROR преди 9 месеца
copyui.bat 3bbc65fae8 first commit преди 10 месеца
copyui.sh 3bbc65fae8 first commit преди 10 месеца
dependencies.lock 3bbc65fae8 first commit преди 10 месеца
partitions.csv 3bbc65fae8 first commit преди 10 месеца
readme.md b581103d5c 添加ERROR преди 9 месеца
sdkconfig 3be9c4e512 log bug преди 10 месеца
sdkconfig.old a4c74352f4 fix bug преди 10 месеца
sdkconfigs 3bbc65fae8 first commit преди 10 месеца
字表 3bbc65fae8 first commit преди 10 месеца

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 得实际温度值