前面我们学了光敏(视觉)、声音(听觉)、温度(触觉)、超声波(空间感知)——今天再给ESP32加上一项新感官:嗅觉。
燃气泄漏报警器、烟雾报警器、空气质量检测仪……这些设备能"闻到"空气中的异常气体,在危险发生前发出警报。它们背后,就是气体传感器在工作。
今天这节课,我们就用MQ-2烟雾浓度传感器,让ESP32能"闻到"烟雾和可燃气体!
第一步:找到课程,看看成品效果
打开逗脑IDE,点击顶部 “文档”,在 “课程” → “ESP32 + MicroPython” 分类下,找到MQ-2烟雾浓度传感器。

打开课件,你会看到本节课的最终效果:用打火机靠近传感器点火(不点着,只是释放一点气体),传感器上的绿色LED灯亮起,同时终端打印的数值发生明显变化。


第二步:MQ-2是什么?
MQ-2是一款常用的烟雾/可燃气体传感器,它的核心材料是二氧化锡(SnO₂)半导体气敏材料。

工作原理(简单理解):
在200~300℃的高温下,二氧化锡会吸附空气中的氧气,形成氧负离子,使半导体中的电子减少,电阻变大。
当烟雾或可燃气体接触到它时,会与吸附的氧气发生反应,电阻值下降,导电率上升。
气体浓度越大 → 电阻越低 → 输出的模拟信号越大
核心特点:
| 检测气体 | 烟雾、液化气、丙烷、氢气、甲烷、酒精等 |
| 检测范围 | 300 ~ 10000 ppm |
| 工作电压 | 5V(加热丝需要5V) |
| 输出信号 | 模拟量(AO)+ 数字量(DO) |
| 预热时间 | 约20秒(首次使用建议预热更久) |
第三步:两路输出——模拟量和数字量
MQ-2模块提供两路信号输出,满足不同场景需求:
| DO | 数字输出 | 0 或 1 | 默认输出1(浓度未超标),检测到烟雾时输出0(可通过背面旋钮调节灵敏度) |
| AO | 模拟输出 | 0 ~ 4095 | 数值越大,烟雾浓度越大 |
💡 简单记忆:
- DO → 只告诉你"有没有超标"(报警开关)
- AO → 告诉你"浓度有多大"(精确测量)
第四步:动手接线
MQ-2模块有4个引脚,接线如下:
| VCC | 3.3V | 电源正极 |
| GND | GND | 电源地 |
| DO | GPIO15 | 数字输出(报警信号) |
| AO | GPIO2 | 模拟输出(浓度值) |
📌 注意: 传感器内部有加热丝,工作时会微微发热,这是正常现象,不用担心。
第五步:代码——同时读取数字量和模拟量
from machine import Pin, ADC
import time
# 数字量引脚(DO)
digital_data_pin = Pin(15)
# 模拟量引脚(AO)
analog_data_pin = ADC(Pin(2))
analog_data_pin.atten(ADC.ATTN_11DB) # 量程设为3.3V
while True:
# 打印:数字量 + 模拟量
print(digital_data_pin.value(), analog_data_pin.read())
time.sleep(0.5)
代码解读:
| Pin(15) | 读取DO数字信号(0或1) |
| ADC(Pin(2)) | 读取AO模拟信号(0~4095) |
| atten(ADC.ATTN_11DB) | 配置量程为3.3V |
第六步:保存运行,用打火机测试!
运行前准备: 先让传感器预热20秒左右,让内部加热丝达到工作温度,读数才稳定。
保存代码,选择ESP32设备,文件名 mq2.py

点击运行按钮,终端开始打印数据:
正常空气环境下:
1 1603
1 1597
1 1594
打火机靠近点火(释放气体):
0 1888
0 2130
0 2303

同时观察传感器: 检测到烟雾时,模块上的绿色LED灯会亮起。

数据解读
| 正常空气 | 1 | 约300~400 | 灭 |
| 检测到烟雾 | 0 | 明显升高 | 亮 |
📌 灵敏度调节: 传感器背面有一个蓝色电位器,可以调节DO输出的触发阈值。顺时针调高灵敏度,逆时针降低灵敏度。
MQ-2能做什么?
| 燃气泄漏报警 | 检测厨房燃气泄漏,自动报警 |
| 烟雾报警器 | 检测火灾初期烟雾 |
| 空气质量监测 | 检测室内空气质量 |
| 智能厨房 | 检测油烟浓度,自动开启排风扇 |
| 酒精检测 | 检测酒精浓度(需校准) |
| DIY安全装置 | 车库、仓库气体监测 |
结合之前学过的课程
MQ-2可以和其他模块组合,做出实用的项目:
| MQ-2 + 蜂鸣器 | 烟雾超标时发出警报声 |
| MQ-2 + 继电器 | 检测到燃气泄漏自动切断电源 |
| MQ-2 + OLED屏幕 | 实时显示烟雾浓度数值 |
| MQ-2 + WiFi | 检测到异常,手机远程推送通知 |
全程回顾
| 找到课程 | 文档→课程→ESP32+MicroPython→MQ-2 烟雾浓度传感器 | 了解MQ-2传感器 |
| 认识原理 | 二氧化锡半导体 + 电阻变化 | 理解"气体浓度→电阻→信号" |
| 动手接线 | VCC→3.3V, GND→GND, DO→GPIO15, AO→GPIO2 | 硬件就位 |
| 预热传感器 | 通电等待20秒 | 读数稳定 |
| 打开代码 | 点击"打开"按钮 | 代码进入编辑器 |
| 保存运行 | Ctrl+S → 选择ESP32 → 运行 | 开始检测 |
| 打火机测试 | 打火机靠近点火 | LED亮起,数值飙升! |

网硕互联帮助中心



评论前必须登录!
注册