• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

pvvx

Активный участник сообщества
В итого - я не могу вам ничего рекомендовать для концепции Arduino, кроме констатации факта что оно морально и технически устарело ещё на предыдущих этапах развития электроники и давно не является средством обучения программированию и даже начальным вводом в эту тематику.
 

pvvx

Активный участник сообщества
Игра в Arduino описала свой ареал и развития у неё нет. Это как игра в бирюльки – что там можно рекомендовать?
(это не в шутку и не ради стеба, а серьезный вопрос)
 

pvvx

Активный участник сообщества
Из адекватного ответа тут есть только пару соображений:

Всё что осталось в Arduino – это реклама. К примеру, вы занимаетесь либой к этим датчикам чисто для рекламы и не более, ну типа модно так было... Есть ещё реклама самих готовых кубиков для данной игры.

У играющих в Arduino на сегодня имеется только один вопрос – какая версия либы подойдет?

Т.е. всё давно перешло в русло шопинга без какого либо обучения, изучения и прочего развивающего.

На этом вроде всё. Остальное игроков в Arduino совсем не интересует. Вот и под это и адаптируйте свою либу.
 

pvvx

Активный участник сообщества
Пришли AHT15, по дороге видимо долго болели…
Попробовал что это такое... Запихал датчик в коробку и на javascript прикинул небольшой тестик на UBIA, чтобы убедиться в глупости измеряльщиков, примеру тут: Test 4 v6 Saturated NaCl solution / Test 2 v7 room RH12 low humidity
В стандартном режиме, описанном в китай-PDF, вышло это:
1588282727634.png
Измерение производилось так:
60 секунд пауза с отключением питания, далее замер, примерно 60 сек, опять отключение питания на 60 сек и новый замер.

Датчик был запихан в коробку с термо и влаго "стабилизатором" в виде камушка (уж что нашлось под рукой на даче) :) :
P_20200430_.jpgP_20200430_2.jpg
В итоге видим,что нагрев датчика от включения при 9 точках в сек составляет более +0.6 С, а по влажности более 1.2%.
Потребление самого датчика по линии 3.3 В при этом:
1588282767374.png
 

pvvx

Активный участник сообщества
enjoynering - это что за функция - setCycleMode() // Set cycle measurment mode / NOTE: - continuous measurement?
Как это работает? Единственное что из этого вышло – увеличение потребления и времени замера:
1588283885964.png
1588283944835.png
 

pvvx

Активный участник сообщества
Общее потребление у BLE (TLSR8266) с датчиком AHT15 и 9-ти замерах в сек - 2.54 мА.
1588289229964.png
И это при опросе i2c со стороны браузера в HTML/javascript - BLE чип выполняет только функцию адаптера i2c.
При написании программы в сам чип его потребление снизится до средних около 100 мкА при передаче набранных (9-ти) результатов один раз в сек.
Останется только потребление датчика, т.к. оно превышает потребление среднего работающего BLE чипа более чем в 10 раз.
А ESP вообще в помойку...
 

pvvx

Активный участник сообщества
Как пример - 26 минут записи с шагом опроса сенсора AHT15 в 10 сек, с соединением BLE в 1575 мс:
1588297404726.png
Усредненный ток всего устройства (BLE+AHT15) за период диаграммы (60 сек) равен 75.128 мкА по линии 3.3 В:
1588297415004.png
 

enjoynering

Well-known member
это что за функция - setCycleMode()
Я сам не знаю. В datasheet про нее не слово. Я даже не уверен что правильно ее вызываю, тк информация очень скудная и противоречивая. По аналогии с uht21 предполагаю, что это cycle measurment mode когда датчик не спит и сам постоянно измеряет температуру. Остается ее только забрать (команду на измерение отправлять не надо). Повторюсь это только мои догадки. Datasheet очень кривой.
 

pvvx

Активный участник сообщества
предполагаю, что это cycle measurment mode когда датчик не спит и сам постоянно измеряет температуру.
Так не выходит.
AHT15 сам не хочет измерять.
Команда с флагом 0x28 всего увеличивает время до возможности получения результата (сброса флага busy в 7-бите состояния) и увеличивает время активности, т.е. потребления.
 

enjoynering

Well-known member
Я даже не уверен что правильно вызываю Cycle Mode. Гляньте datasheet на AHT20 в нем информации побольше и все mode через 3 посылки по 8 бит. Как правильно послать 3х8-бит для Cycle Mode нету.
 

nikolz

