当前位置: 首页 > news >正文

基于STM32和MQ-5传感器实现天然气浓度检测并通过串口显示

一、硬件

1. 电路连接原理图

STM32F103C8T6       MQ-5传感器       USB-TTL模块
-------------------------------
3.3V          →  VCC
GND           →  GND
PA0 (ADC_IN0) →  AOUT
PA9 (USART1_TX) →  RX
PA10 (USART1_RX)→  TX

2. 关键参数配置

参数 值/配置说明
ADC分辨率 12位(0-4095)
采样率 100Hz
串口波特率 115200bps
负载电阻(RL) 2.0kΩ(通过电位器调节)
预热时间 ≥20秒

二、软件

1. ADC配置(HAL库)

// 初始化ADC
void MX_ADC1_Init(void) {ADC_HandleTypeDef hadc1;__HAL_RCC_ADC1_CLK_ENABLE();hadc1.Instance = ADC1;hadc1.Init.ScanConvMode = DISABLE;hadc1.Init.ContinuousConvMode = DISABLE;hadc1.Init.DiscontinuousConvMode = DISABLE;hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;hadc1.Init.NbrOfConversion = 1;ADC_ChannelConfTypeDef sConfig = {0};sConfig.Channel = ADC_CHANNEL_0;sConfig.Rank = 1;sConfig.SMP = ADC_SAMPLETIME_239CYCLES_5;HAL_ADC_Init(&hadc1);HAL_ADC_ConfigChannelAttenuation(&hadc1, ADC_CHANNEL_0, ADC_ATTENUATION_11DB);
}// 读取ADC值
uint16_t Read_ADC(void) {HAL_ADC_Start(&hadc1);while(HAL_ADC_PollForConversion(&hadc1, 100) != HAL_OK);return HAL_ADC_GetValue(&hadc1);
}

2. 串口通信配置

// 串口初始化
void MX_USART1_UART_Init(void) {huart1.Instance = USART1;huart1.Init.BaudRate = 115200;huart1.Init.WordLength = UART_WORDLENGTH_8B;huart1.Init.StopBits = UART_STOPBITS_1;huart1.Init.Parity = UART_PARITY_NONE;huart1.Init.Mode = UART_MODE_TX;HAL_UART_Init(&huart1);
}// 发送数据函数
void Send_Data(uint16_t adc_val) {char buffer[32];float voltage = adc_val * 3.3f / 4095.0f;float concentration = 10.0f * pow(voltage / 0.4f, 3.0f); // 校准公式sprintf(buffer, "Gas: %.2f ppm\r\n", concentration);HAL_UART_Transmit(&huart1, (uint8_t*)buffer, strlen(buffer), 100);
}

3. 主程序框架

int main(void) {HAL_Init();MX_ADC1_Init();MX_USART1_UART_Init();while(1) {uint16_t adc_val = Read_ADC();Send_Data(adc_val);HAL_Delay(1000); // 每秒采集一次}
}

三、关键校准公式

MQ-5浓度计算公式(需根据实际传感器校准):

浓度(ppm)=10×(0.4Vout)3
  • V_out:传感器输出电压(0-3.3V)
  • 0.4V:清洁空气中的基准电压

四、串口助手显示示例

Gas: 25.67 ppm
Gas: 30.12 ppm
Gas: 185.44 ppm  ← 超过安全阈值

五、扩展功能实现

1. 报警功能

#define ALARM_THRESHOLD 100.0fvoid Check_Alarm(float conc) {if(conc > ALARM_THRESHOLD) {HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); // 点亮LEDSend_Data(0xFFFF); // 发送报警标志} else {HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);}
}

2. OLED显示(SSD1306)

void Display_OLED(float conc) {OLED_Clear();OLED_ShowString(0,0,"Gas Concentration:");OLED_ShowNum(0,2,conc,1,16); // 显示整数部分OLED_ShowString(0,4,"ppm");
}

六、完整工程结构

