Датчики AHT10, AHT15 и AHT21b

Китайцы ничего лучше не придумали, как всей линейке AHT дать один и тот же идентификатор — 0x38. Ну и принцип получения данных и вычисления температуры и влажности почти полностью одинаков у всех, разве что у AHT21B нужно команду init (0xe1) давать, лишь если чтение регистра status (0x71) не вернет 0x18. Спустя какие-то миллисекунды после команды init можно давать команду read (0xac). Можно сразу читать 6 байт из регистра 0xac, тогда получим статус нынешний (занят измерениями) а температуру — с предыдущего запроса.
В случае, если что-то с датчиком не то, можно его программно сбросить (0xba). После чтения просто читаем один байт: как только седьмой бит сброшен, можно читать шесть байт. Первая половина — влажность, вторая — температура. Влажность просто делим на 2²⁰, а температуру после деления умножаем на 200 и вычитаем 50.
Да, на все датчики документация — очень кривой перевод с китайского, так что посреди графиков и диаграмм много где попадаются иероглифы, а в пояснительном тексте ни хрена не рассказано, что это за хрень такая.
Все датчики минут по пять гонял, кроме пятнашки: пока я этот текст пишу, он включен, посмотрю, что будет ближе к концу текста.
AHT10 оказался самым тупым. Температура скакала туда-сюда от 25℃ до 28℃. Влажность показывал от 43% до 46%. Даже между соседними измерениями вполне могла выскочить разница в 1℃ или пару процентных пунктов по влажности.
AHT21b дал разброс по температуре от 24.7℃ до 25.5℃, что уже куда лучше. Влажность прыгала от 47.9% до 49.9%. Повторяемость уже лучше: между двумя соседними измерениями разброс температуры около 0.2℃, влажности около 1.5 процентных пунктов.
AHT15 в начале измерений дал разброс 24.4÷25.2℃ и 45.8÷48.1%. Сейчас (под конец этой писанины) показания температуры уже почти устаканились: вначале он показал 24.5℃, потом с каждым измерением все меньше, остановившись три раза подряд на 24.1℃ (что похоже на правду). А влажность так и скакала от 47.7% до 48.7%. В принципе, из всех трех у этого по влажности лучше всего получилось. Между соседними измерениями разброс около 0.5 процентного пункта по влажности и 0.1℃.
С первого взгляда они мне совершенно не понравились, так что, не думаю, что стоит писать софт под МК. Разве что, поподключать их поочередно к "апельсинке" и пособирать статистику. Но, подозреваю, все равно ничего хорошего не будет. Обычные показометры, но никак не серьезные датчики.
Да, в статусе указано еще и состояние датчика, которое может быть CYC (подозреваю, что это означает постоянный режим считывания). Читая разные регистры от балды, я случайно загнал в такой режим AHT15, ХЗ, не воспроизводимо. В документации вообще ничего нет о том, как эти состояния между собой менять.
|
</> |