как увеличить коэффициент задержки DHT11?
Ошибки компилятора нет, но в выводе отображается ошибка тайм-аута. согласно инструкции, приведенной в https://github.com/RobTillaart/Arduino/issues/61
говорится увеличить коэффициент тайм-аута, но я не нашел ограничений, которые просили изменить.
@Kaiser, 👍1
Обсуждение1 ответ
Лучший ответ:
▲ 0
DHT11 и DHT22 раньше были дешевыми и простыми в использовании датчиками влажности и температуры, когда они использовались вместе с Arduino Uno.
Но все изменилось.
- Они неточны и могут стать совершенно неточными в некоторых случаях. газы или дым.
- Оказалось, что наиболее часто используемые библиотеки DHT имеют серьезная ошибка, которая создает ярлык в сигнале данных. Это не было проблемой с Arduino Uno, которая может выводить 40 мА со штырем. У новых процессоров есть проблемы с этот ярлык.
- В 2018 году DHT11, похоже, ведет себя по-другому. вероятно, изменился внутренний контроллер.
- Поскольку связь с датчиками требует точного времени, прерывания временно отключаются. Это не было проблемой с медленным Arduino Uno, но это ненормально с более быстрый процессор.
- Некоторые библиотеки используют тайм-аут с циклом или тактовыми циклами. Это хорошо сработало с Arduino Uno, но это не всегда надежно с новыми процессорами.
В 2018 году все библиотеки DHT для ESP8266 и ESP32 имеют проблемы с DHT11 и DHT22.
Поскольку датчики и так не очень точны, лучше держаться подальше от всех неприятностей и избегать их. Существует ряд хороших датчиков влажности с интерфейсом I2C.
,
@Jot
Смотрите также:
- Получение сброса wdt + перезагрузка каждые 5 секунд с помощью простого кода кнопки/реле
- Невозможно использовать DHT11 с NodeMCU (esp8266)
- HTU21 на GY-21 breakout board I2C проблема
- NodeMcu V3 и BMe280 -> Температура, влажность, давление: значение nan
- Может ли кто-нибудь помочь мне с моим проектом?
- NodeMCU - Vin контакт как выход 5V?
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
Я думаю вам нужно изменить сами файлы библиотеки., @Gerben
У него пять библиотек DHT. Знаете ли вы, какой из них вы используете? Проблема может быть в nodemcu в сочетании с библиотекой и датчиком. Dht11 и dht22 могут вести себя иначе, чем несколько лет назад. Некоторые библиотеки вызывают сокращение сигнала данных, что является серьезной проблемой для nodemcu. «DHTLIB_TIMEOUT» объявлен в файле .h. Чтобы обеспечить совместимость со всеми платами Arduino, время ожидания должно быть в миллисекундах., @Jot
Я не нашел никакого ограничения с именем DHTLIB_TIMEOUT, которое должно быть в файле .h. Я использую плату NodeMCU и пробовал три разные библиотеки DHT11, но ни одна из них не работает. можете ли вы дать мне ссылки, откуда я могу скачать необходимую библиотеку, @Kaiser
Не знаю, библиотек гораздо больше, чем 3. Библиотеки dht11 для esp8266 — это большой беспорядок. Даже код nodemcu имеет проблемы с (более новыми) датчиками dht11: https://github.com/nodemcu/nodemcu-firmware/issues/2253 Какие библиотеки вы пробовали? Используете ли вы подтягивающий резистор? Какова стоимость этого резистора? Вы используете длинные провода? У вас есть еще один датчик dht11, возможно этот сломан. Если вы хотите знать влажность, возможно, вам следует купить датчик получше с i2c. DHT11 возвращает число, которое не имеет никакого отношения к влажности и является неточным., @Jot
У dht11, который я использовал, был встроенный подтягивающий регистр, и я не использовал никаких проводов, а только соединительные кабели для минималистского подключения. И я попробовал 2 разных датчика, но все выдали значение NAN. Думаю, вместо того, чтобы брать на себя всю эту ношу, я выберу датчик i2c. Большое спасибо @Jot, @Kaiser
Я сделаю за это ответ., @Jot