基于51单片机智能家居监控系统设计仿真(proteus仿真+源码+报告)

这篇具有很好参考价值的文章主要介绍了基于51单片机智能家居监控系统设计仿真(proteus仿真+源码+报告)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本设计:

仿真版本:proteus 8.9
程序编译器:keil 4
设计编号:C0040

功能介绍:
以提高家居生活的安全性、舒适度、人性化为目的,设计智能家居监控系统。
(1)设计必须实现家居温度、煤气泄漏、外人闯入、火灾(烟雾)的全部检测;
(2)各检测节点可通过无线方式连接到主机,检测到危险信号后,主机采用声光报警或远程报警;
(3)系统具有检测灵敏、报警及时、性价比高等特点;
(4)拓展部分:增加检测项目并具有可行性,除环境检测外也可增加人体信号(心率、体温)检测等。
分析:为实现温度检测、煤气和烟雾等气体检测、监控外人闯入等功能,采用NTC热敏电阻、MQ2气体检测传感器、磁控开关等传感器。

资料下载链接(可点击):

仿真图(提供源文件):
基于51单片机智能家居监控系统设计仿真(proteus仿真+源码+报告)

源程序(提供源文件)
基于51单片机智能家居监控系统设计仿真(proteus仿真+源码+报告)

#include "lcd5110.h"
#include "adc0809.h"
#include <math.h>
sbit tube = P3^2;//干簧管
sbit beep = P3^6;//蜂鸣器
sbit led = P3^7;//LED灯
uint temperature;//温度
uint smoke;//煤气浓度
uint fire;//烟雾浓度
uchar index;//定义发送数据个数
uchar ad_Value[3];//定义AD采集数据
float getVoltage[3];//定义电压采集数值
uchar receivedata;//定义串口接收数据
bit people_flag;//外人闯入标志位
bit temper_flag;//温度异常标志位
bit smoke_flag;//煤气浓度异常标志位
bit fire_flag;//烟雾浓度异常标志位
bit cancel_flag;//取消报警标志位
void delay(uint num)
{
		uint x,y;
	  for(x=num;x>0;x--)
				for(y=110;y>0;y--);
}
void init_interrupt(void)
{
	  TMOD = 0x02;
    TH0 = 0xfb;
    TL0 = 0xfb;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
}
void ex_init(void)
{
	  IT0 = 1;
	  EX0 =1;
	  EA = 1;
}
void usart(void)
{
		TMOD |= 0x20;
	  SCON = 0x50;
	  PCON = 0x00;
	  TH1 = 0xfd;
	  TL1 = 0xfd;
	  TR1 = 1;
	  EA = 1;
	  ES = 1;  
}
//显示函数
void display(void)
{
	  //显示温度
	  LCD_Set_XY(0,1);
	  LCD_Write_Char(temperature/1000+0x30);
		LCD_Write_Char((temperature%1000)/100+0x30);
		LCD_Write_Char((temperature%100)/10+0x30);
	  LCD_Write_Char('.');
	  LCD_Write_Char(temperature%10+0x30);
	  //显示煤气浓度
	  LCD_Set_XY(0,3);
		LCD_Write_Char(smoke/1000+0x30);
		LCD_Write_Char((smoke%1000)/100+0x30);
		LCD_Write_Char((smoke%100)/10+0x30);
	  LCD_Write_Char('.');
	  LCD_Write_Char(smoke%10+0x30);
	  //显示烟雾浓度
		LCD_Set_XY(0,5);
	  LCD_Write_Char(fire/1000+0x30);
		LCD_Write_Char((fire%1000)/100+0x30);
		LCD_Write_Char((fire%100)/10+0x30);
	  LCD_Write_Char('.');
	  LCD_Write_Char(fire%10+0x30);
}
//报警函数
void alarm(void)
{
	  //报警判断
	  if(temperature/10>=45)
		{
				temper_flag = 1;//自动报警
		}
		else
		{
				temper_flag = 0;//取消报警
		}
		if(smoke/10>=30)
		{
				smoke_flag = 1;//自动报警
		}
		else
		{
				smoke_flag = 0;//取消报警
		}
		if(fire/10>=30)
		{
				fire_flag = 1;//自动报警
		}
		else
		{
				fire_flag = 0;//取消报警
		}
		//声光报警
	  if(people_flag==1||temper_flag==1||smoke_flag==1||fire_flag==1)
		{
				if(!cancel_flag)
				{
						beep = 1;
						delay(20);
						beep = 0;
						delay(20);
						led = 1;
				}
				else
				{
						beep = 1;
			      led = 0;
				}
		}
		else
		{
				beep = 1;
			  led = 0;
		}
}
//数据格式转换
uchar change(uchar dat)
{
		uchar result;
	  uchar temp_H,temp_L;
	  temp_H = dat/10;
		temp_L = dat%10;
		result = temp_H*16+temp_L;
	  return result;
}
void main(void)
{
	  uchar channel;//定义ADC通道号
	  float Rt,temper;//NTC测温相关参量
	  beep = 0;//声光报警初始化
	  led = 0;
	  LCD_Init();//显示初始化
	  LCD_Write_English(0,0,"temperature");
	  LCD_Write_English(0,2,"smoke");
	  LCD_Write_English(0,4,"fire");
	  init_interrupt();//定时器初始化
	  ex_init();//外部中断初始化
	  usart();//串口初始化
	  while(1)
		{		
			  //采集数据
			  for(channel=0;channel<3;channel++) 
        {
						ad_Value[channel] = ADC0809(channel);
				}
				//处理数据
				for(channel=0;channel<3;channel++)
				{
						getVoltage[channel] = (float)(ad_Value[channel])/255*5;//采集电压
				}
				Rt = getVoltage[0]*4700/(5.0-getVoltage[0]);//计算阻值
				temper = 1/(log(Rt/10000)/4050+1/(273.15+25))-273.15;//计算温度
				temperature = (uint)temper*10;
				smoke = getVoltage[1]*200;
				fire = getVoltage[2]*200;
				//显示数据
        display();
				//发送数据
				index = index>2?0:index+1;
			  switch(index)
				{
					  case 0:SBUF = change((uchar)(fire/10));break;
					  case 1:SBUF = change((uchar)(temperature/10));break;
					  case 2:SBUF = change((uchar)(smoke/10));break;
					  default:break;
				}
				//报警系统
        alarm();				
		}
}
void timer_T0(void) interrupt 1
{
	  clk = ~clk;
}
void ex0(void) interrupt 0
{
	  delay(5);
		if(tube==0)//干簧管被触发
		{
				people_flag = ~people_flag;
		}
}
void usart_int(void) interrupt 4
{
		if(RI==1)
		{
				RI = 0;
			  receivedata = SBUF;
			  if(receivedata==0x30)
				{
						cancel_flag = 1;
				}
				else
				{
						cancel_flag = 0;
				}
		}
		else
		{
				TI = 0;  
		}
}

