Найти в Дзене
NeuroNest

Как заставить датчик влажности работать стабильно: советы для новичков и профи

Если ты когда-нибудь пытался сделать хоть что-то своими руками с микроконтроллером, будь то Arduino или ESP, то с огромной вероятностью натыкался на вот эти пластиковые синенькие (или беленькие) штуковины — DHT11 или DHT22. Маленькие, квадратненькие, вроде как «датчики температуры и влажности». Стоят копейки, подключаются за три минуты — ну почти. И вроде всё хорошо, пока не начнётся вот это:

Если ты когда-нибудь пытался сделать хоть что-то своими руками с микроконтроллером, будь то Arduino или ESP, то с огромной вероятностью натыкался на вот эти пластиковые синенькие (или беленькие) штуковины — DHT11 или DHT22. Маленькие, квадратненькие, вроде как «датчики температуры и влажности». Стоят копейки, подключаются за три минуты — ну почти. И вроде всё хорошо, пока не начнётся вот это: «Failed to read from DHT sensor». А ты такой сидишь, смотришь в монитор порта, и думаешь: «Это я тупой или китайцы опять сэкономили на чём-то?»

Короче, давай разбираться, что эти датчики вообще из себя представляют, как их правильно готовить и почему они могут внезапно начать вести себя, как капризный ребёнок в Икее.

DHT11, DHT22 и SHT — кто есть кто

Есть три главных героя этой пьесы. Первый — DHT11. Самый простой, самый дешёвый. Меряет температуру от 0 до 50 градусов, влажность от 20 до 90 процентов. Звучит вроде нормально, но по факту — точность так себе. Иногда такое ощущение, что он не температуру меряет, а просто угадывает по погоде в Москве. Если тебе просто поиграться — сойдёт. Но в проекты, где нужна хоть какая-то стабильность, — забудь.

Второй — DHT22, он же AM2302. Уже интереснее: температура от –40 до 80, влажность от 0 до 100. Работает заметно стабильнее, показывает адекватнее. Ну и дороже, конечно, но не космос. Если хочешь что-то повесить на балконе или в гараже — норм вариант.

И третий в нашем списке — SHT31 или SHT71. Это уже, как говорится, серьёзный парень. Промышленный уровень, высокая точность, умеет в I²C, и в целом ощущение, что ты имеешь дело с адекватной техникой, а не с сюрпризом с AliExpress. Но и ценник — будь готов.

Подключение: просто, но с подводными камнями

На словах — просто. VCC к 5 вольтам (или 3.3, но с DHT11 не вздумай, он обидится), GND — на землю, сигнальный пин — на цифровой вывод (например, D2). Только обязательно не забудь подтягивающий резистор на 10 кОм между VCC и сигнальной линией. Без него — жди сюрпризов.

Устанавливаешь библиотеку от Adafruit, берёшь пример из документации, заливаешь на плату — и всё должно заработать. По крайней мере, на бумаге. В реальности — иногда всё прекрасно, а иногда… да, опять это «Failed to read». Секунды ожидания. Ноль показаний. Пустота.

Почему всё ломается, и как с этим жить

Первое и главное — питание. DHT11 от 3.3 вольта работает плохо, точка. Дай ему 5 вольт, и он уже не такой злюка. DHT22 более терпелив, но тоже любит стабильное питание. Ещё лучше — поставь рядом конденсатор на 100 мкФ, чтобы питалка не проседала при запуске.

Дальше — провода. Если ты решил провести сигнальный кабель на 50 см, скрутив его из лапши от старого ноутбука — не удивляйся, что ничего не работает. Всё, что длиннее 20 см — либо экранируй, либо ставь конденсатор, либо используй нормальные провода.

Пыль, конденсат, влагу — датчики не любят. Особенно если ты их решил повесить в кондиционер или на улицу. Протирай корпус, делай профилактику. Ну или меняй на SHT — они к таким условиям устойчивее.

Глюки и зависания: реальность китайских сенсоров

Вот самая весёлая часть: иногда датчик просто «зависает». Без причины. Без предупреждения. Работал-работал — и всё. Нужно отключать питание, перезапускать, вызывать шамана. Особенно любит так делать DHT22. Поэтому, если тебе нужна надёжность — смотри в сторону AM2321 или SHT31. Или хотя бы заложи возможность перезагрузки по питанию через реле.

А ещё бывают моменты, когда микроконтроллер вообще не видит датчик. И ты сидишь, проверяешь всё: питание — есть, резистор — есть, скетч — стандартный. А он в ответ — тишина. Иногда дело просто в плохой пайке. Иногда — в глючной библиотеке. А иногда — ну просто бракованный модуль. Такое бывает, увы.

Как сделать всё по уму

Если хочешь, чтобы проект жил долго и счастливо, делай так:

  1. Всегда ставь подтягивающий резистор — это не рекомендация, это правило.
  2. Используй нормальное питание, не надейся на USB от старого ноута.
  3. Протирай датчики. Они не из титана — им тоже плохо от пыли.
  4. Если проект важный — не бери DHT11. Просто не стоит.
  5. Если совсем серьёзно — бери SHT и не мучайся.
-2

Вот такая вот история про маленькие, но капризные датчики. С виду простые, а на деле — с характером. Как старая «Лада»: если знаешь, как с ней обращаться — поедет. Если нет — стой и матерись на обочине.

А у тебя был опыт с DHT11 или DHT22? Какой самый странный глюк у тебя случался с этими датчиками? Напиши в комментах — будет весело почитать.