84 基于单片机汽车环境监测系统设计【毕设课设】

该系统基于FRDM-KL25Z微控制器,集成温湿度、烟雾和超声波传感器,通过CAN总线和串口通信与上位机和Android手机交互,实现环境参数的实时监测和智能管理。当检测到异常如高温或烟雾时,系统会自动采取措施并通知司机。
摘要由CSDN通过智能技术生成

车身环境监控系统设计原理:

       本系统采用FRDM-KL25Z作为主控芯片,通过添加温湿度、烟雾、超声波测距等传感器来采集汽车车身各项环境参数,同时通过汽车CAN总线采集车身等各种状态信息,通过串口传输给上位机进行显示,实现信息的智能化管理,也可通过蓝牙连接android手机,在手机客户端查看信息。同时,该系统能够在检测到车内温度过高,自动启动电扇给车内降温,在检测到烟雾时,发短信给司机提醒注意情况。

 

	
		
  / 输出管脚测试用,超声波测距,A3--PTB3触发信号,A4---PTC1
    IO_FUN_SEL(MKL_PORTB,3,1);                                         
    GPIO_DDR_OUTPUT(MKL_PORTB,3);
    GPIO_SET(MKL_PORTB,3);  	
		IO_FUN_SEL(MKL_PORTC,2,1);   
    GPIO_DDR_INPUT(MKL_PORTC,2);
		

		A5--PTC1,电机
		IO_FUN_SEL(MKL_PORTC,1,1);                                       
    GPIO_DDR_OUTPUT(MKL_PORTC,1);
		 
	 uart0Init(9600,0,0,8,1);
   uart1Init(9600,0,0,8,1);
	 uart2Init(9600,0,0,8,1);
   设置优先级
   NVIC_EnableIRQ(USB0_IRQn);
   NVIC_SetPriority(USB0_IRQn,5); 
		 
   NVIC_EnableIRQ(USB1_IRQn);
   NVIC_SetPriority(USB1_IRQn,2); 
		
	 NVIC_EnableIRQ(USB2_IRQn);
   NVIC_SetPriority(USB2_IRQn,4); 

	
	pitInit();                                                          /* PIT 初始化                   */
	NVIC_EnableIRQ(PIT_IRQn);                                           /* PIT中断使能                  */
	NVIC_SetPriority(PIT_IRQn,3);                                       /* 设置PIT中断优先级            */
																									 
	lptmrInit();                                                         /* lptmr 初始化                   */
	NVIC_EnableIRQ(LPTimer_IRQn);                                       /* lptmr开启中断                */
	NVIC_SetPriority(LPTimer_IRQn,6);                                   /* lptmr设置优先级              */

   __enable_irq();                                                    /* 使能总中断                   */
			

	 printf("MCU start\r\n");
						
			
    while(1)
		{   


      /红外检测

			detectred=GPIO_GET_VALUE(MKL_PORTB,1)&0x02;	  

	
			/烟雾传感器
			detectsmokepre=detectsmoke;
		  detectsmoke=GPIO_GET_VALUE(MKL_PORTB,2)&0x04;	  
			
	   if(detectsmoke==0x00)
			{
				 
			   /LED,蜂鸣器
					GPIO_TOGGLE(MKL_PORTB,18);
          GPIO_TOGGLE(MKL_PORTB,19);
          GPIO_TOGGLE(MKL_PORTD,1); 
				  /蜂鸣器
				  GPIO_SET(MKL_PORTC,9); 
				/
				
			}
			else
			{
        GPIO_SET(MKL_PORTB,18);                                            
        GPIO_SET(MKL_PORTB,19);
        GPIO_SET(MKL_PORTD,1); 
				/蜂鸣器
				GPIO_CLR(MKL_PORTC,9); 
				
			}
	    
			if((detectsmoke==0x00)&&(detectsmokepre==0x04))
			{
				 						
				UART1SEND();					
				detectsmoke=04;	
				GSMSend();	

				Delay_1ms(200);
			
			}

			//温湿度DHT11
				RHread();	
				RH[0]=RH_H;
				RH[1]=RH_L;
				RH[2]=TPR_H;
				RH[3]=TPR_L;
				if(RH[2]>=25)
				{
					 
					GPIO_SET(MKL_PORTC,1);
				
				}
				else
				{
					GPIO_CLR(MKL_PORTC,1);
				}
				
				if(control==0x55)
				{
					 GPIO_SET(MKL_PORTC,1);
				}
				
				if(control==0x66)
				{
					GPIO_CLR(MKL_PORTC,1);
				}
			
		  
			//超声波测距	  
				 distance();
			   if(discount0<500)
				 {
				 dis_H=discount0/256;
				 dis_L=discount0%256;
				 }

			   if(discount0<50)
				 {
				  GPIO_TOGGLE(MKL_PORTB,18);
				   GPIO_SET(MKL_PORTC,9); 
				 }
				 else
				 {				 
					
					 GPIO_SET(MKL_PORTB,18);
				    GPIO_CLR(MKL_PORTC,9); 
				 }
			
				 
				 
				if(num1>=30)   30秒后没感应到人,减慢数据发送速率
				{
					num1=30;
								
				 UART1SEND();	  			 
				 UART2SEND();	
																 
								
				Delay_1ms(5000); 
					
				}
			
				if(num>=1)  /平时1秒,发送一次数据
				{
						num=0;			
				 
				 UART1SEND();	  			 
				 UART2SEND();	 
						
				}	

 

 资料下载地址

https://pan.baidu.com/s/1dQqTJkatWEvlB6nu8GzWTA?pwd=8888

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值