鹰潭市网站建设_网站建设公司_JSON_seo优化
2026/1/17 8:14:14 网站建设 项目流程

从零开始打造空气质量检测仪:手把手教你用 Arduino 做环境监测

你有没有过这样的经历?刚走进一间密闭的房间,总觉得空气“闷”、头昏脑胀,却说不清问题出在哪。其实,这很可能就是室内空气污染在悄悄影响你的健康——而我们往往对此毫无察觉。

如今,城市生活节奏加快,人们80%以上的时间都在室内度过。厨房油烟、家具释放的甲醛、打印机散发的臭氧……这些看不见的污染物正潜移默化地侵蚀着我们的呼吸系统。好消息是,借助一块几十元的开发板和几个传感器,普通人也能亲手做一个实时监测空气质量的小设备,不再“凭感觉”判断环境好坏。

今天,我们就以Arduino UNO为核心,带你从零搭建一台简易但实用的空气质量检测仪。不需要电子基础,不用会焊接,连代码都是“抄作业”级别,只要你会插线、会点鼠标,就能完成这个项目。


为什么选 Arduino?因为它真的适合“小白”

说到嵌入式开发,很多人第一反应是“难”:要学单片机、懂电路、会调试……门槛太高。但Arduino的出现,彻底改变了这一点。

它本质上是一个开源硬件平台,最大的特点就是——简单到像搭积木。配合图形化的Arduino IDE编程环境,哪怕你从来没写过代码,也能通过几行 C++ 风格的指令控制硬件。更重要的是,它的社区极其活跃,无论遇到什么问题,几乎都能在网上找到答案。

在这个项目中,我们将使用最经典的Arduino UNO R3板子作为大脑,搭配一个叫MQ-135的气体传感器来感知空气中的有害物质。整个系统成本不到百元,却能实现对 TVOC(总挥发性有机物)、烟雾、氨气等常见污染物的粗略检测。


核心部件揭秘:MQ-135 到底是怎么“闻”出空气好坏的?

它不是“鼻子”,而是“电阻变化探测器”

别被名字误导了,MQ-135 并不会像人一样“闻气味”。它的原理其实很巧妙:基于一种叫做金属氧化物半导体(MOS)的材料。

这块传感器内部有一层敏感材料(通常是二氧化锡 SnO₂),还有一个加热丝。通电后,加热丝把元件加热到 300°C 左右——听起来很高?没错,这是为了让气体更容易发生化学反应。

当空气中存在目标气体(比如氨气、苯、二氧化碳等)时,它们会吸附在敏感层表面,导致材料的电阻值发生变化。浓度越高,电阻变越明显。这个变化会被电路转换成电压信号输出出来。

最终,Arduino 只需读取这个电压值,就知道当前空气“脏不脏”。

📌 小贴士:MQ-135 输出的是模拟电压(0~5V),正好匹配 Arduino 的 ADC 输入范围。

关键参数一览(挑重点看)

参数数值/说明
工作电压DC 5V(直接接 Arduino 电源即可)
输出信号模拟电压(可接 A0~A5 引脚)
检测对象NH₃、CO₂、烟雾、TVOC 等(综合反映)
响应时间<10 秒
预热要求首次使用需持续通电 24 小时“老化”

⚠️ 注意事项:
-不要指望它做医疗级检测:精度有限,适合趋势观察而非精确数值。
-易受干扰:酒精、香水、洗手液蒸汽都会让它“误报”。
-温湿度影响大:建议后续加 DHT11 补偿数据。

不过对于入门项目来说,这些问题完全可控。关键是——它便宜!一片十几块包邮,失败了也不心疼。


动手第一步:接线图来了,照着连就行

我们采用最简单的连接方式,全程使用杜邦线+面包板,无需焊接

所需材料清单

名称数量备注
Arduino UNO R3 开发板1 块推荐带 CH340G 芯片的国产版本
MQ-135 传感器模块1 个建议买带 PCB 的成品模块,已有上拉电阻
面包板1 块小型即可
杜邦线若干若干公对母、母对母都行
USB 数据线1 条Micro-USB 或 Type-B,用于供电和上传程序

接线方式(三根线搞定)

MQ-135 引脚连接到 Arduino
VCC5V
GNDGND
OUTA0

✅ 就这么简单!VCC 接电源,GND 接地,OUT 接模拟输入口 A0。如果你买的模块上有 LED 指示灯,亮起说明已经开始工作了。


写代码?别怕,这几行就够了

打开Arduino IDE(还没装?去官网 arduino.cc 下载,支持 Win/Mac/Linux),新建一个项目,把下面这段代码复制进去:

const int sensorPin = A0; // 定义传感器接在 A0 引脚 void setup() { Serial.begin(9600); // 启动串口通信,波特率设为 9600 } void loop() { int adcValue = analogRead(sensorPin); // 读取原始 ADC 值(0~1023) float voltage = adcValue * (5.0 / 1023.0); // 换算成实际电压(0~5V) Serial.print("ADC: "); Serial.print(adcValue); Serial.print("\tVoltage: "); Serial.print(voltage, 2); // 保留两位小数 Serial.println(" V"); delay(1000); // 每秒采样一次 }