设计说明书:
基于51单片机智能家居监控系统设计仿真(proteus仿真+源码+报告)

资料清单(提供资料清单所有文件):

基于51单片机智能家居监控系统设计仿真(proteus仿真+源码+报告)文章来源地址https://www.toymoban.com/news/detail-481632.html

到了这里,关于基于51单片机智能家居监控系统设计仿真(proteus仿真+源码+报告)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于stm32单片机的智能家居环境监控系统

    智能家居环境监控系统的整体电路主要由stm32单片机最小系统,光MQ-2烟雾传感器电路,红外人体检测电路,DS18B20温度传感器,LCD1602显示电路,水泵驱动电路,风扇驱动电路,LED指示灯,蜂鸣器报警电路;原理图如图: PCB如下: 1.通过MQ-2烟雾传感器及检测电路对周围环境中的

    2024年02月11日
    浏览(44)
  • 基于单片机的定时插座在智能家居中的应用

    近年来,随着科学技术的发展迅速,人们对智能化的要求越来越高。越来越多的智能化产品进入千家万户,如电脑电视、扫地机器人、智能空气净化器等。这些家居电器和电子产品大都需要连接电源,为满足多种用电器的正常使用,延长线插座必不可少,然而传统的插座插排

    2024年02月04日
    浏览(30)
  • 74、基于51单片机语音识别控制智能家居声控灯风扇继电器系统设计(程序+原理图+PCB源文件+Proteus仿真+芯片资料+参考论文+开题报告+任务书+元器件清单等)

    语音识别是解决机器“听懂”人类语言的一项技术。随着语音识别理论研究的深入和数字信号处理软、硬件技术的发展,语音识别技术应用的研究 越来越受到人们的关注。智能语音家电控制系统实质上就是一个替代传统手动开关的受声控制的电子开关。此系统以STC89C52和LD3

    2024年02月04日
    浏览(26)
  • 92-基于stm32单片机智能家居智能窗帘控制系统Proteus仿真+程序源码

    一:功能介绍 1、采用stm32单片机+LCD1602+DHT11温湿度传感器+DS1302传感器+光敏电阻+按键+电机,制作一个智能窗帘控制系统; 2、通过按键设置手动和自动模式,并且手动模式下可以通过按键控制窗帘打开和关闭; 3、自动模式下,可以通过光照强度来自动控制窗帘,当光照过低

    2024年02月03日
    浏览(43)
  • 基于STM32单片机的智能家居环境监测与控制系统设计

    基于STM32单片机的智能家居环境监测与控制系统设计 摘要 :随着物联网技术的不断发展,智能家居环境监测与控制系统的应用越来越广泛。本文设计了一种基于STM32单片机的智能家居环境监测与控制系统,该系统能够实时监测环境中的温湿度和天然气浓度,并将数据显示在

    2024年04月25日
    浏览(31)
  • 基于AIR32F103CCT6单片机的智能家居系统

          本作品以AIR32F103CCT6单片机为控制核心,设计并制作了智能家居系统。系统由单片机控制电路、电源电路、复位电路等组成。智能家居系统包括蓝牙模块、温湿度模块、语音合成模块、OLED显示屏,通过蓝牙模块可以用手机控制智能家居的开关灯,语音合成模块并且可以

    2024年02月01日
    浏览(41)
  • 基于STM32单片机的智能家居烟雾温度火灾防盗报警的设计与实现

        功能介绍 以STM32单片机作为主控系统; LCD1602液晶显示屏来显示显示测得的值; SR501人体红外感应是否有人进行防盗; 通过烟雾传感器MQ-2获取前的烟雾值; 通过DHT11温湿度传感器来获取当前的温湿度; 所有的信息通过通过esp8266 wifi把数据传输到手机端进行显示;    

    2024年02月15日
    浏览(31)
  • 基于STM32单片机的智能家居窗户窗帘控制系统红外遥控proteus仿真原理图PCB

    功能: 0.本系统采用STM32F103RCT6作为单片机 1.LCD1602液晶实时显示当前时间/窗帘状态/光照强度 2.支持手动按键/定时/光强检测三种模式控制窗帘 3.\\\'设置’键进入设置界面 4.默认状态下’确定’键可切换模式 5.设置界面’确定’为确定 6.支持掉电保存 7.采用DC002作为电源接口可直

    2024年02月11日
    浏览(36)
  • 【单片机毕业设计】【mcuclub-dz-204】基于物联网技术的智能家居自动控制系统设计

    项目名:基于物联网技术的智能家居自动控制系统设计 项目名:光照控制(实物) 项目编号:mcuclub-dz-204 单片机类型:STM32F103C8T6 具体功能: 1、通过两个光敏电阻检测室内光照和室外光照 2、当室外光照比较高,室内光照比较低时,自动打开窗帘(步进电机模拟) 3、当室外

    2024年02月21日
    浏览(45)
  • 毕业设计——基于STM32单片机的绿植养护系统(物联网、智能家居、手机APP控制、自动监测土壤湿度)

    本工程包括一下功能:1、环境温湿度监测                                     2、土壤湿度监测                                     3、环境可燃气体浓度监测                                     4、RTC万年历功能                                     5、数据

    2024年02月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包