STM32+ze-08甲醛传感器使用教程

        新房子快下来了,装修后怕甲醛影响身体,便决定自己动手做一个甲醛传感器检测,本来很简单的一个东西,做了快一个月了,简直是累死个人,下面听我慢慢给大家道来。

        硬件平台:stm32f103c8t6,甲醛传感器

        程序功能: uart2 与传感器通信,将采集到的数据通过uart1打印出,通过串口调试助手便可看到。

记得以前白嫖过一个某讯的空气检测仪,带甲醛检测、PM2.5检测。于是想着废物利用,把里面的传感器取出来岂不是美哉?于是就开始了悲惨的遭遇。

        这个就是空气检测仪,我把上面的传感器取下来,死活测不出数据来,后来从某宝买了个回来,数据便有了,简直坑爹啊!!!!

     买了个这个,花了35块,我看还有80多的,100多的,不同的厂家,不同的价格,由于自费,我就挑了个35块包邮的。图片给大家做个参考,我就不发链接了。

     某讯的空气检测仪里面的传感器长这样:

        不知道是不是ze-08,反正长的一样,唯一不同的是,就是不出数据。 

        接下来为大家讲一下工作原理,网上卖的这种传感器都一样,规格书除了厂家不一样,其它的参数全一样,每一位代表的数据,这些全一样,所以说,你用我这套程序,就可以驱动网上买的传感器了。

        这个传感器有好多数据模式,串口,DAC,pwm。我们在这里选用常用的串口作为通信接口,程序容易写,单片机资源也够用。

        这个是串口2中断处理函数,首先判断0XFF,收到了0XFF就代表接收到了数据,然后将接收到的数据保存到数组中。

//串口2中断
void USART2_IRQHandler(void)
{ 
	static int i = 0;                                       //Êý×éϱê

	static int flag_data = 0;
	unsigned char res;
	
	if(USART_GetITStatus(USART2,USART_IT_RXNE) == 1)
	{ 
		USART_ClearITPendingBit(USART2,USART_IT_RXNE);  //Çå³ýUART ÖжϱêÖ¾		
		buff_usart2[i++] = USART_ReceiveData(USART2);	
		 if(!(buff_usart2[0] == 0xFF))
         {
              i=0;
			  buff_usart2[0]=0;               
         }
		if(i==9)
				{
					if(buff_usart2[8]==FucCheckSum(buff_usart2,9))
					{						
						flag_usart2 = 1; 		
					}
					i=0;
				}			 

}

        在规格书中介绍,需要将采集到的数据取反,并给出了个函数,我们照抄就可以。

extern unsigned char FucCheckSum(unsigned char *i,unsigned char ln)
{
	unsigned char j,tempq=0;
	i+=1;
	for(j=0;j<(ln-2);j++)
	{
		tempq+=*i;
		i++;
	}
	tempq=(~tempq)+1;
	return(tempq);
}

将数据采集后还有一个甲醛计算公式:

国家甲醛计算标准:0.08mg/m3 = 833 * 0.08 = 66.64 ppb

不清楚是真的还是假的,手册就是这么写的。

最后我们看一下主函数:

while(1)
	{		
			
		if(flag_usart2 == 1)                                      //ZE08_CH2O
	   {
			
			 flag_usart2 = 0 ;                                      //Çå³ýUART2 ÖжÏ
			/*¹ú¼Ò±ê×¼ÊÒÄÚ 0.08mg/m3 = 833 * 0.08 = 66.64 ppb */
			pm25Value = buff_usart2[4]*256 + buff_usart2[5]; 
			result = pm25Value / 66.64 * 0.08;
		  //printf("pm25 = %d \r\n",pm25Value);
			printf("¼×È©Á¿ = %f \r\n",result);
			 
                              
}
	}

        这样,我们就可以从串口调试助手看到打印出的数据了,这样就可以方便大家移植甲醛传感器,进行更综合的项目了。

博主V:haveaseat

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值