目录
一、MQ-135空气质量传感器介绍
MQ-135是一种空气质量传感器,用于检测空气中的一氧化碳、氮氧化物、酒精、氨气和烟雾等有害气体。它常用于空气质量监测、环境监测和安全警报系统中。MQ-135的工作原理是通过化学反应来检测目标气体的浓度,并将结果转换为电信号输出。
MQ-135传感器通过反应气体浓度和传感器电极之间的电阻变化,来测量空气中的有害气体浓度。传感器的电极表面上涂覆了一层特殊的可燃性有机材料,当待测气体被吸附在电极表面时,会形成一个二极管结构,从而通过材料附着在电极表面的热敏电阻监测电阻值的变化,以反映空气中有害气体的浓度。
二、MQ-135空气质量传感器接线说明
VCC(+):电源正极接口,外接电源3 ~ 5V电源正极,接单片机的5v或者3v引脚
GND(-):电源负极接口,外接电源负极或地线GND,接单片机的GND
AO :模拟信号输出口,接单片机的PA1采集引脚
三、测试说明、MQ-135空气质量传感器驱动代码
编译环境:keil5
测试单片机: STM32F103C8T6
功能:功能1:设定空气质量阈值,超过阈值触发蜂鸣器报警
功能2:发送空气质量数据到串口调试助手上进行显示
MQ135.c文件编写雨滴传感器驱动代码如下:
#include "MQ135.h"
#include "OLED.h"
#include "FMQ.h"
#include <stdio.h>
#include "Serial.h"
u8 times;
void Adc_Init()
{
GPIO_InitTypeDef GPIO_Initstructre;
ADC_InitTypeDef ADC_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_Initstructre.GPIO_Mode=GPIO_Mode_AIN;
GPIO_Initstructre.GPIO_Pin=GPIO_Pin_1;
GPIO_Initstructre.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_Initstructre);
GPIO_SetBits(GPIOA,GPIO_Pin_1);
RCC_ADCCLKConfig(RCC_PCLK2_Div6);
ADC_DeInit(ADC1);
ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;
ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;
ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;
ADC_InitStruct.ADC_NbrOfChannel = 1;
ADC_InitStruct.ADC_ScanConvMode = DISABLE;
ADC_Init(ADC1,&ADC_InitStruct);
ADC_Cmd(ADC1,ENABLE);
ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
}
u16 Get_Adc(u8 ch)
{
ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);
ADC_SoftwareStartConvCmd(ADC1,ENABLE);
while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
return ADC_GetConversionValue(ADC1);
}
u16 Get_Adc_Average(u8 ch,u8 times)
{
u32 temp_val=0;
u8 t;
for(t=0;t<times;t++)
{
temp_val+=Get_Adc(ch);
Delay_ms(5);
}
return temp_val/times;
}
MQ135.h文件,对驱动函数经行了声明:
#ifndef __MQ135_H
#define __MQ135_H
#include "stm32f10x.h" // Device header
#include "Delay.h"
void Adc_Init(void);
u16 Get_Adc(u8 ch);
u16 Get_Adc_Average(u8 ch,u8 times);
#endif
四、串口调试助手把采集的空气质量数据发送出来
printf("空气质量= %d ",MQ135_Value);
Serial_SendString("mmp\r\n");
五、串口调试助手软件下载
串口调试助手-keil5调试工具_dht11温度传感器串口资源-CSDN文库
六、源代码
《STM32单片机+MQ135空气质量传感器+OLED屏幕+蜂鸣器报警+空气质量数据发送到串口调试助手》源代码资源-CSDN文库