你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【逢7发帖赢大礼】STM32开发之环境空气质量监测

[复制链接]
A0dy 发布时间:2026-7-1 17:59

一、硬件介绍

产品特点

使用的是天空星STM32F407开发板,搭载ARM Cortex-M4F内核的STM32F407VET6,最高主频为168MHz,Flash 512KB,SRAM 192KB,板载SPI Flash、Micro SD卡插槽等;

STM32F407VET6

image-20260622181129215.png

主要原理图

image-20260706150834625.png


二、环境搭建

1、下载Arduino IDE

image-20251009205311004.png

2、搭建方法

搭建方法点此查看!!!

三、硬件设备

空气质量传感器模块(ZP01)

ZP01是一款异味检测传感器,可检测甲醛、苯、烟雾、酒精、氨气等有机污染气体,内置比较器输出双数字电平 A/B,分4档空气质量等级;

image-20260706182805366.png

引脚 功能 说明
GND 电源负极 接地
5V 电源正极 5V
A 数字输出 A TTL 电平
B 数字输出 B TTL 电平

空气质量等级判断

等级 A 引脚 B 引脚 空气质量
0 级 低电平 低电平 空气洁净
1 级 低电平 高电平 轻度污染
2 级 高电平 低电平 中度污染
3 级 高电平 高电平 重度污染

实物连接效果

硬件引脚 - - - -
STM32 PB15 5V GND PB14
传感器模块 A 5V GND B

image-20260706183633370.png


四、代码编写

效果:在串口上显示,当前环境的空气质量信息等级;

主要相关代码


HardwareSerial Serial1(PA10, PA9);

const int pinA = PB15;
const int pinB = PB14;

void setup() {
  Serial1.begin(115200);
  delay(100);
  pinMode(pinA, INPUT);
  pinMode(pinB, INPUT);
}

void loop() {
  int valA = digitalRead(pinA);
  int valB = digitalRead(pinB);
  String airLevel;

  // 判断污染等级
  if(valA == LOW && valB == LOW){
    airLevel = "0级 空气洁净";
  }else if(valA == LOW && valB == HIGH){
    airLevel = "1级 轻度污染";
  }else if(valA == HIGH && valB == LOW){
    airLevel = "2级 中度污染";
  }else{
    airLevel = "3级 重度污染";
  }

  Serial1.print("A电平:");
  Serial1.print(valA);
  Serial1.print(" B电平:");
  Serial1.print(valB);
  Serial1.print(" 空气质量:");
  Serial1.println(airLevel);
  delay(1000);
}

五、效果演示

正常环境下 显示为 “"0级 空气洁净”;

当用打火机靠近传感器时,监测到的空气质量等级逐渐变差;

image-20260706184446307.png

收藏 评论0 发布时间:2026-7-1 17:59

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版