Skip to content
Alash-electronicsPublic

About

Easy AHT10 / AHT20 / AHT21 / AHT30 temperature and humidity library: one begin(), checked data, dew point, clear messages. No dependencies.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

AlashAHT

Русский | Қазақша | English


Русский

Простая библиотека для датчиков температуры и влажности AHT10, AHT20, AHT21, AHT30 (I2C). Точнее и надёжнее DHT11 и DHT22: нет капризных таймингов, один адрес на шине. Сама инициализирует датчик, проверяет контрольную сумму и объясняет, что не так. Только встроенная Wire. Сделана для уроков и наборов Alash Electronics.

#include <AlashAHT.h>
AlashAHT aht;

void setup() { Serial.begin(115200); aht.begin(); }
void loop() {
  Serial.println(aht.temperature());   // °C
  Serial.println(aht.humidity());      // %
  delay(2000);
}

Что умеет

  • Одна библиотека на всё семейство: AHT10, AHT20, AHT21, AHT30. Нужная команда инициализации выбирается сама.
  • Данные проверены: контрольная сумма CRC8 (AHT20 и новее), при ошибке одна повторная попытка. Сбой это NAN и объяснение в errorText(), а не выдуманное число.
  • Значения: temperature() в °C, temperatureF(), humidity() в %, dewPoint() (точка росы), heatIndex() («ощущаемая» температура).
  • Не опрашивает лишний раз: результат свежий 1 секунду (setCacheMs()), несколько вызовов подряд это одно измерение.
  • Понятные подсказки на русском, казахском и английском: errorText() и diagnose(Serial) (список устройств I2C, тип датчика).
  • Работает на Arduino AVR, ESP32, ESP8266; begin(SDA, SCL) для своих пинов.

Подключение

Датчик AHT Uno / Nano ESP32
VIN 3.3 В (или 5 В, если на модуле стабилизатор) 3.3 В
GND GND GND
SDA A4 GPIO21
SCL A5 GPIO22

Адрес датчика один, 0x38, поэтому два AHT на одной шине без мультиплексора не подключить.

Чем отличается от других библиотек

Мы посмотрели Adafruit AHTX0, AHT10 (Enjoy-Digital), AHT20 (dvarrel) и DHT sensor library:

  • Adafruit AHTX0 требует ещё Adafruit BusIO и Adafruit Unified Sensor; у нас одна библиотека.
  • Они не различают AHT10 и AHT20 при инициализации и не проверяют контрольную сумму; у нас оба случая.
  • По даташитам: DHT11 ±2 °C / ±5 %, DHT22 ±0.5 °C / ±2-5 %, AHT20 ±0.3 °C / ±2 %. У DHT свой однопроводной протокол с чувствительными таймингами; AHT это обычный I2C.
  • Подсказок при ошибках нет; у нас diagnose().

Примеры

Basic, Weather, Diagnose, ESP32_CustomPins

Тесты

Инициализация AHT10 и AHT20, пересчёт сырых значений в °C и %, границы (-10, 85 °C, 0 и 100 %), контрольная сумма (пример 0xBEEF = 0x92), повторы при занятом датчике и ошибке CRC, точка росы, индекс жары, кэш проверены без железа: extras/test.

Подробное руководство: docs/WIKI.md.


Қазақша

AHT10, AHT20, AHT21, AHT30 (I2C) температура мен ылғалдылық сенсорларына арналған қарапайым кітапхана. DHT11 мен DHT22-ден дәлірек әрі сенімді. Сенсорды өзі инициализациялайды, бақылау сомасын тексереді және не дұрыс емесін түсіндіреді. Тек кірістірілген Wire.

#include <AlashAHT.h>
AlashAHT aht;

void setup() { Serial.begin(115200); aht.begin(); }
void loop() {
  Serial.println(aht.temperature());   // °C
  Serial.println(aht.humidity());      // %
  delay(2000);
}

Мүмкіндіктері

  • Бүкіл отбасына бір кітапхана: AHT10, AHT20, AHT21, AHT30. Қажетті команда өзі таңдалады.
  • Деректер тексерілген: CRC8 бақылау сомасы, қателікте бір қайталау. Ақау: NAN және errorText() түсіндірмесі.
  • Мәндер: temperature() °C, temperatureF(), humidity() %, dewPoint(), heatIndex().
  • Артық сұрамайды: нәтиже 1 секунд жаңа (setCacheMs()).
  • Түсінікті кеңестер орысша, қазақша, ағылшынша: errorText(), diagnose(Serial).
  • Arduino AVR, ESP32, ESP8266; begin(SDA, SCL).

