STM32 SGP30 TOVC 采集

1.模块介绍

温室效应、废气排放、冰川融化、岛国淹没,这一切的罪魁祸首就是 CO2 的过度排放。是时
候家中常备一款 CO2 监测装置,来知道我们的环境危机是多么的紧迫。它还可以告诉你室内空气
的质量,及时开窗降低 CO2 浓度。康威科技为您带来这款 CO2 传感器模块。可通过 AT 指令轻松
读取 CO2 TVOC 数值,并且本模块还有两种不同的门限模式可供选择。
该模块包含一个 SGP30 气体传感器和一个 SHT20 温湿度传感器,可测量总 VOC 信号
(TVOC) CO2 等效信号 (CO2eq) 、温度及湿度。

二.接线 

 三.AT指令手册

 四.uarst

 uint8_t CO2_buffer[RX_BUFFER_SIZE];  // 接收缓冲区 20
 uint8_t TOVC_buffer[RX_BUFFER_SIZE];  // 接收缓冲区
 uint8_t TEMPbuffer[RX_BUFFER_SIZE];  // 临时变量缓存区接收缓冲区
 u8 tempIndex=0;
 u16 tovcSum,Co2Sum;
 uint8_t rx_index = 0;  // 接收数据的索引
 u8 startData=0;
 u16 maxtext=0;
 u16 tempSUM=0;
 u8 TovcMode=2;//查看接受的数据模式 表示开始接受 CO2 1表示开始接受Tovc
void USART2_IRQHandler(void)
{
    if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断
    {   

        uint8_t rx_byte = USART_ReceiveData(USART2);  // 读取接收到的数据
			   
//			 	if(rx_index>maxtext){
//							 maxtext=rx_index;
//							}
			  if(rx_byte=='+'){
				   //重启标准位
					 tempIndex=0;
				}
				TEMPbuffer[tempIndex]=rx_byte;
				tempIndex++;

				if(TEMPbuffer[1]=='C'&&TEMPbuffer[2]=='O'&&TEMPbuffer[3]=='2'){
				   TovcMode=0;
				}
				if(TEMPbuffer[1]=='T'&&TEMPbuffer[2]=='V'&&TEMPbuffer[3]=='O'&&TEMPbuffer[4]=='C'){
				  TovcMode=1;
				}

				//开始存储数组
				if(rx_byte=='='){
					 startData=1;
				}
				//接受到0D 回车 13表示结束
				if(rx_byte==13){
				   startData=0;
					 //处理数据

					if(TovcMode){
						tempSUM=0;
            //表示接受到tovc数组
           	for(u8 i=1;i<rx_index;i++){
					     //开始拼接数组
						   tempSUM=tempSUM*10+(TOVC_buffer[i]-'0');
					 }
					if(tempSUM){
					  tovcSum=tempSUM;		
					} 	
					}else{
						tempSUM=0;
					  for(u8 i=1;i<rx_index;i++){
					     //开始拼接数组
						   tempSUM=tempSUM*10+(CO2_buffer[i]-'0');
					 }
					 if(tempSUM){
					   Co2Sum=tempSUM;	
					 }					
					}
				 rx_index=0;//清空下表
				}
				//
				if(startData){
					 //存储CO2数据
					 if(!TovcMode){
					    CO2_buffer[rx_index]=rx_byte;
					 }
					 //存储TOVC数据
					 if(TovcMode){
							TOVC_buffer[rx_index]=rx_byte;
					 }
					 rx_index++;
				}
				
			  
    }
}

 void TOVC(){
//	 AT+TVOC\r\n 查询总挥发性有机化合物浓度
 	 Usart_SendString2(USART2,"AT+TVOC\r\n");
	 delay_ms(10);
	 Usart_SendString2(USART2,"AT+CO2\r\n");
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值