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

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

pvvx

Активный участник сообщества
3. При опросе раз в 5 сек кристалл датчика даже заметить не будет успевать нагрев, не говоря уже о что у него тонна времени на остывание.
Кристалл как раз и "прогреется" в момент измерения, т.к. тогда и работает I/O. :p
Но вам всё равно, т.к. готовите устройство для игрушки.
Я хез о чем вы, у PCA, HDC1080 и BME280 допускается ток 3ма когда они в ноль тянут SDA. Это что-то в районе 1.1к можно резисторы ставить. Для 5в питания нормальными заходят 4.7к, для 3.3в - уже 2.4к, ввиду длиннющих проводов я зафигачил тот огород и номиналы что вы видите.
Допустимый ток с учетом вашей схемы и нагрузки длинной линией?
 

volaltd

Member
Писано же - "типа".
Все остальное ваши ответы - это пока детсадовские заключения, без учета опыта в данной сфере. Помучаетесь, поднаберетесь и взгляды изменятся...
Моё мнение так-же не является самым правильным, т.к. вариантов очень много.
Я хез что там с логистикой у чип-дипа, в нашем гондурасе и это не доступно.

Кристалл как раз и "прогреется" в момент измерения, т.к. тогда и работает I/O. :p
Но вам всё равно, т.к. готовите устройство для игрушки.
Допустимый ток с учетом вашей схемы и нагрузки длинной линией?
Виктор, я полностью присоединяюсь к enjoynering относительно что вас переспорить не реально. Делать умные расчеты и умозаключения мне лень, т.к. все факторы учесть нужен опять же немеряный опыт и время, я тупо взял осциллограф, форма сигналов выглядела приемлемой, статистика чтения не огорчает - поделился и пока от вас дельного ноль :)
 

pvvx

Активный участник сообщества
Я хез что там с логистикой у чип-дипа, в нашем гондурасе и это не доступно.



Виктор, я полностью присоединяюсь к enjoynering относительно что вас переспорить не реально. Делать умные расчеты и умозаключения мне лень, т.к. все факторы учесть нужен опять же немеряный опыт и время, я тупо взял осциллограф, форма сигналов выглядела приемлемой, статистика чтения не огорчает - поделился и пока от вас дельного ноль :)
Опыт говорит, что длина проводов до датчика I2C обычно ограничена до 1.5 метра. При этом большинство датчиков уже сбоят и программы не учитывающие это не работают.
Вам придется обязательно контролировать CRC и переинициализировать датчик при малейших сбоях или периодически.
А т.к. используемая контролька имеет не сверх защиту данных, то появления кривых показаний обеспечены. Т.е. ещё в ПО надоть фильтрацию данных с датчика...
Так-же часты вылеты самих датчиков, которые имеют провод до 1.5 метра во вне. Более десятка процентов за пару лет.
И это всё ради кривой схемотехники...
 

volaltd

Member
Опыт говорит, что длина проводов до датчика I2C обычно ограничена до 1.5 метра. При этом большинство датчиков уже сбоят и программы не учитывающие это не работают.
Вам придется обязательно контролировать CRC и переинициализировать датчик при малейших сбоях или периодически.
А т.к. используемая контролька имеет не сверх защиту данных, то появления кривых показаний обеспечены. Т.е. ещё в ПО надоть фильтрацию данных с датчика...
Так-же часты вылеты самих датчиков, которые имеют провод до 1.5 метра во вне. Более десятка процентов за пару лет.
И это всё ради кривой схемотехники...
У меня были сомнения что выброшенный за окно сенсор на 8м будет отвечать и круто обломался с поставить 500гц, но espeasy светит вполне реальные 2гр на улице и ошибок обмена в логах не вижу. Возможно это потому что электродвигатели по 10квт находятся в 100м и дальше...
Пособираю статистику хотя бы полгодика, отпишусь еще. Кстати семисторы snabberless хорошо зашли, лампочки светодиодные в выключенном состоянии перестали светится :)
 

pvvx

Активный участник сообщества
Спорить тут не о чем – ни один пром. контроллер не использует внешнюю шину I2C. И если необходимо использовать выносной датчик с интерфейсом I2C, тогда предусматривайте длину проводов не более 1.5 метра и общее терминирование линии не менее 1.5 кОм.

