↩️ Назад

Категории

ENS160 + AHT21: проверка качества воздуха дома на ESP32

07.11.2025 | Статья из категории: IOT умный дом

Распаковка датчика ENS160 + AHT21, проверка качества воздуха дома на ESP32

Пришёл датчик ENS160+AHT21 в сборке TZT — отличная штука для домашнего мониторинга воздуха. В этой статье расскажу, что он умеет, как его подключить к ESP32, какой код залить и какие реально бытовые ситуации он «ловит».

Что внутри?

  • ENS160 — датчик газов: оценивает качество воздуха на основе летучих органических соединений (VOC) и эквивалентного CO₂ (eCO₂).
  • AHT21 — датчик температуры и влажности, нужен для компенсации показаний ENS160 (он чувствителен к окружающим условиям).

Оба датчика работают по шине I²C — удобно, мало проводов.

Что может поймать дома?

  • Запах из окна: выхлопы с дороги, особенно в безветренную погоду или при инверсии.
  • Разлитый ацетон, спирт, растворитель в гараже или кладовке.
  • Горелая пища или запах гари от утюга/техники.
  • Повышенный уровень CO₂ от скопления людей (вечеринка, семинар, душная комната).
  • Выделения от новых мебели, краски, линолеума (VOC).

ENS160 не показывает состав газов (типа: «это ацетон»), но даёт общую оценку — по шкале от «отлично» до «плохо», а также числа eCO₂ (ppm) и TVOC (ppb).

Подключение к ESP32

Стандартное I²C-подключение:

  • VCC → 3.3V (не 5V!)
  • GND → GND
  • SCL → GPIO22 (по умолчанию)
  • SDA → GPIO21 (по умолчанию)

Датчик 3.3В-совместим. Питать от 5V нельзя — спалите.

Потребление

  • ENS160: ~45 мА при непрерывной работе, но в режиме измерения ~10–15 мА.
  • AHT21: ~0.25 мА.

Если использовать периодические замеры (например, раз в 30 сек), среднее потребление будет около 1–2 мА — нормально для питания от power bank или солнечной панели.

Код для ESP32 (Arduino IDE)

Потребуются библиотеки:


#include <Wire.h>  
#include <ENS160.h>  
#include <AHT21.h>  

ENS160 ens160;
AHT21 aht21;

void setup() {
  Serial.begin(115200);
  Wire.begin();

  if (!aht21.begin()) {
    Serial.println("AHT21 не найден!");
    while (1);
  }

  if (!ens160.begin()) {
    Serial.println("ENS160 не найден!");
    while (1);
  }

  // Обязательно передаём T и RH для компенсации
  ens160.setTempAndHum(25.0, 50.0); // временные значения
}

void loop() {
  aht21.read();

  float temp = aht21.getTemperature_C();
  float hum = aht21.getHumidity_RH();

  // Передаём актуальные данные в ENS160
  ens160.setTempAndHum(temp, hum);

  ens160.read();

  Serial.print("T: "); Serial.print(temp, 1);
  Serial.print("°C, RH: "); Serial.print(hum, 1);
  Serial.print("% | eCO2: "); Serial.print(ens160.CO2);
  Serial.print(" ppm, TVOC: "); Serial.print(ens160.TVOC);
  Serial.print(" ppb | Air Quality: ");

  switch (ens160.AQI) {
    case 1: Serial.println("Отлично"); break;
    case 2: Serial.println("Хорошо"); break;
    case 3: Serial.println("Умеренно"); break;
    case 4: Serial.println("Плохо"); break;
    case 5: Serial.println("Очень плохо"); break;
    default: Serial.println("?");
  }

  delay(2000);
}

Советы

  • Первые 24–48 часов после включения датчик «прогревается» — показания могут быть неточными.
  • Размещайте модуль в зоне естественного воздухообмена, но не рядом с окном (сквозняк мешает).
  • ENS160 не предназначен для измерения угарного газа (CO) — только eCO₂ и VOC.

Итог

ENS160+AHT21 — отличный стартовый датчик для домашнего IoT-эксперимента с качеством воздуха. Он не заменит профессиональный газоанализатор, но покажет, когда стоит проветрить комнату, проверить химию в кладовке или заподозрить скопление выхлопов с улицы.

Удачного тестирования! Пишите в комменты, какие бытовые «ароматы» поймал ваш ENS160.

esp32 pin



Категории:

Категории

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0
о блоге | карта блога

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA