基于STM32单片机的粮仓温湿度控制系统设计

描述

一.系统概

系统内使用STM32单片机进行主控,系统内可以检测粮仓的温湿度,另外通过EEPROM进行温湿度阈值的保存,当温度和湿度超过或者低于设定的阈值后就会进行相应的控制和调节。

单片机

 

二.仿真概述

1. 当检测湿度低于阈值就会控制加热并进行报警,当湿度高于设定阈值就会除湿并报警(闪烁)

单片机

2. 当检测到温度超过设定阈值就会控制报警并启动风扇(闪烁报警)

单片机

3. 当检测温度低于阈值就会控制报警并进行加热(闪烁报警),设定的温湿度阈值通过EEPROM进行保存,即使重新关闭和启动仿真后设定的阈值不会改变。

单片机

 

三.程序设计

 

#include 
#include 
#include 
#include "dht11.h"
#include 
#include "PCF8591.h" 
#include "24cxx.h" 
 
int main(void)
{  
  u8 t,h,m=0,tmax=28,tmin=26,hmax=80,hmin=78; 
  
  Lcd1602_Init();//pa0-7  pb8-10
  DHT11_Init();//pa12
  Led_Init();//pc0-4
  Key_Init();//pb12-15
  PCF8591_Init();
  AT24CXX_Init();
  
  while(AT24CXX_Check());
  
  Lcd1602_Write_String(0x80,2,(u8*)"T:");
  Lcd1602_Write_String(0x80+4,1,(u8*)"c");
  Lcd1602_Write_String(0x86+2,1,(u8*)"-");
  Lcd1602_Write_String(0xc0,2,(u8*)"H:");
  Lcd1602_Write_String(0xc0+4,1,(u8*)"%");
  Lcd1602_Write_String(0xc6+2,1,(u8*)"-");
  tmin=AT24CXX_ReadOneByte(0);//读取
  tmax=AT24CXX_ReadOneByte(1);//读取
  hmin=AT24CXX_ReadOneByte(2);//读取
  hmax=AT24CXX_ReadOneByte(3);//读取
  
  Led1_Low;Led3_Low;Led4_Low;Led5_Low;
  
  while(1)
  {  
    DHT11_Read_Data(&t,&h);  
    Lcd1602_Write_Num8(0x82,t);
    Lcd1602_Write_Num8(0xc2,h);  
    Lcd1602_Write_Num8(0x86,tmin);
    Lcd1602_Write_Num8(0xc6,hmin);
    Lcd1602_Write_Num8(0x89,tmax);
    Lcd1602_Write_Num8(0xc9,hmax);
    delay_ms(500);
 
    if(Key2==0)
    {
      m++;
      if(m==5)  m=0;
    }
    if(Key3==0)  m=0;
    
    if(m==0)
    {
      AT24CXX_WriteOneByte(0,tmin);//保存
      AT24CXX_WriteOneByte(1,tmax);//保存
      AT24CXX_WriteOneByte(2,hmin);//保存
      AT24CXX_WriteOneByte(3,hmax);//保存
    }
    else if(m==1)
    {
      Lcd1602_Write_String(0x86,2,(u8*)"  ");
      if(Key0==0)  tmin++;
      else if(Key1==0)  tmin--;
    }
    else if(m==2)
    {
      Lcd1602_Write_String(0x89,2,(u8*)"  ");
      if(Key0==0)  tmax++;
      else if(Key1==0)  tmax--;
    }
    else if(m==3)
    {
      Lcd1602_Write_String(0xc6,2,(u8*)"  ");
      if(Key0==0)  hmin++;
      else if(Key1==0)  hmin--;
    }
  }  
}
 

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分