Снижение частоты переключения ничего не даст. Не будут работать некоторые датчики, т.к. у них ограничены сигналы по длительности и воспринимаются как сброс линии и т.д.

Спорьте с ними, а не со мной :) Я описал основные проблемы, которые получены и имеются в процессе эксплуатации тысяч устройств за более 30 лет.
 

volaltd

Member
Спорить тут не о чем – ни один пром. контроллер не использует внешнюю шину I2C. И если необходимо использовать выносной датчик с интерфейсом I2C, тогда предусматривайте длину проводов не более 1.5 метра и общее терминирование линии не менее 1.5 кОм.
Снижение частоты переключения ничего не даст. Не будут работать некоторые датчики, т.к. у них ограничены сигналы по длительности и воспринимаются как сброс линии и т.д.
Спорьте с ними, а не со мной :) Я описал основные проблемы, которые получены и имеются в процессе эксплуатации тысяч устройств за более 30 лет.
Это все мне хорошо известно, но до определенного уровня глюков я готов мирится с ними в пользу такого исполнения. Если за полгода наберется "все плохо" и нужно будет ставить возле каждого датчика по MCU, то перейду к варианту CAN + MT7688 с OpenWRT, BLE выглядит как самый дорогой в плане затрат времени вариант :)

Извините за коламбур, но опой чую что для подобных моему случаев вот этот вот слепленный мной вариант наиболее выигрышный и пока это чувство не разбилось о реальность - буду двигаться в этом направлении и отстаивать.
 

pvvx

Активный участник сообщества
я тупо взял осциллограф, форма сигналов выглядела приемлемой, статистика чтения не огорчает - поделился и пока от вас дельного ноль :)
Осцил был включен в вашу приведенную схему или ?
У вас в схеме стоят диоды. Совместно с индуктивностью они создают затухающие ВЧ выплески.
Отличие у защитных варисторов в том, что у них плавно меняется емкость и сопротивление от напряжения и бороды не возникает. :p
МВт моторы не нужны, чтобы создавать помехи. Достаточно включения зарядного устройства в розетку - там пики токов аналогичные :p
Но беда не от них, а чаше всего от банальной статики. :p
 

pvvx

Активный участник сообщества
Минимальная цена — 4,59 руб (Кабель UTP 1 пара внутренний АндижанКабель КСВПП-5е), максимальная — 197.73 руб (Кабель UTP 50 пар внешний "Одескабель" Cat.5), средняя — 12.71 руб.
Цена кабеля: 12.71*10 = 127 руб.
Цена проводки: от 50 руб за 1 метр.
Цена деталей устройства X тысяч руб за 8 линий.
Итого примерно 127*8+10*50*8+2000 = 7016 руб мин.

Вариант2:
9 модулей контроллеров TLSR825x – 9*200 = 1800 руб. Один общий, 8 – с датчиками.
8 батареек CR2032 – 69 руб в магазине “фикс прайсе”…

Вариант3: Если взять уже c корпусами и индикаторами.
8 шт Xiaomi LYWSD03MMC пусть по 350.
Надо в них впаять датчики.
8*350 = 2800 руб + хоть ESP32 или другой вариант приемника (LYWSD03MMC может выступать в его качестве - у него есть и USB)
Данные надо куда-то пихать и обрабатывать - это наверно Home Assistant или подобное...

Итого - цена на обслуживание 8 датчиков I2C около 3 т.р.
 

pvvx

Активный участник сообщества
tca9548a US$4.9771 :eek:
MCU W600-B800 US$ 1.5977
Поставят на плату:

 

volaltd

Member
Осцил был включен в вашу приведенную схему или ?
У вас в схеме стоят диоды. Совместно с индуктивностью они создают затухающие ВЧ выплески.
Отличие у защитных варисторов в том, что у них плавно меняется емкость и сопротивление от напряжения и бороды не возникает. :p
МВт моторы не нужны, чтобы создавать помехи. Достаточно включения зарядного устройства в розетку - там пики токов аналогичные :p
Но беда не от них, а чаше всего от банальной статики. :p
Я спецом вытащил старенький C1-112 где питание реализовано трансформатором с гальванической развязкой и смотрел SCL и SDA на длинном проводе относительно GND.
Извините, но для меня будет больший аргумент собранная за 6мес статистика по сбоям, чем ваши умные, не факт что учитывающие все факторы, доводы.