Қосу

AHT сенсоры Uno / Nano ESP32
VIN 3.3 В (или 5 В, если на модуле стабилизатор) 3.3 В
GND GND GND
SDA A4 GPIO21
SCL A5 GPIO22

Сенсор мекенжайы біреу, 0x38, сондықтан бір шинаға екі AHT қосуға болмайды.

Басқа кітапханалардан айырмашылығы

Adafruit AHTX0, AHT10 (Enjoy-Digital), AHT20 (dvarrel) және DHT sensor library қарадық:

  • Adafruit AHTX0-ге Adafruit BusIO мен Unified Sensor керек; бізде бір кітапхана.
  • Олар AHT10 мен AHT20 айырмасын және бақылау сомасын тексермейді.
  • Даташит бойынша: DHT11 ±2 °C / ±5 %, DHT22 ±0.5 °C / ±2-5 %, AHT20 ±0.3 °C / ±2 %.
  • Қате кеңестері жоқ; бізде diagnose().

Мысалдар

Basic, Weather, Diagnose, ESP32_CustomPins

Тесттер

AHT10 және AHT20 инициализациясы, мәндерді есептеу, шекаралар, бақылау сомасы, қайталаулар, шық нүктесі, кэш тексерілген: extras/test.

Толық нұсқаулық: docs/WIKI.md.


English

A simple library for the AHT10, AHT20, AHT21, AHT30 (I2C) temperature and humidity sensors. More accurate and reliable than DHT11 and DHT22: no fussy timing, one address on the bus. Initializes the sensor, checks the checksum and explains what is wrong. Only the built-in Wire. Made for classes and Alash Electronics kits.

#include <AlashAHT.h>
AlashAHT aht;

void setup() { Serial.begin(115200); aht.begin(); }
void loop() {
  Serial.println(aht.temperature());   // °C
  Serial.println(aht.humidity());      // %
  delay(2000);
}

Features

  • One library for the whole family: AHT10, AHT20, AHT21, AHT30. The right init command is chosen for you.
  • Checked data: CRC8 checksum (AHT20 and newer), one retry on error. A failure is NAN plus an explanation in errorText(), not an invented number.
  • Values: temperature() in °C, temperatureF(), humidity() in %, dewPoint(), heatIndex() ("feels like").
  • No wasted reads: the result stays fresh for 1 second (setCacheMs()), several calls in a row are one measurement.
  • Clear tips in Russian, Kazakh and English: errorText() and diagnose(Serial) (I2C device list, sensor type).
  • Works on Arduino AVR, ESP32, ESP8266; begin(SDA, SCL) for custom pins.

Wiring

AHT sensor Uno / Nano ESP32
VIN 3.3 В (или 5 В, если на модуле стабилизатор) 3.3 В
GND GND GND
SDA A4 GPIO21
SCL A5 GPIO22

The sensor has a single address, 0x38, so two AHT sensors cannot share one bus without a multiplexer.

How it differs from other libraries

We looked at Adafruit AHTX0, AHT10 (Enjoy-Digital), AHT20 (dvarrel) and the DHT sensor library:

  • Adafruit AHTX0 also needs Adafruit BusIO and Unified Sensor; we are one library.
  • They do not tell AHT10 from AHT20 at init and do not check the checksum; we do both.
  • Per datasheets: DHT11 ±2 °C / ±5 %, DHT22 ±0.5 °C / ±2-5 %, AHT20 ±0.3 °C / ±2 %. DHT has its own one-wire protocol with touchy timing; AHT is plain I2C.
  • No tips on errors; we have diagnose().

Examples

Basic, Weather, Diagnose, ESP32_CustomPins

Tests

AHT10 and AHT20 init, raw to °C and % conversion, bounds (-10, 85 °C, 0 and 100 %), checksum (example 0xBEEF = 0x92), retries on busy and CRC errors, dew point, heat index and cache are checked without hardware: extras/test.

Full guide: docs/WIKI.md.


MIT License, Alash Electronics.

About

Easy AHT10 / AHT20 / AHT21 / AHT30 temperature and humidity library: one begin(), checked data, dew point, clear messages. No dependencies.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages