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

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

pvvx

Активный участник сообщества
Но зато в данных тестах походу и наблюдаем Arduino подход ко всему:
https://wiki.liutyi.info/download/a...rsion=2&modificationDate=1567376390860&api=v2
Дисперсия совпадает.
А вот на HX711 попадание считывания на замер не проходит - там во первых замер ведется у значения нуля и могут быть нарушения в старших значащих битах. Потом и орут - у меня вес в Arduino то пляшет, то нет :)
 

enjoynering

Well-known member
Да с HX711похоже на то что народ часто попадает на момент измерения. По-моему товарищ nikoloz про это писал.
 

enjoynering

Well-known member
Библиотека подросла до вересии 1.1.0. Добавлена поддержка Aosong ASAIR AHT20.
 

pvvx

Активный участник сообщества
Да с HX711похоже на то что народ часто попадает на момент измерения. По-моему товарищ nikoloz про это писал.
Это не им выловлено и выявлено.
Библиотека подросла до вересии 1.1.0. Добавлена поддержка Aosong ASAIR AHT20.
Recomended polling frequency: 8sec - 30sec***
Видимо очередной неактуальный китай-датчик, т.к. обычный шаг опроса люди принимают в 1 секунду.
 

pvvx

Активный участник сообщества
“Глобальное потепление” вполне может быть вызвано собственным прогревом датчиков, т.к. оно началось когда датчики стали электронными и у человечества появился подход из Arduino :p
Из всех распространенных SHT85 имеет минимальный прогрев
Остальные +2 и более градуса...
Даже MPU9250 и прочие...
 

enjoynering

Well-known member
Можно и раз в две секунды, но собственный нагрев датчика будет ~0.1C. А оно вам надо?
 

enjoynering

Well-known member
он вроде как спит, но это не точно. тк в datasheet на AHT10/AHT15 про это ничего нет. В datasheet на AHT20 говорят про передачу каких-то магических чисел без объяснения что они значат и зачем их предавать. Кстати после передачи нескольких таких х0?? сенсор подвисает на >=300 миллисекунд - отдает busy bit что что он готов, но при этом в место температуры и влажности одни нули. :) Так что батарейного питания с esp sleep я бы его пока не использовал, тк у датчика выход на режим 300мс. Надо разобраться с этой магией. А пока попытка связаться с производителем не увенчалась успехом - страница contact us тупо не работает.
 

pvvx

Активный участник сообщества
он вроде как спит, но это не точно. тк в datasheet на AHT10/AHT15 про это ничего нет. В datasheet на AHT20 говорят про передачу каких-то магических чисел без объяснения что они значат и зачем их предавать. Кстати после передачи нескольких таких х0?? сенсор подвисает на >=300 миллисекунд - отдает busy bit что что он готов, но при этом в место температуры и влажности одни нули. :) Так что батарейного питания с esp sleep я бы его пока не использовал, тк у датчика выход на режим 300мс. Надо разобраться с этой магией. А пока попытка связаться с производителем не увенчалась успехом - страница contact us тупо не работает.
Вы ему сброс то даете после сна? (General Call Address, Reset Command)
Или он не соответствует спецификации i2c? https://www.nxp.com/docs/en/user-guide/UM10204.pdf
Вроде есть ещё общая команда sleep, но не помню где описана - может в спецификации smbus...
 

pvvx

Активный участник сообщества
Можно и раз в две секунды, но собственный нагрев датчика будет ~0.1C. А оно вам надо?
За две секунды по трубе в цеолит поступит сотни литров воды и его придется выбросить или держать в +800С неделю :)
Ну и т.д. для других процессов... Клапан закрывается быстрее.
 

pvvx

Активный участник сообщества
А здесь, зачем последний ACK, а не NACK?
1585252380554.png
Чтобы шина по SDA "зависла"?
 

pvvx

Активный участник сообщества
"ну типа младший байт и старший от разных значений" согласен. Бит готовности данных проверяю в библиотеке - если busy жду 75 milliseconds
Всё это бесполезно. У ESP8266 WiFi, Soft-PWM и многое ещё работает по NMI. Т.е. прерывает ваш I2C опрос когда захочет и на сколько захочет.

Прерывание NMI не может быть маскировано (запрещено) кодом CPU. Прерывание NMI имеет уровень прерывания LEVEL3 в системе прерываний ESP8266, в то время как другие прерывания имеют уровень LEVEL1. Прерывание NMI по приоритету преобладает на любыми другими прерываниями.

Only Wi-Fi NMI can interrupt task or other interrupts.
...
PS: для работы ESP8266 с i2c устройствами требуется аппаратный костыль - другой чип, связанный по hard интерфейсу, а не "ногодрыг".
 

pvvx

Активный участник сообщества
В качестве такого костыля можно использовать MPUxxxx по SPI (с FIFO в MPU). :)
 

pvvx

Активный участник сообщества
Как-бы ныне BME280 стоит как AHT15/20.
В доках пишется что жрет мало.
Для теста запихал в ящик стола, деревяшка, чтобы сквозняк не измерял.
Выходит примерно такое:
1585288822778.png
И с фильтром на 15 точек:
1585288827976.png
Это от предыдущего включения через 10-15 секунд. За это время всегда успевает остыть до +26.52..26.58 C°. А за время работы в 300 и более секунд прогревается на +0.5 C°. Опрос 10..15 раз в сек. При 20 прогрев немного больше, но не значительно. Т.е. нее в 2 раза при 10 к 20.
Точку росы держит, но халтурит в первые секунды. Если долго подождать выключенный датчик (а в данном BLE чипе я ему рублю питание и сигналы I2C), тогда, если были колебания температуры от 0.5 C°, датчик "запотевает", т.е. конденсирует на себя влагу и при включении начинает усиленно её испарять рисуя хороший горбик по точке росы и % влажности... :) Если пауза между включениями малая (10..20 сек) - этого нет.
В итого "без прогрева" остался только SHT85 (возможно в нем встроена компенсация).
 

pvvx

Активный участник сообщества
На графике максимальная точность от BME280 - все расчеты в js с его float, BLE передает только регистры, значения всех фильтров в самом BME установлены на максимум. При этом от команды старта первые 0.8 секуд там вообще ступенчатый бред и я его отрезаю. Т.е. старт с выходом на режим у BME280 от 10 сек.
 

pvvx

Активный участник сообщества
Потребление BME280.
Спит и включение опроса:
1585291780434.png
Уточнение при опросе:
1585291765356.png
PS: Видны помехи от чтения 13 раз в сек (SCL 1 MHz). Не зря измерял - стало понятно что он обновляется 10 раз в секунду, т.е. быстрее от него не выудить при максимальном качестве...
 

pvvx

Активный участник сообщества
Ой - на три порядка опшибся - в sleep читать 190 nA!
 

pvvx

Активный участник сообщества
Всё совпадает как в аптеке с докой от Bosh, мелкая разница от номинального питания:
1585295240005.png
 
Сверху Снизу