## 4寸线控器项目 ### 目录 * [4寸线控器项目](#4寸线控器项目) * [1.云端接入指令说明](#1云端接入指令说明) * [1.1 运行状态上报](#11-运行状态上报) * [1.2 故障上报](#12-故障上报) * [1.3 温度设定](#13-温度设定) * [1.4 模式设定](#14-模式设定) * [1.5 风速设定](#15-风速设定) * [1.6 定时设定](#16-定时设定) * [1.7 风阀档位控制(分控)](#17-风阀档位控制分控) * [1.8 总开关控制(主控)](#18-总开关控制主控) * [1.9 运行参数设定](#19-运行参数设定) * [1.10 通知显示功能](#110-通知显示功能) * [1.11 新风开关控制](#111-新风开关控制) * [1.12 风阀开关控制(分控)](#112-风阀开关控制分控) * [1.13 风机电压设定](#113-风机电压设定) ### 1.云端接入指令说明 #### 1.1 运行状态上报 _线控器向云端上报的自己的运行状态_ * 标识符: `status` * 参数: ```json { "power": 1, "temperature": 25, "humidity": 59, "air_quality": 59, "co2": 999, "mode": 1, "fan_speed": 1, "set_temp": 24, "timer_status": 0, "duration":0.5, "sub_devices":[ { "id": "分控ID", "humidity":"分控湿度", "temperature":"分控温度", "fan_value": 1, "power":0 } ] } ``` * 参数说明: | 字段 | 读写类型 | 类型 | 说明 | |--------------|------|--------------|------------------------------------------------------| | power | W/R | int | 电源状态(0:关,1:开) | | temperature | W/R | int | 室内温度 | | humidity | R | int | 室内湿度 | | air_quality | R | int | 空气质量PM2.5 | | co2 | R | int | 二氧化碳浓度 | | mode | W/R | int | 工作模式(1:制冷,2:制热,3:除湿4:送风5:自动) | | fan_speed | W/R | int | 风速(0:自动; 1:1档; 2:2 档; 3: 3 档; 4:4 档; 5: 5 档; 6:超强档;) | | set_temp | W/R | int | 当前设置的温度 | | timer_status | R | int | 定时状态(1:有定时;0:无定时) | | duration | R | float | 定时时间 | | sub_devices | R | Object Array | 子设备(分控)状态数据 | * `sub_devices`字段说明 | 字段 | 类型 | 说明 | |-------------|--------|--------------| | id | string | 分控ID | | humidity | int | 分控湿度 | | temperature | int | 分控温度 | | fan_value | int | 风阀档位 | | power | int | 电源状态(1:开0:关) | #### 1.2 故障上报 * 标识符: `fault` * 参数: ```json { "action": "devSend", "msgId": 0, "deviceCode": "M1", "subDeviceId": "", "timestamp": 1231242345, "data":{ "cmd": "fault", "params": [ { "code": "故障码1", "desc": "故障描述1" }, { "code": "故障码2", "desc": "故障描述2" } ] } } ``` #### 1.3 温度设定 * 标识符:`setTemp` * 参数: | 字段 | 类型 | 说明 | |-------|-----|-------| | value | int | 预设温度值 | * 示例: ```json { "cmd":"setTemp", "params": { "value": 24 } } ``` #### 1.4 模式设定 * 标识符:`setMode` * 参数: | 字段 | 类型 | 说明 | |-------|-----|-----------------------------------| | value | int | 预设模式,工作模式(0:制冷,1:制热,2:除湿3:送风4:加湿) | * 示例: ```json { "cmd":"setMode", "params": { "value": 1 } } ``` #### 1.5 风速设定 * 标识符:`setFanLevel` * 参数: | 字段 | 类型 | 说明 | |-------|-----|--------------------------------------------------------| | value | int | 预设风速(0:自动; 1:1档; 2:2 档; 3: 3 档; 4:4 档; 5: 5 档; 6:超强档;) | * 示例: ```json { "cmd":"setFanLevel", "params": { "value": 1 } } ``` #### 1.6 定时设定 * 标识符:`setTimer` * 参数: | 字段 | 类型 | 说明 | |-------|-----|----------| | value | float | 定时时间(小时) | | status | int | 1:开启0:关闭 | * 示例: ```json { "cmd":"setTimer", "params": { "value": 0.5, "status": 1 } } ``` #### 1.7 风阀档位控制(分控) * 标识符:`setFanValve` * 参数: | 字段 | 类型 | 说明 | |-------|-----|-----------------| | value | int | 风阀档位(1, 2,3,4,5) | * 示例: ```json { "cmd":"setFanValve", "params": { "value": 1 } } ``` #### 1.8 总开关控制(主控) * 标识符:`setPower` * 参数: | 字段 | 类型 | 说明 | |-------|-----|------------| | value | int | 电源开关量(1,0) | * 示例: ```json { "cmd":"setPower", "params": { "value": 1 } } ``` #### 1.9 运行参数设定 * 标识符:`setParam` * 参数: | 字段 | 类型 | 说明 | |-------|-----|------------| | report_duration | int | 数据上报频率(单位:秒) | * 示例: ```json { "cmd":"setParam", "params": { "report_duration": 10 } } ``` #### 1.10 通知显示功能 cmd:setNotice params:{text:"这是内容"} * 标识符: `cmd:setNotice` * 参数: | 字段 | 类型 | 说明 | |-------|-----|------------| | text | string | 要显示的内容 | #### 1.11 新风开关控制 * 标识符:`setNewFan` * 参数: | 字段 | 类型 | 说明 | |-------|-----|-----------------------| | value | int | 新风模式控制(1:通风模式 2:新风模式) | * 示例: ```json { "cmd":"setNewFan", "params": { "value": 1 } } ``` #### 1.12 风阀开关控制(分控) * 标识符:`setFanPower` * 参数: | 字段 | 类型 | 说明 | |-------|-----|-------------| | value | int | 风阀开关(1开 0关) | * 示例: ```json { "cmd":"setFanPower", "params": { "value": 1 } } ``` #### 1.13 风机电压设定 * 标识符:`setFanVoltage` * 参数: | 字段 | 类型 | 说明 | |-------|-----|---------------------------------| | gear | int | 档位 (1:一档 2:二挡 3:三档 4:四档 5:五档) | | value | int | 风机电压 (0-100,1代表0.1V) | * 示例: ```json { "cmd":"setFanVoltage", "params": { "gear": 1, "value": 40 } } ``` ### 2.设计说明 #### 2.1 风阀配置设计思路 高级配置界面提供风阀与控制器对应关系设置功能,配置后保存到 NVS 中,NVS存储结构为 key-value 形式, * key 对应控制器的编号 ,定义如下: ```c #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`中的结构,并可以同步到主逻辑中.