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

Использование датчиков и обсуждение пользовательских блоков к ним
Ответить
Allex901
Рядовой
Сообщения: 5
Зарегистрирован: 29.12.2015{, 10:53}
Репутация: 0
Откуда: Санкт-Петербург

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

#1

Сообщение Allex901 » 27.01.2016{, 10:22}

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

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#2

Сообщение Олег » 27.01.2016{, 10:41}

Вы физически используете один дисплей, а зачем в схеме стоит два?
С кнопкой у вас происходит следующее. В Настройках входа у вас включен подтягивающий резистор, то-есть пока кнопка не нажата у вас на входе датчика висит высокий уровень, при нажатии появляется низкий. Инвертируйте выход кнопки.
Последний раз редактировалось Олег 27.01.2016{, 10:48}, всего редактировалось 1 раз.

Allex901
Рядовой
Сообщения: 5
Зарегистрирован: 29.12.2015{, 10:53}
Репутация: 0
Откуда: Санкт-Петербург

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

#3

Сообщение Allex901 » 27.01.2016{, 11:54}

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

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

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#4

Сообщение Олег » 27.01.2016{, 13:50}

Не пробовал, но по-логике так и должно быть.

Allex901
Рядовой
Сообщения: 5
Зарегистрирован: 29.12.2015{, 10:53}
Репутация: 0
Откуда: Санкт-Петербург

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

#5

Сообщение Allex901 » 27.01.2016{, 14:02}

Спасибо, разобрался с Вашей помощью.

OlegAn1962
Лейтенант
Сообщения: 361
Зарегистрирован: 07.09.2015{, 23:53}
Репутация: 0

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

#6

Сообщение OlegAn1962 » 25.11.2016{, 21:52}

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

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

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

#7

Сообщение Boroda » 08.02.2017{, 19:21}

Не стану создавать новую тему.
Вопрос Сергею (разработчику):
Вставляю стандартный блок 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));
...
Смысл ставить эти датчики на отдельную плату с условием пропадает, т.к. основная часть кода, которая пожирает время, остается в основном цикле и работа блока корректируется только в его настройках. А можно сделать так: "где блок, там и код"? Я конечно поставил бит разрешения работы платы и этот же бит завел на блок, но как-то не красиво все это.
Последний раз редактировалось Boroda 08.02.2017{, 19:23}, всего редактировалось 1 раз.

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#8

Сообщение support » 08.02.2017{, 19:44}

Подождите выхода следующей версии. Там этот вопрос решон. Во первых опрос датчика будет происходить на той плате где он установлен, во вторых применена новая библиотека и опрос происходит намного быстрее. Существующий код писался в стародавние времена, когда о работе плат по условию даже и не планировалась.
Автор программы FLProg.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

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

#9

Сообщение Boroda » 08.02.2017{, 20:10}

Спасибо, Сергей!

dim770
Рядовой
Сообщения: 19
Зарегистрирован: 04.11.2016{, 11:24}
Репутация: 0
Откуда: Калининград

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

#10

Сообщение dim770 » 28.04.2017{, 11:41}

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

Аватара пользователя
slavas
Лейтенант
Сообщения: 595
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 1
Откуда: Санкт-Петербург

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

#11

Сообщение slavas » 02.05.2017{, 11:37}

dim770, какую проверку исправности? Если датчик не отвечает на экран выводится слово "NAN".

fozik
Рядовой
Сообщения: 1
Зарегистрирован: 22.05.2017{, 03:07}
Репутация: 0

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

#12

Сообщение fozik » 22.05.2017{, 03:33}

slavas писал(а):Если датчик не отвечает на экран выводится слово "NAN".
Вот у меня вопрос про этот NAN. У меня показания температуры и влажности  с DHT22 сменяются на "NAN". Смотрел решение здесь http://forum.arduino.cc/index.php?topic=335860.0 Пробовал создать пользовательский блок но пока не смог. Подскажите решение этой проблемки. Возможно кто-то создаст такой блок?

Аватара пользователя
slavas
Лейтенант
Сообщения: 595
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 1
Откуда: Санкт-Петербург

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

#13

Сообщение slavas » 22.05.2017{, 10:57}

fozik, какой датчик ( на плате или нет), кабель,как подключили.
Экстрасенсы устали.

Ответить

Вернуться в «Датчики температуры, влажности и давления»