Как стать автором
Обновить

Комментарии 13

на реальной модели по мере строительства своего умного дома столкнулся с тем, что иногда датчики выдают значения взятые с «потолка».
Поэтому чтобы исключить ложные срабатывания, советую проверять данные на адекватность, например брать 3 значения и контролировать на разброс значений либо еще как.
Вот например скриншот для понимания.

Один из датчиков на регулярной основе «простреливает» какой-то ерундой. Раньше с ним все было ок, но спустя год работы он начал вот так чудить.
Да, я тоже сталкивался с этой фигнёй, ещё бывает, просто не читаются. Вообще температуру лучше терморезистором мерять, и надёжней, и опрашивается мгновенно, а влажность (если это актуально) делать как Вы советуете.
в моем случае слишком много терморезисторов выйдет)))
температуры во всех помещениях, температура котла, бойлера, отопления, теплого пола, солнечных коллекторов.
Я решил что буду брать 3 пары крайних значений и оценивать по ним тенденцию падения или повышения температуры. Значения с большим выбросом от соседей в расчет не берутся.
А какие у Вас датчики везде стоят?
ds18b20 и DHT22
Получается у Вас МК как минимум секунд пять «висит», пока датчики опрашивает.
А ещё под комментарием есть кнопка «Ответить»;)
НЛО прилетело и опубликовало эту надпись здесь
Благодарю. Я в «своих поделках» использую термисторы, а вот для влажности, обязательно поковыряю либу.

А это:
70 вместо 250-ти

Вы экспериментальным путём подобрали? Повлияло ли на качество работы?

В свою очередь хочу порекомендовать Вам ещё одну библиотеку для ускорения ардуины.

И если не затруднит, подскажите, какие значения Вы меняли в библиотеке?
Внутри DHT22 стоят два датчика, температуры и влажности. Время чтения каждого составляет 250 мс, то есть во время опроса (dht.readTemperature) вся программа «вешается» и обмен данными с ардуиной невозможен.


На самом деле, это не так. Датчик DHT22 отдаёт оба параметра вместе и нельзя запросить только один из них. Я не видел класс dht, но судя по вашему описанию, он делает запрос к датчику и возвращает только один из полученных параметров, хотя считать он обязан оба.

У вас в статье же есть ссылка на библиотеку DHT22, а вы используете класс dht. Почему?
Используйте DHT22. На сколько я могу судить при беглом взгляде на его код, он работает адекватнее: сначала вы делаете запрос DHT22::readData() (это будет занимать какое-то время, пусть даже те же 250 мс), а затем получаете результаты геттерами DHT22::getHumidity и DHT22::getTemperatureC (мгновенно).
Используйте DHT22. На сколько я могу судить при беглом взгляде на его код, он работает адекватнее: сначала вы делаете запрос DHT22::readData() (это будет занимать какое-то время, пусть даже те же 250 мс), а затем получаете результаты геттерами DHT22::getHumidity и DHT22::getTemperatureC (мгновенно).


Я на самом деле ненавижу этот датчик, то читается, то нет. Вобщем скверно работает, но другого, за те же деньги наверно нет.

Если Вас не затруднит, покажитете пожалуйста на примере, как правильно делать?
Исправил ссылку на библиотеку DHT.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории