ESP8266空气质量检测器制作


所见即所得
原创
发布时间: 2026-02-06 15:30:50 | 阅读数 0收藏数 0评论数 0
封面
现在日子过得好了,大家越来越关心空气质量了。那能不能自己动手搞一个迷你空气检测站呢?当然可以!这篇文章就一步一步带你做,从零开始,手把手教你搭一个属于你自己的小空气监测站——虽然可能不太专业,但玩起来挺有意思!
1

下载ArduinoIDE

我们要使用 Arduino IDE 编程工具,将编写好的程序烧录到单片机中。请前往 Arduino 官网首页,下载并安装该编程工具。

2

修改配置

下载完成后,打开 Arduino IDE,依次点击 文件 > 首选项,在“附加开发板管理器网址”一栏中填入以下地址:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

然后点击“确定”保存设置。

3

开发准备

在完成开发板管理器地址的配置后,接下来需要安装 ESP8266 的开发板支持包。具体操作如下:

  1. 点击 Arduino IDE 顶部菜单栏中的 工具(Tools),然后选择 开发板(Board) > 开发板管理器(Boards Manager)
  2. 在弹出的“开发板管理器”窗口中,等待索引加载完成后,在搜索框中输入 ESP8266
  3. 找到由 ESP8266 Community 提供的 "esp8266 by ESP8266 Community" 条目,点击右侧的 “安装” 按钮,等待依赖包下载并自动安装完成。

安装成功后,关闭开发板管理器窗口。接着再次点击 工具(Tools) > 开发板(Board),在下拉列表中找到 ESP8266 模块(ESP8266 Modules) 分类,并从中选择 “Generic ESP8266 Module” 作为当前使用的开发板。

这一步确保了 Arduino IDE 能够正确识别和编译适用于 ESP8266 芯片的代码,为后续的程序烧录做好准备。

4

电源部分

准备一个4节电池的电池盒和DC插头,使用破线钳去除外皮,再把电池盒和DC的线合在一起,注意DC的黄色线是正极不要接反。

5

电路图

各个组件接到Arduino Uno的接线:

  1. MQ-135空气质量传感器
  2. VCC:连接到Uno的5V
  3. GND:连接到Uno的GND
  4. OUT:连接到Uno的A0
  5. SSD1306显示屏
  6. VCC:连接到Uno的5V
  7. GND:连接到Uno的GND
  8. SDA:连接到Uno的A4
  9. SCL:连接到uno的A5
  10. 有源蜂鸣器
  11. +(正极):连接到Uno的5V
  12. -(负极):连接到Uno的D3
  13. LED报警灯
  14. 长脚(+):连接到Uno的D2
  15. 短脚(-):连接到Uno的GND
6

Arduino代码

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1

#define MQ135_PIN A0
#define LED_PIN 2
#define BUZZER_PIN 3

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// 阈值(需根据实际校准)
int GOOD_THRESHOLD = 150; // 空气良好
int POOR_THRESHOLD = 300; // 需要通风

void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
// 初始关闭 LED 和蜂鸣器
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER_PIN, HIGH); // 注意:HIGH = 关闭(因负极接引脚)

Serial.begin(115200);

if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED init failed!");
for (;;); // 卡死
}

display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("Air Monitor");
display.display();
delay(2000);
}

void loop() {
int sensorValue = analogRead(MQ135_PIN);
Serial.print("MQ135: ");
Serial.println(sensorValue);

String status;

if (sensorValue < GOOD_THRESHOLD) {
status = "Good";
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER_PIN, HIGH); // 关闭蜂鸣器
} else if (sensorValue < POOR_THRESHOLD) {
status = "Fair";
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER_PIN, HIGH); // 关闭蜂鸣器
} else {
status = "VENTILATE!";
digitalWrite(LED_PIN, HIGH); // 开启报警 LED
digitalWrite(BUZZER_PIN, LOW); // 蜂鸣器响(拉低)
delay(100); // 响 100ms
digitalWrite(BUZZER_PIN, HIGH); // 关闭蜂鸣器
}

// 更新 OLED 显示
display.clearDisplay();
display.setCursor(0, 0);
display.print("MQ135: ");
display.println(sensorValue);

display.setCursor(0, 16);
display.print("Status: ");
display.println(status);

display.display();

delay(1000);
}
7

外壳

准备好打印的3D外壳和一把镊子,有镊子夹住LED灯泡在侧面最小的圆塞出来,之后继续使用镊子把蜂鸣器塞入侧面另一个洞中。接下来找到MQ-135空气检测模块放入顶部的圆中,使用热熔胶固定,下一步就是放入OLED屏幕,方式和其他的一样,使用热熔胶固定即可,最后使用侧板封住即可。

STL
盒.stl
76.84KB
STL
盖.stl
3.40KB
阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报