Вы по ходу своих калькуляций как обычно опустили время на воткнуть в че-как в BLE, освоить TLSR и наконец написать хорошо под себя софт. В моем варианте я качнул с гита исходники EspEasy. подправил в конфиге пару дефайнов относительно какие сенсоры поддерживать и с какими контроллерами домашних систем связываться, потратил на компиляцию custom-прошивки 20минут. Если будут проблемы, то смогу достаточно быстро аналогично перепрыгнуть на ESPHome. И не нада мне эти проблемы с переключением радиоканалов, размером буферов, длинной рекламных пакетов и выспрашиванием неделями на форуме у вас тонкостей и ноу-хау SDK телинка.
 

volaltd

Member
@pvvx Вы кстати не думали, что вот именно с "правильным" вариантом и варисторами хренушки оно будет нормально работать на 8м, а диодики со своей емкостью и небольшим током стабилизации и сделают это возможным? :)
 

pvvx

Активный участник сообщества
@pvvx Вы кстати не думали, что вот именно с "правильным" вариантом и варисторами хренушки оно будет нормально работать на 8м, а диодики со своей емкостью и небольшим током стабилизации и сделают это возможным? :)
Зачем думать? Есть варианты проще - проверить.
Но данная проверка в практике уже была. И без диодов и вообще без всего... :p
 

volaltd

Member
Зачем думать? Есть варианты проще - проверить.
Но данная проверка в практике уже была. И без диодов и вообще без всего... :p
Без диодов к сожалению голяк полный, сенсоры постоянно висли, а в таком варианте мне даже DHT22 с проводами длинной 15метров пришлось всего раз за зиму передергивать.
 

enjoynering

Well-known member
volaltd, перестаньте кормить... за pvvx должно остаться последнее слово иначе он не остановится.
 

pvvx

Активный участник сообщества
Найдите хотя-бы какой положительный вариант использования именно диодов в таких схемах защиты, как это указано в вашей схеме.
Стабилитрон при напряжении стабилизации имеет емкость более нескольких тысяч пФ.
Диод, аналог KD522, просто переводит любой импульс в питание датчика. :)
Кроме этого он создает бороду из-за коммутации тока с индуктивности длинной линии.
Если уж хотите применять защиту типа диодной – для того есть специальные сборки, аналогичные устанавливаемых на USB. Повтор по значкам внутренней схемы россыпными детальками – это бред от Ардуинщиков.
И опишите цели гашения импульсов до пары нс. Они не выжигают вход-выход и как максимум могут только создать сбой в кристалле. И это при токах импульса в десятки Ампер. Считайте энергию – она распределяется и поглощается в выводе и объеме кристалла I/O, но не создает пробоя или пережигания. А вот динамическая нагрузка при переключении на длинную линию постепенно выжигает выход… И у вас там постоянно “заряженный” стабилитрон с емкостью в тысячи пФ, который выходу чипа надо разряжать каждый бит передачи :)
И гашение импульса в нс обеспечивает простой резистор и конденсатор правильно разведенные на плате или фер.бусина.
В итоге быстродействия не требуется, а требуется гашение ВЧ составляющих и длительных перенапряжений, что диоды в вашей схеме, совместно с тупыми стабилитронами не обеспечивают.
Проверить описанное вы можете осциллографом и генератором нс импульсов.
volaltd, перестаньте кормить... за pvvx должно остаться последнее слово иначе он не остановится.
Последнее слово всегда было за вами, как одного из моих главных папарацци :)
 

volaltd

