当前位置:   article > 正文

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

基于stm32单片机的智能家居远程监控系统

​一.硬件方案

智能家居环境监控系统的整体电路主要由stm32单片机最小系统,光MQ-2烟雾传感器电路,红外人体检测电路,DS18B20温度传感器,LCD1602显示电路,水泵驱动电路,风扇驱动电路,LED指示灯,蜂鸣器报警电路;原理图如图:
在这里插入图片描述

PCB如下:
在这里插入图片描述

二.设计功能

1.通过MQ-2烟雾传感器及检测电路对周围环境中的烟雾浓度值数据进行采集,由模数转换电路将mq-2检测电路输出的模拟量转换成数字量,根据电压值换算出当前烟雾浓度,通过DS18B20温度传感器检查当前环境温度,采用单总线的通信发送,最后将数据传送给微控制器,并由微控制器对数据进行处理分析。
2.单片机将烟雾传感器的检测数据显示在LCD1602液晶显示屏上,使烟雾温度浓度检测结果一目了然,方便人们随时随地的了解周围的烟雾浓度状况。
3.当系统检测到烟雾浓度超过报警值时,水泵开启,蜂鸣器报警,并发送短信。
4.如果温度浓度过高,便由微控制器通过报警电路进行必要的提醒,此时蜂鸣器响起,风扇开启,并发送短信。
5.人体红外通过热释电模块检查是否有人,如果开启防盗模式,检查到有人通过gsm来发送短信,并蜂鸣器报警。
6.设有的5个按键可对各个传感器参数的报警值进行调整;分别为设置键、加一键、减一键、一键报警键、报警开关键。

三.软件设计

主程序源码

int main(void)
{	
  u16 test_adc,count=0;
	u8 shanshuo=0;
	u8 RT_BJ = 0;
	u8 send_flag1=0;
	u8 send_flag2=0;
	u8 send_flag3=0; 
	
	delay_init();	    	 //延时函数初始化	  
	NVIC_Configuration(); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	KEY_IO_Init();                                                                                
	DS18B20_Init();
	delay_ms(300);
  BEEP_DISENABLE(); 
	RTHW_Init();  
	LCD_Init();          // 1602初始化 
	LCD_Write_String(0,0,"   GSM Init...  ");
	Usart1_Init(9600);
	gsm_init();//gsm初始化
	Adc_Init();
	delay_ms(100);
	LCD_Write_String(0,0, "T:   C SMOKE:  %");//进入主页面,第一行显示的内容
  LCD_Write_String(0,1, "FD:OFF          ");//进入主页面,第二行显示的内容
	LCD_Write_Char(4,0,0xDF);//温度的小圆圈
  memset(STM32_RX1_BUF, 0, STM32_RX1BUFF_SIZE);//清除缓存
	STM32_Rx1Counter = 0;
  while(1)
	{
		  SMS_Receive();
		  KEY_SCAN();//按键扫描
      if(count++ >= 300 && setn==0)//大概延时300毫秒,执行以下代码
			{
				  count = 0;
				
				  shanshuo =!shanshuo;
				
					test_adc = Get_Adc_Average(ADC_Channel_9,20);//读取通道9的20次AD平均值
					PPM = test_adc*99/4096;//转换成0-99百分比
					PPM = PPM >= 99? 99: PPM;//最大只能到百分之99
					Temperature = DS18B20_Get_Temp()/10;//读取温度
				
				  短信内容装载
				  TEXT1[23]=TEXT2[35]=Temperature/10+0x30;
					TEXT1[27]=TEXT2[39]=Temperature%10+0x30;
					TEXT1[51]=TEXT3[35]=PPM/10+0x30;
					TEXT1[55]=TEXT3[39]=PPM%10+0x30;
				
				  if(Temperature>=Temperature_MAX && shanshuo)//温度超标,闪烁显示
					{
							LCD_Write_Char(2,0,' ');
						  LCD_Write_Char(3,0,' ');
						  LCD_Write_Char(4,0,' ');
						  LCD_Write_Char(5,0,' ');
					}
					else
					{
							LCD_Write_Char(2,0,'0'+Temperature/10);
						  LCD_Write_Char(3,0,'0'+Temperature%10);
						  LCD_Write_Char(4,0,0xDF);
						  LCD_Write_Char(5,0,'C');
					}
					
					if(PPM>=PPM_MAX && shanshuo)//烟雾超标,闪烁显示
					{
							LCD_Write_Char(13,0,' ');
						  LCD_Write_Char(14,0,' ');
						  LCD_Write_Char(15,0,' ');
					}
					else
					{
							LCD_Write_Char(13,0,'0'+PPM/10);
						  LCD_Write_Char(14,0,'0'+PPM%10);
						  LCD_Write_Char(15,0,'%');
					}
					if(sendFlag == 1)//判断它是否等于1
					{
							sendFlag = 0;
							sim800_send(TEXT1);//发送短信
					}
					if(Temperature>=Temperature_MAX)//温度超标
						{
							BEEP=1;RELAY2=1;//开启风扇
							if(send_flag1 == 0)//为了报警只发送一条短信
							{
									send_flag1 = 1;
								  sim800_send(TEXT2);//温度超标,发送短信
							}
						}else
					  {	
							send_flag1 = 0;RELAY2=0;
						}
						
					  if(PPM>=PPM_MAX)//烟雾超标
						{
							BEEP=1;RELAY1=1;//开启水泵
							if(send_flag2 == 0)
							{
									send_flag2 = 1;
								  sim800_send(TEXT3);//烟雾超标,发送短信
							}
						}else
						{			
							send_flag2 = 0;RELAY1=0;
						}
						
					  if(RTHW==1 && Mode==1)//在防盗模式下,检测到有人
						{
							BEEP=1;
							LCD_Write_String(8,1, "Somebody");RT_BJ = 1;
							if(send_flag3==0)
							{
									send_flag3 = 1;
								  sim800_send("8B66544AFF0168C06D4B523067094EBAFF01");//发送短信“警告!检测到有人!”
							}
            }
						else 
            {
							LCD_Write_String(8,1, "        ");RT_BJ = 0;
							send_flag3 = 0;
            }
						if(Temperature < Temperature_MAX && PPM < PPM_MAX && RT_BJ==0 && SD_baojing==0)BEEP=0;//关闭蜂鸣器
      }
			delay_ms(1);
  }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127

资料链接:https://pan.baidu.com/s/1YH5I6bWCwr8lwUZNipetxQ?pwd=ssil
提取码:ssil

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/488524
推荐阅读
相关标签
  

闽ICP备14008679号