📌逐行解释一下:
-analogRead(A0):Arduino 内置函数,专门用来读模拟引脚的值,返回 0~1023。
-5.0 / 1023.0:因为 ADC 是 10 位分辨率,所以最大值是 1023,对应 5V。
-Serial.print():把数据显示在电脑上,方便你看结果。
-delay(1000):暂停 1 秒,避免刷屏太快。

上传代码前记得:
1. 正确选择开发板类型:Tools → Board → Arduino Uno
2. 选择对应的串口号(插入 USB 后一般会自动识别)

点击左上角的“→”按钮上传,然后按 Ctrl+Shift+M 打开串口监视器,你应该能看到类似这样的输出:

ADC: 245 Voltage: 1.19 V ADC: 247 Voltage: 1.21 V ADC: 244 Voltage: 1.19 V

恭喜!你已经成功采集到了空气中的“气味数据”。


让机器学会“判断”:把数字变成“空气好不好”的提示

光看一堆数字太抽象了。我们可以让 Arduino 自己做个判断,告诉你现在空气质量属于哪个等级。

在原有代码基础上,添加一个判断函数:

String getAirQuality(int adcValue) { if (adcValue < 300) return "Excellent"; // 优 else if (adcValue < 600) return "Good"; // 良 else if (adcValue < 800) return "Fair"; // 轻度污染 else return "Poor"; // 严重污染 }

然后在loop()中调用它:

String quality = getAirQuality(adcValue); Serial.print("Air Quality: "); Serial.println(quality);

重新上传代码后,串口就会显示:

ADC: 245 Voltage: 1.19 V Air Quality: Excellent

是不是瞬间专业感拉满?这个分级完全是经验性的,你可以根据自己所在环境调整阈值。比如北方冬天烧煤取暖的地方,基准值可能本身就偏高。


实际测试建议:去这几个地方试试效果

理论讲完,动手才是王道。建议你在不同场景下测试设备反应:

场景预期表现
户外空旷处ADC 值较低(<300),显示“优”
刚炒完菜的厨房数值迅速上升,可能突破 600
卫生间喷完空气清新剂短时间内飙升(注意:这是假警报)
密闭一天的卧室数值缓慢升高,反映 CO₂ 累积

你会发现,设备对烹饪烟雾、清洁剂气味特别敏感——这也正是它最有用的地方:提醒你“该开窗通风了”。


常见坑点与避坑秘籍

新手最容易踩的几个坑,我都帮你试过了:

🔧问题1:刚插上电,数值一直在跳,不稳定?
→ 别慌!MQ-135 需要预热。首次通电建议等待10~30 分钟,等数值趋于平稳再开始测量。

🔧问题2:放在干净房间也显示“污染”?
→ 检查是否靠近酒精类物品、香薰机或打印机。MQ-135 对这些非常敏感,属于正常现象。

🔧问题3:每次重启数值都不一样?
→ 因为没有做校准。进阶玩法可以在洁净空气中记录一个“基准值 R₀”,后续用公式计算相对浓度。

🔧问题4:USB 断开就没法用了?
→ 加个移动电源就行!任何支持 5V 输出的充电宝都可以给 Arduino 供电,实现便携监测。


下一步怎么玩?给你几个升级思路

做完基础版之后,完全可以把它变得更强大。以下是几个低成本扩展方向:

✅ 加个屏幕:本地显示更直观

  • 接一个LCD1602(约 10 元)或OLED 屏(SSD1306,约 15 元)
  • 直接显示“空气质量:良好” + 当前电压值
  • 代码只需增加几行库调用,网上教程一大把

✅ 加温湿度补偿:让数据更准一点

  • 插上DHT11温湿度传感器(5 元)
  • 用温湿度修正 MQ-135 的读数,减少误差
  • 特别适合长期放置在卧室或教室

✅ 接 WiFi:把数据传到手机上看

  • 使用ESP-01S 模块(约 8 元)或直接换 ESP32 开发板
  • 把数据上传到Blynk、ThingsBoard 或阿里云 IoT
  • 实现远程查看、历史曲线、超标报警

✅ 做个多节点网络:画出家里空气地图

  • 在客厅、卧室、厨房各放一台
  • 通过无线通信汇总数据
  • 找出家中空气最差的位置

写在最后:这不是玩具,是通往技术世界的一扇门

也许你会觉得,这样一个只能粗略判断“空气好不好”的小装置,能有多大用处?但它真正的价值,不在于多精准,而在于——

👉它让你第一次亲手把“物理世界”和“数字世界”连接了起来。

你看到了一段代码如何驱动一个真实的传感器,如何把空气中看不见的分子活动转化为屏幕上跳动的数字。这种“我能掌控硬件”的成就感,是任何视频教程都无法替代的。

而且,这套方法论可以复用到无数其他项目中:
- 换个传感器,就能做土壤湿度计;
- 加个继电器,就能自动打开加湿器;
- 接个蜂鸣器,就能做成煤气泄漏报警器……

从感知环境,到影响环境,只差一步逻辑判断。

所以,别再犹豫了。去买块 Arduino,花一个下午的时间,把这个小玩意做出来。当你看到它在桌角默默工作,提醒你“该开窗了”的那一刻,你会明白:原来科技离生活,可以这么近。

如果你在实现过程中遇到了问题,欢迎留言交流。我们一起解决,一起进步。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询