Member
Найдите хотя-бы какой положительный вариант использования именно диодов в таких схемах защиты, как это указано в вашей схеме.
Стабилитрон при напряжении стабилизации имеет емкость более нескольких тысяч пФ.
Меня, в отличии от вас, не сильно интересуют теоретические основы эффекта. Факт в том, что когда я у себя в гараже включал-выключал верхний свет, игрался удаленно с управлением вентиляторами и сушкой воздуха, то постоянно получал потухшие DHT22 до момента передергивания питалова. Гугление по формумам показало что датчики реально гавёные, а осциллографом были увидены помехи с амплитудой в 15в. Методом запайки и снятия осциллограмм вышли не TVS-диоды, а именно стабилитроны. Варисторы уже не помню почему не зашли, возможно просто потому что "лучшее враг хорошему". И вот уже года 3 меня совсем не парит раз в 3 месяца дернуть питание 1 из 6 датчику, которые у других при подобных условиях вообще мрут. Ввиду показывания погоды на марсе от DHT22 перешел на HDC1080 и BME280, ес-но скопипастил уже отработанный вариант схемы и пока особых причин для волнений и вложений дополнительного времени на доработку вариант не потребовал, как и не вижу особого смысла для проведения научно-изыскательской работы по выяснению причины работы датчика на 8м, тогда как больше 1.5м не должно и плохо укладывается в стандарт. Освещением щелкал, зарядки включал, болгаркой и перфоратором тоже помехи в сеть пускал - сбоев не происходило.
Оставлю спрашивавшему форумчанину самому решать воспользоваться моими схемами или идти закупаться вашими любимыми термометрами Xiaomi на батарейках. Ну и ес-но пишите еще, не претендую на последнее слово :)))
 
Откройте вы уже хоть раз datasheet на AHT10. Там написано, что при частом опросе датчика он разогревается и точность измерения 0.1С не гарантируется.

У меня AHT10 работает уже 4й месяц 24/7 без глюков. Ищите проблему в вашем коде или в библиотеке BMP280.
Вот уже день пытаюсь что-то из даташита выудить.
Wire.setClock(5000) - это частота шины. Ну я так понимаю. Это в ыговорите не то. Далее
Wire.setClockStretchLimit(10000) - как перевисте это я не понял. Растяжение чего-то. Во всяком случае гугль переводчик так stretch переводит. Но это вы тоже говорите не то.
То что я опрашиваю датчики раз в 1 секунду, в 3 секунды, в 8 и 10 секунд (разница не помогает) тоже вы говорите не то. Хотя очень похоже на частоту опроса. Но это я так понимаю частота опроса всего датчика. А по вашим словам я понимаю, что есть еще частота опроса микросхемы датчика? Так что ли? Но где этот параметр задается - я не нашел
Больше установок каких-то я не нашел. Что еще можно поменять?
Вы пишите, что у вас датчик работает уже 4 месяц без проблем. Может вы просто параметры подскажете, которые вы установили? Просто вот сейчас у меня BME\BMP280 и HDC1080 работают уже несколько дней без проблем. СТоит туда подцепить AHT10 и тут же через 1-2 часа все зависает. И даже когда я его раз в 10 секунд опрашиваю, тогда как другие 2 ежесекундно и без проблем.
 

volaltd

Member
Вы пишите, что у вас датчик работает уже 4 месяц без проблем. Может вы просто параметры подскажете, которые вы установили? Просто вот сейчас у меня BME\BMP280 и HDC1080 работают уже несколько дней без проблем. СТоит туда подцепить AHT10 и тут же через 1-2 часа все зависает. И даже когда я его раз в 10 секунд опрашиваю, тогда как другие 2 ежесекундно и без проблем.
Пора пробовать другие библиотеки и другие экземпляры AHT10 :)
 

enjoynering

Well-known member
Автор уже все это перепробовал (тот случай когда руки опережают сознание и нежелание прочитать/разобраться с i2c).
 
Народ, ну не понимаю я. Даташит этот мне скоро сниться будет. Ну подскажите, что я не так делаю? Где задается интервал опроса датчика?
Датчиков у меня было 5 штук. Один сразу не показывал влажность. Два других сдохли. Почему - не знаю. Скажем утром сдох один, а вечером другой. Это я по записи их показаний смотрел. Хоть и покупал я их как 5 вольтовые, но все-таки еще 2 датчика подключил к 3,3 вольтам, снял их с ESP. Библиотек перепробовал аж 5 штук разных. И всегда ситуация одна и та же. Отключаешь опрос AHT10 все работает без проблем. Включаешь, 2-3 часа и все виснет. На самом деле вопрос превратился почти в теоретический. Я уже заказал 2 датчика SHT30. Их к стати если что 2 на одну шину можно вешать, адрес там переключается как и AHT10. Но вот уже проклинаю я себя, что купил эти AHT10. Уж очень они дешевые были.
 
Сверху Снизу