├── Core/
│   ├── Inc/
│   │   ├── main.h
│   │   ├── adc.h
│   │   └── usart.h
│   └── Src/
│       ├── main.c
│       ├── adc.c
│       └── usart.c
├── Drivers/
│   ├── CMSIS/
│   └── STM32F1xx_HAL_Driver/
└── Middlewares/└── USB_Device/

七、参考

  1. MQ-5数据手册(关键参数:Rs-R0曲线、响应时间)
  2. 代码 用stm32和mq-5传感器测量天然气浓度并可以用串口助手显示出来 www.youwenfan.com/contentcnj/71922.html
  3. STM32F103参考手册(ADC配置章节)
  4. 《STM32实战开发指南》第6章(传感器接口设计)
http://www.jsqmd.com/news/18221/

相关文章:

  • 2025 年容器 / 结构 / 不锈钢 / 金属 / 过滤器铆焊厂家推荐北京大疆实业:精密制造与全链条服务的实践样本
  • 2025年10月销量第一证明机构推荐榜:尚普与华信人权威对比
  • 理解C++20的革命特性——协程支持1 - 实践
  • 国产代码托管平台Gitee的崛起:为何越来越多人选择它而非GitHub?
  • 飞驰云联亮相军工数字化转型发展峰会 共筑军工数字生态新范式
  • 2025年10月留香沐浴露对比榜:蓝蕨经典香型与四款热门香型横评
  • 2025 最新土工膜生产厂家推荐榜权威发布:聚焦 50 年寿命与 28MPa 强度,涵盖防渗 / HDPE / 复合等全品类标杆企业
  • 2025 年土工布生产厂家最新推荐榜权威发布:聚焦 3 万平厂房与 50 年寿命产品,优选实力品牌
  • 如何在linux驱动程序保存文件
  • 2025年10月留香沐浴露排行:蓝蕨等五款香水级体验评测
  • 2025 年最新推荐!高性价比自动售卖机厂家推荐榜:无人 / 智能 / 文创 / 盲盒 / 食品售货机优选品牌全解析
  • 使用rabbitmq 进行任务调度
  • byte[](字节数组)
  • 2025 年火花机厂家最新推荐榜:涵盖新型 / 镜面 / 数控 / 五轴联动等多类型设备,优质厂家精选助力企业精准选购
  • 2025年10月抗老面霜产品推荐榜:五强横评选购指南
  • 2025 年工业连接器厂家最新推荐榜单:聚焦 M8/M12 / 防水 / 重载 / 以太网品类,精选优质国产企业助力高效采购
  • Java设计模式之工厂模式 - 实践
  • 【转】[C#] 要从接口取时间,单个订单查询和批量查询,写一个接口还是两个接口合适?
  • 2025 年药包材辅导公司最新推荐榜:GMP 验证 / 质量体系 / 实验室装修等服务优质机构权威评选
  • 2025年10月防脱生发产品推荐榜:十款临床验证口碑对比
  • 2025 年国内优质不锈钢厂家最新推荐排行榜:含沈阳/东三省区域及水箱油罐等产品优质服务商楼梯/激光切割/桥梁杆/真空罐/扶手不锈钢厂家推荐
  • 界面控件DevExpress WPF v25.2新功能预览 - 聚焦AI功能提升
  • CSS 预处理器:Sass的基本用法、核心特性 - 详解
  • 2025 顶管源头厂家最新推荐榜单:F 型混凝土 / 水泥 / 电力 / 矩形 / 市政排水大口径优质供应商精选
  • 使用DMA和PWM驱动16组WS2812 LED的STM32实现
  • 2025年GEO品牌推荐榜:云视GEO以全栈技术引领行业变革
  • 【开题答辩实录分享】以《 Python基于大数据的四川旅游景点数据分析与可视化》为例进行答辩实录分享 - 实践
  • linux 程序 启动命令
  • 2025 年台车炉厂家最新推荐榜,技术实力与市场口碑深度解析,助力企业精准选型天然气/燃气/热处理/全纤维/翻转式台车炉厂家推荐
  • ida pro 9.2 接入 ida-pro-mcp