Набор датчика качества воздуха и комфорта на Arduino
Компоненты и материалы
| Arduino Nano R3 | ×1 |
| Датчик температуры и влажности DHT11 (3 пина) | ×1 |
| Датчик качества воздуха MQ135 | ×1 |
| OLED-дисплей 0.96″ I2C | ×1 |
Необходимые инструменты
- Паяльник
- 3D-принтер (опционально, для корпуса)
Приложения и сервисы
- Arduino IDE
О проекте
Часто после сна в закрытой комнате чувствуешь слабость из-за плохого качества воздуха. Этот недорогой монитор отслеживает качество воздуха (MQ135), температуру и влажность (DHT11) и выводит данные на OLED-дисплей. Простой, полезный и увлекательный проект.
Схема подключения
Подключите:
- Arduino D2 → выход DHT11
- Arduino A0 → аналоговый выход MQ135 (Ao)
- Arduino A5 → SCL OLED
- Arduino A4 → SDA OLED
Программирование
Необходимо установить библиотеки:
Adafruit_SSD1306.hAdafruit_GFX.hDHT.h
В коде две основные функции: sendSensor() и air_sensor().
air_sensor()считывает аналоговое значение с MQ135 (gasLevel = analogRead(sensor);) и определяет качество воздуха по пороговым значениям.sendSensor()измеряет температуру и влажность через библиотеку DHT и выводит на дисплей.
Калибровка MQ135: Перед использованием датчик нужно «прожечь» — подать 5 В и держать в чистом воздухе минимум 24 часа. Это удаляет загрязнения с чувствительного элемента. После этого подключите датчик, вынесите на улицу и подберите пороговые значения для вашего места.
Код
Arduino Air Quality Monitor
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeSans9pt7b.h>
#include <Fonts/FreeMonoOblique9pt7b.h>
#include <DHT.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define sensor A0
#define DHTPIN 2
#define DHTTYPE DHT11
int gasLevel = 0;
String quality = "";
DHT dht(DHTPIN, DHTTYPE);
void sendSensor() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
display.setTextColor(WHITE);
display.setTextSize(1);
display.setFont();
display.setCursor(0, 43);
display.println("Temp :");
display.setCursor(80, 43);
display.println(t);
display.setCursor(114, 43);
display.println("C");
display.setCursor(0, 56);
display.println("RH :");
display.setCursor(80, 56);
display.println(h);
display.setCursor(114, 56);
display.println("%");
}
void air_sensor() {
gasLevel = analogRead(sensor);
if (gasLevel < 181) {
quality = " GOOD!";
} else if (gasLevel > 181 && gasLevel < 225) {
quality = " Poor!";
} else if (gasLevel > 225 && gasLevel < 300) {
quality = "Very bad!";
} else if (gasLevel > 300 && gasLevel < 350) {
quality = "ur dead!";
} else {
quality = " Toxic";
}
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(1, 5);
display.setFont();
display.println("Air Quality:");
display.setTextSize(1);
display.setCursor(20, 23);
display.setFont(&FreeMonoOblique9pt7b);
display.println(quality);
}
void setup() {
Serial.begin(9600);
pinMode(sensor, INPUT);
dht.begin();
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3c)) {
Serial.println(F("SSD1306 allocation failed"));
}
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(50, 0);
display.println("Air");
display.setTextSize(1);
display.setCursor(23, 20);
display.println("Quality monitor");
display.display();
delay(1200);
display.clearDisplay();
display.setTextSize(2);
display.setCursor(20, 20);
display.println("BY Abid");
display.display();
delay(1000);
display.clearDisplay();
}
void loop() {
display.clearDisplay();
air_sensor();
sendSensor();
display.display();
}
Корпус и крепеж
Модель 3D-корпуса доступна в проекте. Можно сделать корпус из картона или других подручных материалов.
Схема

Производственный процесс
- Крошечные датчики PM2.5 и VOC обеспечивают мониторинг личного качества воздуха в реальном времени
- Bosch Sensortec представляет AI-сенсор качества воздуха BME688 для снижения риска передачи вирусов
- Renesas расширяет платформу датчика качества воздуха ZMOD4410 встроенным ИИ для улучшенного обнаружения запахов
- Сборка станции качества воздуха и погоды на Raspberry Pi с InfluxDB и Grafana
- Измерение качества воздуха с OpenSensors: руководство по Arduino и Python
- DIY монитор качества воздуха: экономичный детектор, соответствующий стандартам EPA
- Солнечный датчик качества воздуха на Helium: руководство по проектированию и развёртыванию
- Система мониторинга качества воздуха Smart City на базе LoRa
- Создание потрясающей системы Ambilight для монитора на Arduino
- Продвинутый углеродный датчик NO₂ улучшает мониторинг качества воздуха в помещениях