STM32 Proteus仿真OLED温度湿度DHT11控制系统-0006
Proteus仿真小实验:
STM32 Proteus仿真OLED温度湿度DHT11控制系统-0006
功能:
硬件组成:STM32F103R6单片机 +OLED显示器+DHT11温度湿度+多个按键+4个继电器对应(加热、制冷、加湿、干燥)+24c02存储器
1.通过DHT11获取温度和湿度。
2.通过按键设定温度湿度目标值,温度低于目标值加热、高于制冷;湿度低于目标加湿、高于干燥。
3.个继电器对应(加热、制冷、加湿、干燥)。
4.OLED显示温度湿度 温度湿度目标值。通过按键配合显示器设置目标值。
有功能视频哦:
可以哔哩哔哩B站,搜索UP主“单片机仿真汇”。在其空间中搜索关键词“OLED温度湿度”即可找到对应详细功能视频和介绍。

电路图:
部分源代码:
//初始化EEPROM
I2C_INIT();
//读取保存的设定值
duqusheding();
//初始化控制
PBout(13)=1;
PBout(13)=1;
PBout(14)=1;
PBout(15)=1;
PCout(8)=1;
PCout(9)=1;
PCout(10)=1;
PCout(11)=0;//一直开启空气循环风扇
PBout(5)=1;
//OLED初始化
UG_OLED_Init();
NVICConfig();
//RCC时钟开启
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
//定时器配置
TimerConfig(TIM3,10);//10mS定时器
TimerSW(TIM3, ENABLE);
while(1)
{
//读取温度和湿度
DHT11_receive(&dangqianshidu,&dangqianwendu);
//显示刷新
xianshishuaxing(dangqianwendu,dangqianshidu,mubiaowendu,mubiaoshidu,mode);
//温度湿度的控制以及报警
//若温度高于设定温度1度以上
if( dangqianwendu>(mubiaowendu+1) )
{
//则驱动温度循环风扇和制冷
PBout(13)=0; //开启温度循环
PBout(15)=0; //开启制冷
PBout(14)=1; //关闭加热
}