Датчик температуры и влажности AHT10

Узнайте всё о датчике температуры и влажности AHT10: спецификации, распиновка, схемы подключения, документация и примеры кода для ESP32, Arduino, Raspberry Pi

Окружающая среда I2C

Обзор

AHT10 — это первый датчик в серии AHT от компании AOSONG. Он обеспечивает надежные измерения температуры и влажности при крайне низкой стоимости. Благодаря интерфейсу I2C и компактному исполнению, он стал популярным выбором для массовых IoT-устройств, систем умного дома и любительских метеостанций.

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

Датчик AHT10
Быстрая навигация
Основные разделы статьи
Примеры кода
Популярные платформы
Где купить

Приобретите Датчик температуры и влажности AHT10

Характеристики

Технические характеристики AHT10

Датчик AHT10 выделяется высокой стабильностью и низким энергопотреблением.

Протокол
I2C (0x38)
Точность влажности
±2% RH
Точность температуры
±0.3 °C
Питание
1.8В – 3.6В
Скачать PDF Даташит
Распиновка модуля

Распиновка AHT10

Распиновка стандартного модуля AHT10 максимально проста и включает всего 4 вывода.

Схема выводов
Стандартный вид модуля
Распиновка AHT10
Ширина шины
I2C
Пинов
4
Совет

У большинства модулей уже распаяны подтягивающие резисторы (4.7кОм) на линиях SDA и SCL, что упрощает подключение.

Описание функций пинов
Название Тип Описание ESP32 Pin
VIN / VCC Power Питание (рекомендуется 3.3В) 3V3
GND Ground Общий провод GND
SCL Input Тактовый сигнал I2C GPIO22
SDA I/O Линия данных I2C GPIO21
Схема подключения

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

Для классического подключения используйте стандартную шину I2C на выводах GPIO21 и GPIO22.

Проводное соединение
Схема для breadboard
Схема подключения AHT10 к ESP32
Статус подключения
Стабильно
Число проводов
4

Всегда соединяйте GND датчика и микроконтроллера для общей опорной земли.

Таблица соединений
Вывод AHT10 Микроконтроллер Рекомендуемый пин (ESP32)
VIN / VCC 3.3V 3V3
GND Ground GND
SCL I2C SCL GPIO22
SDA I2C SDA GPIO21
Решение проблем

Устранение неполадок AHT10

Столкнулись с проблемами? Попробуйте решения из списка ниже.

Ошибка инициализации датчика
Датчик не определяется на шине I2C

Решение: Проверьте адрес I2C с помощью I2C Scanner. По умолчанию адрес AHT10 — 0x38. Убедитесь, что питание 3.3В подано и провода SDA/SCL не перепутаны местами.

Показания влажности застыли на 0% или 100%
Некорректные данные или ошибки чтения

Решение: Датчику требуется время на инициализацию. Попробуйте добавить небольшую задержку (delay) после старта I2C. Также проверьте, не попала ли влага непосредственно на чувствительный элемент.

Примеры кода

Примеры программирования AHT10

Arduino IDE

Используя библиотеку Adafruit AHT10

C++
#include <Adafruit_AHT10.h>

Adafruit_AHT10 aht;

void setup() {
  Serial.begin(115200);
  Serial.println("Тест датчика AHT10");

  if (!aht.begin()) {
    Serial.println("Датчик не найден!");
    while (1);
  }
  Serial.println("AHT10 готов к работе");
}

void loop() {
  sensors_event_t humidity, temp;
  aht.getEvent(&humidity, &temp); // получение данных

  Serial.print("Температура: "); 
  Serial.print(temp.temperature); 
  Serial.println(" C");
  
  Serial.print("Влажность: "); 
  Serial.print(humidity.relative_humidity); 
  Serial.println(" %");

  delay(2000); // пауза 2 сек
}

Для работы кода установите библиотеку Adafruit AHT10 в менеджере библиотек Arduino IDE.

ESP-IDF

Прямое управление через I2C мастер

C
#include "driver/i2c.h"

// Краткая инициализация I2C для AHT10 (0x38)
void aht10_init() {
    uint8_t init_data[] = {0xE1, 0x08, 0x00};
    i2c_master_write_to_device(I2C_NUM_0, 0x38, init_data, 3, 100 / portTICK_PERIOD_MS);
}

Полный пример требует настройки драйвера I2C. Используйте i2c_master_write_read_device для получения 6 байт данных датчика.

ESPHome

Интеграция в Home Assistant без кода

YAML
sensor:
  - platform: aht10
    temperature:
      name: "Комнатная температура"
    humidity:
      name: "Комнатная влажность"
    update_interval: 60s

ESPHome имеет встроенную поддержку этого датчика, достаточно указать платформу.

MicroPython

С использованием библиотеки ahtx0

Python
import machine
import ahtx0

i2c = machine.I2C(0, scl=machine.Pin(22), sda=machine.Pin(21))
sensor = ahtx0.AHT10(i2c)

print("Температура: %0.2f C" % sensor.temperature)
print("Влажность: %0.2f %%" % sensor.relative_humidity)

Загрузите файл ahtx0.py на контроллер перед использованием.

Итоги AHT10

Датчик AHT10 — это идеальный выбор, когда бюджет проекта сильно ограничен, но требуется цифровая точность и стабильность. Он выигрывает у классических DHT11/DHT22 за счёт использования более современного чипа и работы по шине I2C.

Рекомендации

Для метеостанций на улице используйте защитный колпак, чтобы избежать образования конденсата на сенсоре. При питании от батареек не забывайте использовать спящий режим ESP32 вместе с отключением питания датчика.

Совет по точности

Не располагайте датчик вплотную к горячим чипам (ESP32) или блокам питания. Тепло от платы может завышать показания температуры на 1-2 градуса.

Готовы собрать проект?

Используйте этот датчик в своем следующем проекте для измерения параметров воздуха. Если нужна еще более высокая точность, обратите внимание на SHT31.