esp8266 使用sdk编程获取mq135电压值完成代码
时间: 2024-02-28 12:56:03 浏览: 164
以下是获取MQ135传感器电压值的完整ESP8266 SDK代码示例:
```
#include "ets_sys.h"
#include "osapi.h"
#include "gpio.h"
#include "os_type.h"
#include "user_interface.h"
#include "espconn.h"
#include "mem.h"
#include "esp8266.h"
#include "driver/adc.h"
#include "math.h"
void ICACHE_FLASH_ATTR user_init()
{
// 设置ADC模式为ADC_VCC,用于读取芯片供电电压
ADC_MODE(ADC_VCC);
// 配置ADC通道0,即模拟输入引脚A0,设置增益为11dB
adc1_config_width(ADC_WIDTH_BIT_12);
adc1_config_channel_atten(ADC1_CHANNEL_0, ADC_ATTEN_DB_11);
// 读取MQ135传感器的电压值,并计算气体浓度
uint16_t adc_value = adc1_get_raw(ADC1_CHANNEL_0);
float voltage = (adc_value / 4095.0) * 3.6;
float rs_ro_ratio = voltage / 5.0;
float ppm = 116.6020682 * pow(rs_ro_ratio, -2.769034857);
// 输出MQ135传感器的电压值和气体浓度
os_printf("MQ135 voltage: %.2f V\n", voltage);
os_printf("MQ135 ppm: %.2f ppm\n", ppm);
}
```
在这个示例中,我们首先使用ADC_MODE设置ADC模式为ADC_VCC,然后调用adc1_config_channel_atten函数配置ADC通道0的增益为11dB。然后,我们使用adc1_get_raw函数读取模拟输入引脚A0的原始ADC值,将其转换为电压值,并根据MQ135传感器的特性计算气体浓度。最后,我们使用os_printf函数输出MQ135传感器的电压值和气体浓度。
阅读全文