stm32温控大棚测控系统(CO2+温湿度+光照)+仿真
一.硬件方案
主要由STM32F103C8T6单片机最小系统板+OLED12864显示模块+二氧化碳传感器模块+温湿度传感器模块+光强检测电路+LED灯光+风扇电路+蜂鸣器电路+电源开关构成;
仿真图如下:
二.设计功能
- 采集环境温湿度、光照强度、二氧化碳浓度;
- OLED显示屏显示信息,按键设置温湿度、光照强度、二氧化碳监测阈值;
- 当触发阈值时,报警提醒;温度超过阈值时,启动风扇自动降温通风;光强强度低于阈值时,LED灯补光;
- 按键可设置阈值:按键1:模式切换;按键2:设置;按键3:自加1或控制风扇;按键4:自减1或控制灯光;
- 无线通信连接APP,远程显示数据信息。
- 连接蓝牙,APP可控制风扇、LED灯开关,获取系统数据;
三.软件设计
主程序源码
int main(void){vu8 key=0; delay_init(); //延时函数初始化 LED_Init(); //初始化与LED连接的硬件接口BEEP_Init(); //初始化蜂鸣器端口KEY_Init(); //初始化与按键连接的硬件接口uart_init(9600);usart2_Init(9600);TIM2_Int_Init(99,7199);//10Khz的计数频率,计数到5000为500ms Adc_Init(); //光强采集ADC初始化FAN_Init(); //风扇初始化OLED_Init(); //显示屏初始化OLED_ColorTurn(0);//0正常显示,1 反色显示OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示display_refresh(); //刷新显示屏Delay_ms(500);while(1){key=KEY_Scan(1); //得到键值KEY_Handle(key);APP_Handle();if(W_100ms>=99) {W_100ms=0;if(refresh>0)APP_refresh();}if(T_100ms>=49){T_100ms = 0;//采集烟雾浓度值light = Get_Adc_Average(9,10);getDHT11Data(); //获取湿度数据if(set==0) //set为0,说明现在不是设置状态{display_refresh(); //显示AD数值和报警值if(mode==1){if(light<setLight){LEDR=0;}else{LEDR=1;}}//报警阈值判断if(Temp>setTemp){warn_flag=1;}else if(Humi>setHumi){warn_flag=2;}else if(light<setLight){warn_flag=3;}else if(co2>setco2){warn_flag=4;}else{warn_flag=0;}//蜂鸣器报警控制if(warn_flag>0){if(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_15)==1){BEEP=0;}elseBEEP=1;}elseBEEP=1;if(mode==1){if(warn_flag==1){if(FAN_state==0)printf("风扇已开启\r\n");FAN=1;}else{FAN=0;if(FAN_state==1)printf("风扇已关闭\r\n");}}}}}
}
链接:https://pan.baidu.com/s/1-Ar1mLe-1qtdt4VCcN3gBg 提取码: 6yfz