基于STM32的DHT11温湿度控制系统仿真设计

您所在的位置:网站首页 单片机采集控制系统 基于STM32的DHT11温湿度控制系统仿真设计

基于STM32的DHT11温湿度控制系统仿真设计

2023-11-20 01:29| 来源: 网络整理| 查看: 265

基于STM32的DHT11温湿度控制系统仿真设计(仿真+程序+报告+讲解) 演示视频1.主要功能2.仿真3. 程序4. 设计报告1主控制器选择 5.设计内容 百度云网盘下载链接 仿真图proteus 8.9

程序编译器:keil 5

编程语言:C语言

设计编号:C0076

演示视频

基于STM32的DHT11温湿度控制系统仿真设计(仿真+程序+报告+讲解)

1.主要功能

结合实际情况,基于STM32F103单片机设计一个温湿度采集控制系统。该系统应满足的功能要求为:

1、以STM32为最小系统电路进行连接,用液晶显示屏显示温度、湿度、温度阈值,湿度阈值。

2、用DHT11温湿度传感器进行温湿度的测量。

3、可以通过按键可以设置温室度阈值。

4、当温度达到设置的阈值时,风扇进行转动,由此来达到散热降温的目的。当湿度不足设定的阈值时,加湿器开始工作。

主要硬件设备:STM32F103单片机、DHT11温湿度模块、按键、LCD1602液晶屏幕。

以下为本设计资料展示:

2.仿真

整体设计方案

该系统为温湿度采集控制系统,其主要的功能有:以stm32为最小系统电路进行连接,用液晶显示屏显示温度、湿度数据。同时用温湿度传感器进行温湿度的采集与测量。温湿度采集器可以通过按钮进行温湿度测量的转化。通过按键可以设置阈值。当温度达到报警的阈值时散热继电器开始工作,带动发动机进行转动,由此来达到散热的目的。当湿度达到一定的阈值时,加湿继电器开始工作,这里以LED灯亮代表工作。该系统就是采集室内温湿度,当不满足要求时自动进行室内温度、湿度的调整。

测试如下所示:

开始仿真后LCD1602第一行T显示检测的温度值,H显示湿度值。第二行的表示阈值。湿度低于阈值,加湿器开始工作。温度高于阈值,风扇启动,用于降温,可以通过按键调整阈值。

img

3. 程序

img

main函数

#include "main.h" /****全局变量******************************************/ char lcd_dat1[20];//液晶第一行 char lcd_dat2[20];//液晶第二行 uint16_t temp_dat;//温度变量 uint16_t hum_dat;//湿度变量 uint16_t set_temp_dat=27;//设置温度变量 uint16_t set_hum_dat=50;//设置湿度变量 uint8_t setnum;//设置变量 /**********函数申明****************************************/ void ADC1_Init(void); uint16_t Read_Adc1(uint8_t ch);//通道采样1次 uint16_t light_intensity(uint32_t dat);//光强函数; void KEY_IO_Init(void);//按键初始化 void EXTIx_Init(void);//外部中断 void Relay_IO_Init(void); //控制继电器引脚io初始化 void EXTI0_IRQHandler(void); void EXTI1_IRQHandler(void); void EXTI2_IRQHandler(void); /***************************************** main函数 *****************************************/ int main(void){ uint8_t count_i; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断向量分组 2 //按键和继电器引脚初始化 KEY_IO_Init(); Relay_IO_Init(); EXTIx_Init();//外部中断初始化 LCD_init(); //LCD1602初始化 LCD_clr();//LCD清屏幕 DHT11_Init();//温湿度传感器初始化 ADC1_Init();//adc采样初始化 用于ad类型传感器 while(1){ count_i++; //if(count_i>50) { //传感器数据采集 if(DHT11_ReadData())//温湿度采集 { temp_dat=DHT11_GetTem(); temp_dat=temp_dat/256; delay_ms(10); hum_dat=DHT11_GetHum(); hum_dat=hum_dat/256; } //液晶显示:T温度 H湿度, sprintf(lcd_dat1,"T:%d H:%d \n",temp_dat,hum_dat);//转换温度,湿度 LCD_prints(0,0,lcd_dat1);//液晶显示第一行 if(setnum==0) { sprintf(lcd_dat2," %d %d \n",set_temp_dat,set_hum_dat);///转换设置温度,设置湿度 LCD_prints(0,1,lcd_dat2);//液晶显示第二行 } if(setnum == 1) { sprintf(lcd_dat2," %d^ %d \n",set_temp_dat,set_hum_dat);///转换设置温度,设置湿度 LCD_prints(0,1,lcd_dat2);//液晶显示第二行 } if(setnum == 2) { sprintf(lcd_dat2," %d %d^ \n",set_temp_dat,set_hum_dat);///转换设置温度,设置湿度 LCD_prints(0,1,lcd_dat2);//液晶显示第二行 } if(setnum == 3) { sprintf(lcd_dat2," %d %d ^\n",set_temp_dat,set_hum_dat);///转换设置温度,设置湿度 LCD_prints(0,1,lcd_dat2);//液晶显示第二行 } } if(temp_dat>set_temp_dat)//比较温度 Relay1=1; else Relay1=0; if(hum_dat


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3