Страница 1 из 1

Проблема с настройкой DHT22

Добавлено: 27 янв 2016, 10:22
Allex901
Добрый день!
Гуру, помогите разобраться с DHT22. Есть задача - вывод на экран №1 показаний времени; на экран №2 - температуры и влажности. На часах настроено мигающее двоеточие секунд с частотой мигания 1 раз в секунду.
Проблема - если в настройках DHT22 установить опрос датчика каждую секунду, то мигающее двоеточие секунд мигает в два раза реже, т.е. раз в 2 секунды; а также переключение между экранами дисплея становится некомфортным - если кнопка переключения экранов Кн1 нажимается в момент опроса датчика, ардуинка на нажатие кнопки не реагирует.
Второй момент не проблема - его видимо, легко решить, добавив таймер TOF на Кн1, а вот с неправильным миганием двоеточия справится не могу.
В принципе, частый опрос DHT22 не требуется, достаточно было бы и раз в 30-60 секунд. Но тогда требуется получить актуальные данные с него по событию - например, по нажатию кнопки Кн2. Пробую, подключаю Кн2 к входу разрешения опроса DHT22. В настройках DHT22 оставляю опрос раз в секунду, и как я понимаю, пока Кн2 не нажата, опроса быть не должно. И здесь для меня сюрприз - не смотря на ненажатую кнопку Кн2, двоеточие мигает также с частотой раз в 2 секунды, что указывает на то, что датчик все равно опрашивается (и "подвешивает" ардуинку). Если я в DHT22 настраиваю опрос раз в 30 секунд, ситуация такая - двоеточие секунд работает с нужной частотой 1Hz, но нажатие Кн2 не приводит к актуализации показаний с DHT22. Как можно решить эту проблему?

Проблема с настройкой DHT22

Добавлено: 27 янв 2016, 10:41
Олег
Вы физически используете один дисплей, а зачем в схеме стоит два?
С кнопкой у вас происходит следующее. В Настройках входа у вас включен подтягивающий резистор, то-есть пока кнопка не нажата у вас на входе датчика висит высокий уровень, при нажатии появляется низкий. Инвертируйте выход кнопки.

Проблема с настройкой DHT22

Добавлено: 27 янв 2016, 11:54
Allex901
Второй дисплей в схеме установлен ошибочно, а с кнопкой это я сморозил;) Спасибо, теперь все работает так, как нужно.

Правильно ли я понимаю, что если мне требуется настроить, чтобы данные с DHT22  на дисплее актуализировались раз в 60 секунд или при нажатии кнопки Кн2, то существует один вариант: в настройках DHT22 настраиваем обновление раз в секунду, а внешними генератором подавать положительный импульс продолжительностью 1000 мс на вход En DHT22 раз в 60 секунд, а также на этот же вход завести Кн2, скажем, с таймером TOF на 1000 мс?
PS Тайминг в секунду указал для примера

Проблема с настройкой DHT22

Добавлено: 27 янв 2016, 13:50
Олег
Не пробовал, но по-логике так и должно быть.

Проблема с настройкой DHT22

Добавлено: 27 янв 2016, 14:02
Allex901
Спасибо, разобрался с Вашей помощью.

Проблема с настройкой DHT22

Добавлено: 25 ноя 2016, 21:52
OlegAn1962
НовыйUser писал(а):далее на схемах просто блоком суммирования чисел подтягивается недостающий проценты к датчикам чтобы все показывали единый результат.
А откуда у вас такая уверенность, что ошибка будет линейна во всём диапазоне?

Проблема с настройкой DHT22

Добавлено: 08 фев 2017, 19:21
Boroda
Не стану создавать новую тему.
Вопрос Сергею (разработчику):
Вставляю стандартный блок DHT22 на третью плату.

В начале секции loop() перед кодом первой платы вставляется код

Код: Выделить всё

float tempDht2;
tempDht2 = _dht1.readTemperature();
if (!(isnan(tempDht2))){_dht1t=tempDht2; }
tempDht2 = _dht1.readHumidity();
if (!(isnan(tempDht2))){_dht1h=tempDht2; }
а вот код на третьей плате выглядит так:

Код: Выделить всё

in_162745127_1 = (int(_dht1t));
....
in_162745127_2 = (int(_dht1h));
...
Смысл ставить эти датчики на отдельную плату с условием пропадает, т.к. основная часть кода, которая пожирает время, остается в основном цикле и работа блока корректируется только в его настройках. А можно сделать так: "где блок, там и код"? Я конечно поставил бит разрешения работы платы и этот же бит завел на блок, но как-то не красиво все это.

Проблема с настройкой DHT22

Добавлено: 08 фев 2017, 19:44
support
Подождите выхода следующей версии. Там этот вопрос решон. Во первых опрос датчика будет происходить на той плате где он установлен, во вторых применена новая библиотека и опрос происходит намного быстрее. Существующий код писался в стародавние времена, когда о работе плат по условию даже и не планировалась.

Проблема с настройкой DHT22

Добавлено: 08 фев 2017, 20:10
Boroda
Спасибо, Сергей!

Проблема с настройкой DHT22

Добавлено: 28 апр 2017, 11:41
dim770
Добрый день!
Как можно организовать проверку исправности DHT22 аналогично: "if (isnan(h) || isnan(t) ) "?

Проблема с настройкой DHT22

Добавлено: 02 май 2017, 11:37
slavas
dim770, какую проверку исправности? Если датчик не отвечает на экран выводится слово "NAN".

Проблема с настройкой DHT22

Добавлено: 22 май 2017, 10:57
slavas
fozik, какой датчик ( на плате или нет), кабель,как подключили.
Экстрасенсы устали.