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

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

enjoynering

Well-known member
Вобщем если нет земли в квартире нужно менять импульсник на трансформатор. Иначе история рано или поздно повторится.
 
Народ, умных слов много. Но это очень умные слова, не для моего уровня знаний. Меня интересует только один момент. Я правильно понял, что снимать с него показания надо не саще, чем раз 8-10 секунд? Я вообще бьюсь с этими датчиками с декабря. Кажется все библиотеки, что в природе есть перепробовал. Виснет система и все тут. У меня не контроль показаний ан атомной электростанции, поэтому особая точность не нужна. Меряю в 2 помещениях и на улице. Для улицы BME\BMP280, для помещений хотел 2 AHT10 использовать, благо можно порт менять. Но зависает стабильно. Если один BME\BMP280, то не виснет. Т.е. таже датчики припаяны, просто не снимаются показания, все работает. Стоит начать снимать данные, я уже даже раз в 10 секунд снимал, виснет намертво. Помогает только передергивание питания. Купил HDC1080. Он плюс BME\BMP280 работают на ура. Но беда, что два таких на одну шину я так и не нашел можно повесить или нет. Порт нигде не меняется. Ну и на крайняк у меня еще один BME\BMP280 есть. Но там тоже порт не меняется.
 

volaltd

Member
Воспользуйтесь расширителем шины I2C в виде tca9548, убедитесь что резисторы подтяжки при питании датчиков напряжением 3.3в соответствуют 2.4ком и частоту обмена ставим как можно меньше.
 
Резисторы соответствуют. Питание 3.3. Попробую конечно больше 10 секунд поставит, но это пока другой какой-нибудь датчик не куплю. Просто потестирую. Расширитель наверное хорошо, но не буду. Найду датчик с другим портом.
 

enjoynering

Well-known member
Откройте вы уже хоть раз datasheet на AHT10. Там написано, что при частом опросе датчика он разогревается и точность измерения 0.1С не гарантируется.

У меня AHT10 работает уже 4й месяц 24/7 без глюков. Ищите проблему в вашем коде или в библиотеке BMP280.
 
А при чем тут библиотека BMP280? Она проверена уже боле года пашет в другом устройстве, да и в этом, если оставить только BMP280, то ничего не виснет, виснет только при работающих (имеено работающих, опрашиваемых программой) AHT10.
Частота сигнала имеется ввиду Wire.setClock(5000); Default 100000. Я и больше ставил 200000 и меньше 50000 и 5000. Все равно виснет.
А вы с какой частотой опрашиваете датчик? Другие датчики у меня опрашиваются раз в секунду. Я понимаю, что в принципе это не нужно. Но у меня на WEB страничке графики рисуются и меньше чем раз в секунду некрасиво получается. Но я делал опрос раз в 10 секунд AHT10, на графиках просто все время старое значение шло, менялось раз в 10 секунд. Но не помогает.
 
Вы имеете ввиду Wire.setClockStretchLimit(10000) в библиотеке написано default 230usec, но выставлено 10000. Как тут раньше писали, что греется при частом обращении, т.е. нужно ставить меньше 230, а ставят наоборот 10000. Или я неверно понял параметр?
 

volaltd

Member
У меня при вкл-выкл света по сигнальным проводам датчиков проскакивала коротенькая помеха с размахом 15в и тоже висло наглухо. Ловил цифровым осциллографом с триггером и решал установкой защитных диодов. Не все там ограничивается программами )
У есп32 кстати частота шины ниже 5-10кгц с работающим вифи не делается. Датчики опрашивать лучше не чаще 3-5сек.
 

volaltd

Member
Мне не хотелось по 10 раз заказывать платы, это не в софте по быстрому одну строчку подправить, потому реализовал защиты и по питанию с каждой стороны и по сигнальным линиям, стабилитроны и TVS диоды не такие дорогие :) Там где сенсоры - это отдельная оконечная плата под несколько видов датчиков, HDC1080 и BME280 больше всего понравились их и поставил. Подключение сделано 2-х парной витой парой, тестирую сейчас расстояния 5-8метров на 10кгц.
 

