|
|
|
@ -62,10 +62,6 @@ float temperature=0;
|
|
|
|
|
|
|
|
|
|
|
|
// u8 RS485_RX_BUF[64];
|
|
|
|
// u8 RS485_RX_BUF[64];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*********************
|
|
|
|
/*********************
|
|
|
|
**********************
|
|
|
|
**********************
|
|
|
|
入口函数
|
|
|
|
入口函数
|
|
|
|
@ -83,7 +79,6 @@ void os_init(void)
|
|
|
|
vTaskStartScheduler();
|
|
|
|
vTaskStartScheduler();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*********************
|
|
|
|
/*********************
|
|
|
|
**********************
|
|
|
|
**********************
|
|
|
|
创建 任务,队列,信号集等句柄,也可以测试用
|
|
|
|
创建 任务,队列,信号集等句柄,也可以测试用
|
|
|
|
@ -123,7 +118,6 @@ void start_task(void*pvParameters)
|
|
|
|
// if(handler==pdPASS){printf("与传感器通信任务创建成功\r\n");}
|
|
|
|
// if(handler==pdPASS){printf("与传感器通信任务创建成功\r\n");}
|
|
|
|
// else{printf("与传感器通信任务创建失败\r\n");}
|
|
|
|
// else{printf("与传感器通信任务创建失败\r\n");}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// //创建控灯任务
|
|
|
|
// //创建控灯任务
|
|
|
|
// handler4=xTaskCreate((TaskFunction_t )led_task,
|
|
|
|
// handler4=xTaskCreate((TaskFunction_t )led_task,
|
|
|
|
// (const char* )"led_task",
|
|
|
|
// (const char* )"led_task",
|
|
|
|
@ -135,13 +129,11 @@ void start_task(void*pvParameters)
|
|
|
|
// else{printf("控灯任务创建失败\r\n");}
|
|
|
|
// else{printf("控灯任务创建失败\r\n");}
|
|
|
|
vTaskDelete(StartTask_Handler); // 删除开始任务
|
|
|
|
vTaskDelete(StartTask_Handler); // 删除开始任务
|
|
|
|
taskEXIT_CRITICAL(); // 退出临界区
|
|
|
|
taskEXIT_CRITICAL(); // 退出临界区
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Sensor_Communication_task(void *pvParameters)
|
|
|
|
void Sensor_Communication_task(void *pvParameters)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while (1)
|
|
|
|
while (1)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
@ -191,7 +183,6 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
|
|
|
|
|
|
|
|
// printf("now_tem=%d.%d℃,now_hum=%d.%d%% ,co2=%d\r\n",T/10,T%10,H/10,H%10,C);
|
|
|
|
// printf("now_tem=%d.%d℃,now_hum=%d.%d%% ,co2=%d\r\n",T/10,T%10,H/10,H%10,C);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*GPIO1->报警铃 GPIO6->压缩机 GPIO3->加热棒 GPIO4—>新风风扇 GPIO5->加湿器 */
|
|
|
|
/*GPIO1->报警铃 GPIO6->压缩机 GPIO3->加热棒 GPIO4—>新风风扇 GPIO5->加湿器 */
|
|
|
|
|
|
|
|
|
|
|
|
if ((T < (tem - 20) || T > (tem + 20) || H < (hum - 100) || H > (hum + 100)) && (tick > 610)) // 温度偏差2℃报警,湿度偏差10报警
|
|
|
|
if ((T < (tem - 20) || T > (tem + 20) || H < (hum - 100) || H > (hum + 100)) && (tick > 610)) // 温度偏差2℃报警,湿度偏差10报警
|
|
|
|
@ -207,7 +198,8 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
if (T < 600 && T > -30)
|
|
|
|
if (T < 600 && T > -30)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
diff = current_T - T;
|
|
|
|
diff = current_T - T;
|
|
|
|
if(diff<0)diff=-diff;
|
|
|
|
if (diff < 0)
|
|
|
|
|
|
|
|
diff = -diff;
|
|
|
|
if (diff < 3 || current_T == 0) // 最近两次温差相差0.3℃,消除传感器感应出错的影响
|
|
|
|
if (diff < 3 || current_T == 0) // 最近两次温差相差0.3℃,消除传感器感应出错的影响
|
|
|
|
{
|
|
|
|
{
|
|
|
|
pid.set_tem = tem / 10.0;
|
|
|
|
pid.set_tem = tem / 10.0;
|
|
|
|
@ -223,7 +215,6 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (H > (hum + 50)) // 湿度高于设定值5,打开新风风扇 GPIO4->PD1
|
|
|
|
if (H > (hum + 50)) // 湿度高于设定值5,打开新风风扇 GPIO4->PD1
|
|
|
|
{
|
|
|
|
{
|
|
|
|
HC595_Send_Byte(gpio_state |= 0x08); // 打开新风风扇 |=0000 1000 0x08
|
|
|
|
HC595_Send_Byte(gpio_state |= 0x08); // 打开新风风扇 |=0000 1000 0x08
|
|
|
|
@ -243,7 +234,6 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
humidity_flag = 0;
|
|
|
|
humidity_flag = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (humidity_flag == 2 && H >= hum)
|
|
|
|
if (humidity_flag == 2 && H >= hum)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
HC595_Send_Byte(gpio_state &= 0xE7); // 关闭加湿器 关闭风扇 &=1110 0111 0xE7
|
|
|
|
HC595_Send_Byte(gpio_state &= 0xE7); // 关闭加湿器 关闭风扇 &=1110 0111 0xE7
|
|
|
|
@ -252,7 +242,6 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
RS485_1_Send_Data_2(); // 上传参数
|
|
|
|
RS485_1_Send_Data_2(); // 上传参数
|
|
|
|
RX_BUF_Transfer(0, 23);
|
|
|
|
RX_BUF_Transfer(0, 23);
|
|
|
|
// RX_BUF_Printf(128);
|
|
|
|
// RX_BUF_Printf(128);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB6 && RS485_RX_BUF_COPY[2] == 0x03)
|
|
|
|
else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB6 && RS485_RX_BUF_COPY[2] == 0x03)
|
|
|
|
@ -345,12 +334,9 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
RS485_RX_CNT = 0;
|
|
|
|
RS485_RX_CNT = 0;
|
|
|
|
// printf("end data to serial monitor end");
|
|
|
|
// printf("end data to serial monitor end");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// void Host_Computer_Communication(void)
|
|
|
|
// void Host_Computer_Communication(void)
|
|
|
|
//{
|
|
|
|
//{
|
|
|
|
// if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB6)
|
|
|
|
// if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB6)
|
|
|
|
@ -433,7 +419,3 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|