Простая библиотека для датчиков температуры и влажности 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.
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);
}- 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
NANplus an explanation inerrorText(), 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()anddiagnose(Serial)(I2C device list, sensor type). - Works on Arduino AVR, ESP32, ESP8266;
begin(SDA, SCL)for custom pins.
| 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.
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().
Basic, Weather, Diagnose, ESP32_CustomPins
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.