系统功能:
系统分为手动和自动模式,上电默认为自动模式。自动模式下如果获取到湿度
值大于设定的湿度值则自动打开风扇,手动模式下手动开关风扇。
系统上电后显示“欢迎使用除湿控制系统请稍后”,两秒钟后进入主页面显示。
第一行显示系统模式,手动或自动模式
第二行显示获取到的温湿度
第三行显示设置的湿度阈值
第四行显示风扇状态和系统报警状态,风扇状态有开关状态,系统状态和OK和
NG状态。
按键操作:
短按PB4按键切换系统状态
短按PB5按键调高设定湿度
短按PB6按键调低设定湿度
短按PB7按键为手动模式下开关风扇
系统功能框图:
主要功能模块原理图:
电源时钟烧录接口:
单片机和按键输入电路:
传感器和控制电路:
资料获取地址
系统主要功能模块代码
初始化代码:
/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 *///在HAL库初始化串口1后调用HAL_Delay(100);SetUart1RxToInput();HAL_Delay(50);//uart1打开接收中断HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1);InitOled();InitOledDisp();ResetDHT11();/* USER CODE END 2 */
//系统信息更新
void SystemControl(void){static uint8_t updateCnt = 0;updateCnt++; if(updateCnt>=SYSTEM_UPDATE_INTER){updateCnt = 0;if(DHT11ReadData()==0) //DHT11温湿度读取OK{;}if(sysMode==AUTO_MODE){UpdateBleData();}}//检测到湿度过高if(DHT11_Data.humi_int>setHumiVal){sysSta = true; //蜂鸣器报警BUZZER_ON();if(sysMode==AUTO_MODE){ fanSta = true; FAN_ON();}}else{sysSta = false; //正常状态BUZZER_OFF();if(sysMode==AUTO_MODE){fanSta = false;FAN_OFF();}}}
蓝牙模块上报系统数据:
//更新BLE数据void UpdateBleData(void){//系统模式if(sysMode==AUTO_MODE){printf("Mode:Auto\r\n");}else if(sysMode==MANU_MODE){printf("Mode:Manual\r\n");}//风扇状态if(fanSta==false){ printf("FAN:OFF\r\n");}else if(fanSta==true){printf("FAN:ON\r\n");}printf("Temp:%02d Humi:%02d\r\n", DHT11_Data.temp_int, DHT11_Data.humi_int); printf("setHumi:%02d\r\n", setHumiVal); }
此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。
系统各模块资料: