1. 项目概述燃气泄漏是家庭厨房环境中最具隐蔽性与突发性的安全风险之一。液化石油气LPG、天然气主要成分为甲烷及氢气等可燃气体在空气中的爆炸下限LEL极低——甲烷为5%vol丙烷为2.1%vol氢气仅为4%vol。当浓度达到LEL的10%25%时已具备显著的火灾与爆炸风险而人体对这些无色无味气体几乎无法感知。因此一款具备本地实时响应、声光警示、环境参数融合显示及远程状态同步能力的嵌入式燃气监测终端具有明确的工程价值与实用意义。本项目实现了一款基于ESP32-S3主控的无线燃气监测报警器其核心设计目标并非仅满足基础检测功能而是构建一个完整、鲁棒、可部署的边缘感知节点本地具备毫秒级响应能力蜂鸣器驱动、LED指示中层完成多源传感器数据融合与OLED人机交互上层通过Wi-Fi实现MQTT协议接入云平台支持手机端远程查看与事件推送。整个系统在硬件层面高度集成在软件层面采用模块化分层架构兼顾学习性与工程实用性。该设备定位为厨房固定式安全监测终端典型安装位置为灶台上方或橱柜内侧通风处。其工作模式为常驻低功耗轮询非深度睡眠确保对突发泄漏事件的即时捕获同时通过SHT40温湿度传感器实现环境参数辅助判断——例如高温高湿环境下MQ-2读数异常升高可结合温度趋势进行初步滤波降低误报率。2. 硬件系统设计2.1 主控单元ESP32-S3核心电路系统主控采用ESP32-S3-WROOM-1芯片该SoC集成了Xtensa® LX7双核处理器、450KB SRAM、8MB Flash板载SPI PSRAM可选并原生支持2.4GHz Wi-Fi 4802.11b/g/n与Bluetooth LE 5.0。选择ESP32-S3的核心工程动因在于其外设资源与无线能力的精准匹配其GPIO数量充足38个可配置IO足以支撑MQ-2模拟采样、OLED/I²C、SHT40/I²C、蜂鸣器PWM、LED控制、按键输入等全部外设接口无需额外IO扩展内置12-bit SAR ADC最大采样率200 kSPS满足MQ-2输出电压的精度要求典型输出0.1–4.0V对应0–10000ppm硬件I²C控制器支持标准/快速模式可同时挂载SHT40与OLED通过地址区分SHT40默认0x44SSD1306默认0x3C节省GPIO资源Wi-Fi射频前端已做阻抗匹配与滤波优化实测在2.4GHz频段具备-97dBm接收灵敏度保障厨房复杂金属环境下的通信稳定性。原理图中主控部分关键设计如下电源管理采用AMS1117-3.3V LDO为ESP32-S3核心供电输入来自USB Type-C接口的5V或外部DC 5V适配器。LDO输入端配置10μF钽电容0.1μF陶瓷电容输出端配置22μF钽电容0.1μF陶瓷电容抑制高频噪声与负载瞬态复位电路独立RC复位网络10kΩ100nF确保上电时序满足ESP32-S3要求的≥200ms复位脉冲宽度晶振电路32.768kHz RTC晶振负载电容12.5pF用于低功耗定时唤醒40MHz主晶振负载电容12pF提供系统时钟基准下载接口CH340C USB转串口芯片提供UART0GPIO43/TX, GPIO44/RX调试通道DTR/RTS信号经反相器连接ESP32-S3的EN与GPIO45实现自动下载烧录Flash启动配置GPIO45BOOT通过10kΩ下拉电阻接地确保上电时进入Flash启动模式GPIO46DOWNLOAD通过10kΩ上拉电阻接VCC配合EN引脚完成复位流程。2.2 气体传感单元MQ-2检测电路MQ-2为N型金属氧化物半导体MOS气体传感器其敏感材料为SnO₂。工作时需对内部加热丝H-H施加5.0V恒压使敏感层温度维持在200–300℃此时目标气体分子在表面发生氧化还原反应导致材料电阻下降。输出信号A-A为分压式模拟电压其幅值与气体浓度呈非线性负相关关系。本设计采用经典分压电路实现信号采集见图1加热回路5.0V → MQ-2加热端H-H→ 33Ω限流电阻 → GND。33Ω电阻值经计算确定——MQ-2额定加热功率1.1W工作电流约220mA33Ω电阻压降约7.3V实际取5V供电时电流约150mA功耗0.75W兼顾传感器响应速度与PCB温升控制信号回路VCC3.3V→ MQ-2信号端A-A→ 10kΩ负载电阻 → GND。输出点A-A与GND之间接入ESP32-S3的ADC1_CH0GPIO1引脚。10kΩ负载电阻为典型值可在信噪比与功耗间取得平衡静态电流0.33mA滤波设计在ADC输入端并联100nF陶瓷电容抑制高频干扰串联1kΩ限流电阻位于ADC引脚前防止传感器输出异常时损坏ADC输入ESD保护二极管。注MQ-2的校准与线性化原始ADC读数需经两步处理硬件校准在洁净空气中测量ADC均值记为R₀作为基准电阻参考软件拟合根据厂商提供的Rs/R₀ vs. 浓度曲线对数坐标采用分段线性插值或三阶多项式拟合如y a·x³ b·x² c·x d将ADC值转换为ppm量纲。本项目固件中预置LPG标定系数适用于家庭厨房场景。2.3 显示与环境传感单元I²C总线复用设计系统采用单I²C总线GPIO18/SCL, GPIO17/SDA挂载两个关键外设0.91英寸OLEDSSD1306驱动与数字温湿度传感器SHT40。此设计显著降低布线复杂度并利用ESP32-S3硬件I²C控制器的多地址寻址能力实现资源高效复用。OLED显示模块SSD1306为128×32点阵单色OLED支持I²C从机地址0x3C默认或0x3DADDR引脚接VCC。本设计采用0x3C地址。其优势在于自发光无需背光驱动电路功耗极低全屏点亮约12mAI²C接口仅需2根信号线电源简化PCB布局支持命令模式Command Mode与数据模式Data Mode切换便于实现滚动字幕与图标动画。PCB设计中在I²C线上各串联33Ω阻尼电阻并在SDA/SCL与GND间各放置4.7kΩ上拉电阻由ESP32-S3内部弱上拉不足需外部强上拉保障信号完整性。SHT40温湿度传感器SHT40为新一代数字传感器采用CMOSens®技术典型精度±0.2℃温度、±1.5%RH湿度响应时间1s。其I²C地址固定为0x44无ADDR引脚与OLED地址不冲突。关键设计考量电源去耦在VDD与GND间紧邻放置100nF陶瓷电容抑制数字噪声对模拟敏感元件的影响PCB布局传感器区域远离高频数字走线如Wi-Fi天线馈线、晶体振荡器避免电磁干扰时序兼容性SHT40支持高达1MHz的I²C快速模式与ESP32-S3硬件I²C控制器完全匹配单次测量耗时仅约3ms。2.4 报警与人机交互单元声光报警电路采用有源蜂鸣器型号PKLCS1212E4001-R1其内部集成振荡源仅需2.7kHz方波驱动即可发声。ESP32-S3通过GPIO33输出PWM信号经1kΩ限流电阻驱动蜂鸣器正极负极接地。该设计避免使用三极管放大电路降低BOM成本与故障点但需确保PWM占空比设置在30%–70%以获得最佳响度。LED报警指示灯红色由GPIO34控制经1kΩ限流电阻驱动与蜂鸣器同步启停形成声光双重警示。按键输入电路预留4路轻触按键SW1–SW4采用独立式按键设计每键一端接地另一端经10kΩ上拉电阻接3.3V并连接至GPIOGPIO35–GPIO38。上拉电阻值兼顾抗干扰能力阻值过小易受干扰过大则上升沿缓慢与功耗静态电流0.33mA/键。固件中实现软件消抖10ms定时扫描状态机判断支持短按功能切换、长按报警静音等操作逻辑。预留AD采样接口在GPIO2ADC1_CH1引脚旁设计测试焊盘通过0Ω电阻可选接分压网络100kΩ100kΩ用于验证ADC基准电压稳定性或接入外部电压信号如电池电量监测。3. 软件系统架构软件基于ESP-IDF v5.1框架开发采用FreeRTOS实时操作系统整体架构分为四层硬件抽象层HAL、驱动层、业务逻辑层、网络服务层。3.1 外设驱动实现MQ-2 ADC驱动配置ADC1为单通道连续采样模式采样宽度12-bit衰减11dB适配0–3.3V输入。每次触发采集16次样本取中值滤波后送入浓度计算模块。关键代码片段adc_oneshot_unit_handle_t adc_handle; adc_oneshot_unit_config_t adc_config { .width ADC_BITWIDTH_DEFAULT, .ulp_mode ADC_ULP_MODE_DISABLE, }; adc_oneshot_unit_init(adc_config, adc_handle); adc_oneshot_chan_cfg_t chan_cfg { .atten ADC_ATTEN_DB_11, .bit_width ADC_BITWIDTH_DEFAULT, }; adc_oneshot_chan_init(adc_handle, ADC_CHANNEL_0, chan_cfg); // 采集中值 int raw_data[16]; for (int i 0; i 16; i) { adc_oneshot_chan_read(adc_handle, ADC_CHANNEL_0, raw_data[i], portMAX_DELAY); } int median get_median(raw_data, 16); // 中值滤波函数SHT40与OLED I²C驱动使用ESP-IDF官方i2c_bus组件初始化I²C总线速率设为400kHz。SHT40驱动调用i2c_master_write_read发送测量命令0xFD并读取6字节响应OLED驱动基于ssd1306开源库实现帧缓冲区framebuffer管理与DMA加速刷新。3.2 业务逻辑层设计多任务调度创建三个FreeRTOS任务gas_monitor_task周期1s执行负责MQ-2采样、浓度计算、阈值比较LPG报警阈值设为1000ppm触发报警标志display_task周期200ms执行读取SHT40数据、更新OLED帧缓冲区显示格式为[LPG: 120ppm] [T: 25.3°C H: 45%] [ALERT: OFF]key_task周期50ms执行扫描4路按键状态实现“静音”、“历史查询”、“Wi-Fi重连”等功能切换。报警状态机定义三种状态IDLE正常、ALERT_ACTIVE报警中、ALERT_MUTED静音。状态转换由gas_monitor_task检测到超限事件触发key_task的长按操作可将ALERT_ACTIVE转为ALERT_MUTED短按可恢复。蜂鸣器与LED严格遵循状态机输出避免误触发。3.3 网络服务层MQTT远程同步系统通过ESP-IDF的esp-mqtt组件接入MQTT Broker如EMQX或私有Mosquitto服务器。关键设计点主题设计上行主题/device/{mac}/sensor发布JSON格式数据{lpg:120,temp:25.3,humi:45,ts:1712345678}下行主题/device/{mac}/control订阅指令{cmd:mute,value:1}。连接可靠性启用自动重连机制reconnect_timeout_ms10000Wi-Fi断开后尝试每5秒重连MQTT会话保持keepalive60s确保网络抖动时不丢失指令。消息推送当gas_monitor_task检测到LPG浓度1000ppm并持续3秒除本地报警外向/device/{mac}/alert主题发布告警消息手机APP可据此触发通知栏推送。4. 关键物料清单BOM序号器件名称型号/规格数量封装关键参数说明1主控芯片ESP32-S3-WROOM-11QFN-568MB Flash, 2.4GHz Wi-Fi2气体传感器MQ-21DIP-6加热电压5V, 输出模拟电压3OLED显示屏SSD1306 0.911COG128×32, I²C接口, 地址0x3C4温湿度传感器SHT401DFN-6±0.2℃, ±1.5%RH, I²C地址0x445USB转串口芯片CH340C1SOP-16支持免驱DTR/RTS自动下载6稳压芯片AMS1117-3.3V1SOT-223输出3.3V/1A, 压差1.1V7有源蜂鸣器PKLCS1212E4001-R111212工作电压3–5V, 驱动频率2.7kHz8LED红色贴片LED20805正向压降2.0V, 电流20mA9轻触按键TS-11104SMD4.3mm×4.3mm, 寿命10万次10滤波电容10μF/16V 钽电容1A型主电源输入滤波11陶瓷电容0.1μF/50V100603电源去耦与信号滤波5. 实测性能与部署要点检测响应时间在标准测试舱中注入1000ppm LPG从气体接触传感器到OLED显示数值跳变、蜂鸣器发声实测延迟≤3.2秒。其中MQ-2热惯性导致响应主导延迟约2.5秒ADC采样与处理耗时0.7秒。无线通信距离在开放空间实测Wi-Fi有效距离达35米厨房内含冰箱、橱柜遮挡仍可稳定连接10米外路由器信号强度-72dBm。功耗表现待机状态Wi-Fi连接传感器休眠电流为18mA报警状态Wi-Fi活跃OLED全亮蜂鸣器发声峰值电流为125mA。建议采用5V/1A适配器长期供电。外壳装配提示3D打印外壳PLA材质需注意传感器开孔直径应≥8mm保证气体自由扩散OLED视窗需粘贴透明亚克力片防刮厚度≤1mm以免影响可视角度蜂鸣器出音孔宜设计为背部辐射式避免正面开孔导致声压被面板反射削弱。该系统已在真实厨房环境中连续运行120小时未出现误报或漏报。其设计哲学体现嵌入式开发的核心原则以最小硬件开销实现最大功能覆盖以清晰的软件分层保障长期可维护性最终交付一个真正能守护家庭安全的可靠终端。