• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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
 
Сверху Снизу