Вложения

  • 988.1 KB Просмотры: 10
  • 985.2 KB Просмотры: 12
  • 928.5 KB Просмотры: 13

pvvx

Активный участник сообщества
volaltd предоставил вариант демонстрации как делать не стоит...
1. Почему провод затерминирован с одной стороны? Убить датчики хотите? По минимуму это будет влиять на их показания, т.к. на проводе будут ВЧ импульсы и наводки, которые успешно залезут в кристалл датчиков.
2. Слишком дорогая схема. Применение простейших элементов типа VCUG080050L1DP упрощает схему и размеры платы, а так-же обеспечивает большую функциональность в защите и ... :p
3. Нагрузочное сопротивление на датчики влияет на их нагрев и вы получите не внешнюю температуру, а температуру нагрева выходов кристалла датчика. :p
 

enjoynering

Well-known member
Вы имеете ввиду Wire.setClockStretchLimit(10000) в библиотеке написано default 230usec, но выставлено 10000. Как тут раньше писали, что греется при частом обращении, т.е. нужно ставить меньше 230, а ставят наоборот 10000. Или я неверно понял параметр?
У вас смешались кони, люди. Изучите что такое частота I2C шины и что такое stretch clock I2C и зачем он нужен. Затем прочитайте datasheet и разберитесь что такое частота ОПРОСА датчика.
 

volaltd

Member
volaltd предоставил вариант демонстрации как делать не стоит...
1. Почему провод затерминирован с одной стороны? Убить датчики хотите? По минимуму это будет влиять на их показания, т.к. на проводе будут ВЧ импульсы и наводки, которые успешно залезут в кристалл датчиков.
2. Слишком дорогая схема. Применение простейших элементов типа VCUG080050L1DP упрощает схему и размеры платы, а так-же обеспечивает большую функциональность в защите и ... :p
3. Нагрузочное сопротивление на датчики влияет на их нагрев и вы получите не внешнюю температуру, а температуру нагрева выходов кристалла датчика. :p
1. Патамушта уже даже на стабилитронах 3v3 через резисторы 2.2к получается ток 500мка, при этом сигналы имеют размах всего 2в, а при стабилитронах 3v9 размах около 2.8в, ВЧ импульсы и наводки уже при таких токах успешно съедаются :) Наконец мне ничего не мешает следующей итерацией сделать плату на стороне датчиков так же с терминацией, но на данном шаге не вижу никакой в этом необходимости :)
2. VCUG080050L1DP нет в наличии на чип-дипе, рассыпухи же на любой вкус за копейки. Это не промышленное изделие, а единичный проект для личного пользования :)
3. При опросе раз в 5 сек кристалл датчика даже заметить не будет успевать нагрев, не говоря уже о что у него тонна времени на остывание.
 

pvvx

Активный участник сообщества
@volaltd
1648906042233.png
Терминатор любой длиной линии (кроме специальных высокоомных, типа для пассивных осциллографических щупов) составляет не более 370 Ом. Иначе отражения и выплески.
 

pvvx

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

volaltd

Member
@volaltd
Посмотреть вложение 11960
Терминатор любой длиной линии (кроме специальных высокоомных, типа для пассивных осциллографических щупов) составляет не более 370 Ом. Иначе отражения и выплески.
Я хез о чем вы, у PCA, HDC1080 и BME280 допускается ток 3ма когда они в ноль тянут SDA. Это что-то в районе 1.1к можно резисторы ставить. Для 5в питания нормальными заходят 4.7к, для 3.3в - уже 2.4к, ввиду длиннющих проводов я зафигачил тот огород и номиналы что вы видите. Ну и как видите у меня на стороне сенсора 5в понижается до 3.3в с целью компенсации опять же проводов, на стороне датчика pull-up лепить не фонтан, хотя плата имеет установочные места.
 

enjoynering

Well-known member
Нагрузочное сопротивление на датчики влияет на их нагрев и вы получите не внешнюю температуру, а температуру нагрева выходов кристалла датчика
Таки да. Но бесконечно уменьшать нагрузочное сопротивление на scl не получится, так по стандарту максимальный ток через scl всего 3мА.
 
Сверху Снизу