STM32 Proteus仿真OLED温度湿度DHT11控制系统-0006

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; //关闭加热

}

你可能感兴趣的:(Proteus仿真,proteus,stm32,单片机)