Well-known member
Пришли AHT15, по дороге видимо долго болели…
Попробовал что это такое... Запихал датчик в коробку и на javascript прикинул небольшой тестик на UBIA, чтобы убедиться в глупости измеряльщиков, примеру тут: Test 4 v6 Saturated NaCl solution / Test 2 v7 room RH12 low humidity
В стандартном режиме, описанном в китай-PDF, вышло это:
Посмотреть вложение 9137
Измерение производилось так:
60 секунд пауза с отключением питания, далее замер, примерно 60 сек, опять отключение питания на 60 сек и новый замер.

Датчик был запихан в коробку с термо и влаго "стабилизатором" в виде камушка (уж что нашлось под рукой на даче) :) :
Посмотреть вложение 9139Посмотреть вложение 9140
В итоге видим,что нагрев датчика от включения при 9 точках в сек составляет более +0.6 С, а по влажности более 1.2%.
Потребление самого датчика по линии 3.3 В при этом:
Посмотреть вложение 9138
Ваши измерения соответствуют документации:
где для AH15 указана погрешность измерения температуры в диапазоне 10-50 гр составляет +-0.5 гр,
а погрешность измерения влажности +-2%RH.
-------------------
М.. да,В чем смысл проверять документацию - непонятно.
 

pvvx

Активный участник сообщества
Ваши измерения соответствуют документации:
где для AH15 указана погрешность измерения температуры в диапазоне 10-50 гр составляет +-0.5 гр,
а погрешность измерения влажности +-2%RH.
-------------------
М.. да,В чем смысл проверять документацию - непонятно.
Смысл в том, что в документации писано +-2%RH, а на деле более -2..+3.2%RH
И в доках неверно указано потребление.
Если вам что-то не нужно - не читайте и не тусуйтесь тута :p Но ваше заинтересованность наглядна - цельных 2 сообщения ни о чем накатали :)
 

pvvx

Активный участник сообщества
И по температуре от старта из-за прогрева уходит более чем на +1С. Смотрите второй график и в первом варианте аналогично, если сократить время опроса.
Так-же в доке не указано время преобразования от команды старта до вывода полученного значения...
Т.е. дока липовая, а теперь эл. параметры наглядны и годятся для расчета :p
 

enjoynering

Well-known member
Так-же в доке не указано время преобразования от команды старта до вывода полученного значения...
указанно
The sensor takes time to acquire, and the host sends a
measurement command (0xAC). After that, the delay is more than 75
milliseconds
, and then the converted data is read and the returned
shape is judged. Whether the status is normal. If the status bit [Bit7]
is 0, the data can be normal. Read, when the sensor is busy, the host
needs to wait for the data processing to complete.
 

pvvx

Активный участник сообщества
указанно
measurement command (0xAC). After that, the delay is more than 75 milliseconds.
Не выходит 75 ms, как не пробовал.
Точно не вычислял, но и при минимальном соединении по BLE 7.5 ms (шаг, когда устройство обменивается данными по радиоканалу) не выходит 75 ms после выдачи команды измерения до считывания результата с уже сброшенным флагом занятости (т.е. валидных данных). Требуется больше 75 ms...
И в случае команды AC 28 00 - там явно более 250 ms (см. диаграмму).

Да, а начальной задержки, о чем вы писали о 300 ms, для первого запроса не обнаружено.
 

enjoynering

Well-known member
Да, а начальной задержки, о чем вы писали о 300 ms, для первого запроса не обнаружено.
вот тут мне жаловались - ESP8266 startup/restart reports first temperature "-50" and humidity "0"

те сенсор отдавал 00 при busy bit = 0 сразу после включения. влепил задержу в 300 и все ОК
 

nikolz

Well-known member
По вопросу точности измерения влажности датчиком AHT15
смотрим в документации на эту картинку:
1588564337675.png
На ней изображена погрешность измерения за сутки работы
Полагаю, всем видно что погрешность может составлять +-5%RH и зависит от измеряемой влажности,
при температуре 25...30 градусов
Кроме того есть погрешность при измерении температуры, которую можно компенсировать.
Возникает ебстественный вопрос, с чем сравнивают свои измерения любители проверять документацию?
Вопрос риторический.
 

nikolz

Well-known member
относительно точности измерения температуры.
Никто из любителей не делает калибровки датчиков.
-------------------------------
Поэтому разброс показаний относительно истинной температуры будет в пределах 1 градуса.
----------------------------
и не надо путать с дискретностью ацп датчика.
Этот показатель никакого отношения к точности измерения температуры не имеет.
Это показатель шага дискретизации значения напряжения, которое как-то нелинейно зависит от температуры.
-------------------------------
Поэтому, если есть желание точно измерять ,
то надо делать калибровку нелинейную и потом пересчитывать показания
---------------------------------------
Калибровку надо делать минимум по трем точкам.
Поэтому нужны эталоны трех значений , а любителям доступны лишь два.
Угадайте какие.
 
Сверху Снизу