基于51单片机的蓝牙温度控制系统

一.硬件方案

        该设计以单片机STC89C52为核心,作为控制器件,控制一定空间内的温度稳定在预设值,当温度低于预设温度时加热片通电加热,当温度回升到设定温度停止加热;当温度高于设定温度时风扇开始工作当温度处于设定温度是风扇停止运行;空间温度值可根据需要设定。增加蓝牙通信功能,可将温度温度数据通过蓝牙模块传输中至手机APP上显示,同时可以通过App设置温度的上下限。

二.设计功能

(1)系统可检测当前环境的温度,并采用液晶屏显示;手机APP通过蓝牙功能与系统进行连接之后,系统可通过蓝牙模块将温度数据发送至手机APP并显示;

(2)可通过按键和APP设置温度报警值的上下限;

(3)系统带有断电记忆功能,下次启动时,记忆上次设置的温度上下限值,无需再次设置;

(4)当温度超过上限报警值时,红灯亮,相应继电器开关吸合(可接散热风扇);

(5)当温度低于下限报警值时,绿灯亮,相应继电器开关吸合(可接加热片)。

(6)蓝牙功能:手机安装相应APP后,打开APP,点击连接模块蓝牙;

a.APP可同步显示温度值;

b.设置温度下限发送TL:XX.X+回车;

c.设置温度上限发送TH:XX.X+回车;

三.设计原理图

       原理图主要采用AD软件进行设计,如图:

Protues仿真图:

四.程序设计

    主程序源码如下:

/****** ******主函数(程序的入口)****************/
void main()
{ 
  unsigned char a = 0;
  ConfigTimer0(5);
  ConfigUART(9600);  
  InitLcd1602();    //初始化液晶
  LcdShowStr(2, 0,"Temperature"); //显示屏显示:Temperature 
  Start18B20();    //开始读取温度信号 
  for(a=0;a<10;a++)
  {
    wendu_init();
    Delay_Ms(10);
  }   
  wendu_chuli();   //读取温度并显示
  TH_chushihua();  //温度上下限报警值初始化
             
  while(1)
  {
    Key_set_scan();//按键扫描 
    if(moshi == 0)       //当在检测模式时
    {
      wendu_chuli();    //温度检测并显示
      
      if(wendu>=H_baojing)   //当温度大于温度上限时
      {
        BUZZER = 0;    //蜂鸣器响
        LED_R = 0;      //红灯亮
        LED_G = 1;      //绿灯灭
        if(lanya==1)
        {
             send_string_com("Temp:",5);  //发送到电脑上
           send_string_com(str_wd,4);
           send_char_com('\x0a');
           send_string_com("Temp High",9);  //发送到电脑上
           send_char_com('\x0a');
           lanya = 0;
        }
      }         
      else if (wendu>T_baojing&&wendu<H_baojing)   //当温度在温度下限和温度上限之间时
      {
        BUZZER = 1;       //蜂鸣器不响
        LED_R = 1;     //红灯灭
        LED_G = 1;     //绿灯灭
        if(lanya==1)
        {
           send_string_com("Temp:",5);  //发送到电脑上
           send_string_com(str_wd,4);
           send_char_com('\x0a');
           lanya = 0;
        }
      }       
      else if (wendu<=T_baojing)    //当温度小于温度下限时
      {
        BUZZER = 0;      //蜂鸣器响
        LED_R = 1;      //红灯灭
        LED_G = 0;      //绿灯亮 
        if(lanya==1)
        {   
             send_string_com("Temp:",5);  //发送到电脑上
           send_string_com(str_wd,4);
           send_char_com('\x0a');
           send_string_com("Temp Low",8);  //发送到电脑上
           send_char_com('\x0a');
           lanya = 0;
        }
      }
           
    } else   BUZZER = 1;                                                 
  }
}

资料链接:https://pan.baidu.com/s/1KN7itwwRyg8BD2djFORE7g?pwd=m5nv 

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值