基于STM32单片机的温湿度监控报警系统

本设计的硬件构成:

STM32F103C8T6单片机最小系统板(包含+3.3V稳压电路+时钟晶振电路+复位电路(上电自复位,手动复位)),DHT11温湿度传感器、OLED12864显示屏、按键、蜂鸣器、LED指示灯、蓝牙通信模块组合而成;

功能介绍:

1、本设计采用DHT11数字型温湿度传感器,可同时监控当前环境的温度和湿度。单片机将读取到的温度、湿度值显示在OLED显示屏上。

2、系统可分别设定温度、湿度的上限值、下限值。当检测温度或湿度超过上下限值时,开启蜂鸣器报警。同时在显示屏进行相应的提示,如:温度、湿度均在范围内,显示屏提示:环境正常;当温度(湿度)超过上限值,显示屏提示:温度(湿度)过高;当温度(湿度)超过下限值,显示屏提示:温度(湿度)过低;

3、按键功能分别为:按键1为设置键;按键2为加建;按键3为减键;在设定完成后,系统退出设置状态,并对设置值进行保存(重新上电无需再重新设置)。

4、通过蓝牙模块,可使用手机APP对系统进行监控,也可对设置值进行调整(功能与按键相同)。

主要物料清单及型号:

显示屏:OLED12864-3.3V;

单片机:STM32F103C8T6;

蓝牙模块:JDY-31-SPP;

蜂鸣器:5V有源蜂鸣器;

温湿度传感器:DHT11;

PCB图:

部分程序源码:

int main(void)
{ 
   
   u8 key_value;
   u8 buffer[5];
  delay_init();         //延时函数初始化    
  uart_init(9600);     //串口初始化为9600
  TIM3_Int_Init(49,7199);//50ms    
//  EXTIX_Init();    // 初始化外部中断
   LED_Init();
  OLED_Init();
  OLED_ColorTurn(0);//0正常显示,1 反色显示
  OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
   STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)datatemp,4);
   if(datatemp[0]!=0xffff)
      Humi_min=datatemp[0],Humi_max=datatemp[1],Temp_min=datatemp[2],Temp_max=datatemp[3];
   buzzer=0;
  delay_ms(200);
   buzzer=1;
   
  OLED_ShowChinese(16,0,0,16);//环境监控系统
  OLED_ShowChinese(32,0,1,16);
  OLED_ShowChinese(48,0,2,16);
  OLED_ShowChinese(64,0,3,16);
  OLED_ShowChinese(80,0,4,16);
  OLED_ShowChinese(96,0,5,16);
  
  OLED_ShowChinese(0,16,6,16);  //温度
  OLED_ShowChinese(16,16,9,16);
  OLED_ShowString(32,16,": --.- C   ",16);
  OLED_ShowChinese(80,16,8,16);
  
  
  OLED_ShowChinese(0,32,7,16);//湿度
  OLED_ShowChinese(16,32,9,16);
  OLED_ShowString(32,32,": 00%     ",16);
  
  
  OLED_ShowChinese(0,48,10,16);
  OLED_ShowChinese(16,48,11,16);
  OLED_ShowString(32,48,": ",16);
  OLED_ShowChinese(48,48,12,16);
  OLED_ShowChinese(48,48,13,16);
  OLED_Refresh();
    delay_ms(500);
  
  while(1)
  {
    key_value=KEY_Scan(0);
    key_handle(key_value);
    APP_Receive();
    if (dht11_read_data(buffer) == 0)
    {
        Humi = (buffer[0]*10) + buffer[1] ;
        Temp = (buffer[2]*10) + buffer[3];
        warn_process();
      
    }
  
    
    if(disFlag==1)     //显示标志
    {
      disFlag = 0;
      
      if(set==0)
      {
        display_dht11(Temp,Humi);
        if(warn_flag!=0)
        {
            
            buzzer=buzzer_state%2;
            buzzer_state++;
        }
        else 
        {
          buzzer=1;
          buzzer_state=0;
        }
        
      }
  
    }  
    
    if(appFlag==1)
    {
      appFlag=0;
      APP_Data_Update();
    }
  }                          
}  

资料

基于STM32单片机温湿度报警器LCD1602仿真设计是一个将温湿度传感器与STM32单片机和LCD1602液晶显示屏相结合的系统设计。该系统通过实时地检测环境的温度和湿度,并在必要时显示相关的报警信息。 首先,我们需要选择合适的STM32单片机作为控制核心,它具有高性能、低功耗和丰富的外设接口。然后,我们将温湿度传感器连接到单片机的模拟输入引脚,用于测量环境的温度和湿度。传感器可以通过I2C或者SPI等通信协议与单片机进行数据交互。 接下来,我们将LCD1602液晶显示屏连接到单片机的GPIO引脚上,用于显示温湿度数据和报警信息。可以使用STM32的库函数来控制液晶屏的显示,包括显示字符、数字和图形等。 在软件设计方面,我们可以使用C语言编写单片机的控制程序。首先,通过初始化温湿度传感器和LCD屏的设置。然后,设置一个定时器中断来定时读取温湿度传感器的数据。读取到的数据可以在LCD屏上显示出来,并与预设的阈值进行比较,如果超过阈值,则触发相应的报警信息。 除了报警信息的显示,我们还可以考虑将数据通过串口或者无线通信模块发送到上位机,实现对温湿度的远程监控和控制。 最后,经过仿真验证,我们可以进行硬件的实际制作,将所有的元件连接在一起,实现温湿度报警器的功能。 总之,基于STM32单片机温湿度报警器LCD1602仿真设计是一个综合利用微控制器和液晶显示屏的系统设计,可以实时监测环境的温湿度,并在必要时报警。这种设计在工业自动化、气象监测等领域具有广泛的应用前景。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值