eddy_em: (Default)
[personal profile] eddy_em
Сел после ужина, запаял гребенки к платкам с этими датчиками, и начал поочередно их втыкать в девборду на STM32G070. Командный аппарат и вычисление настолько примитивны, что решил даже скриптик не писать, так — на калькуляторе считал.

Китайцы ничего лучше не придумали, как всей линейке 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℃.

С первого взгляда они мне совершенно не понравились, так что, не думаю, что стоит писать софт под МК. Разве что, поподключать их поочередно к "апельсинке" и пособирать статистику. Но, подозреваю, все равно ничего хорошего не будет. Обычные показометры, но никак не серьезные датчики.

May 2025

S M T W T F S
    123
45678910
11121314151617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 01:37 pm
Powered by Dreamwidth Studios