» » Работа с датчиком DHT11. Строим термометр-гигрометр на ATMEGA8

 
 
 
4

Работа с датчиком DHT11. Строим термометр-гигрометр на ATMEGA8

Разместил maddiego 14 февраля 2017. Просмотров: 2 976

Привет любителям электроники!
Сегодня я решил познакомиться с датчиком влажности DHT11, который также умеет измерять температуру. У него есть старший брат датчик DHT22 с более высокими показателями точности, большим размахом измерительной шкалы, и, конечно же, подороже своего младшего брата.
Т.к. проблематикой влажности я ранее не занимался, и мне не требовалась высокая точность, то по экономическим соображениям я и приобрёл датчик DHT11.

На фото роль датчика взял на себя микроконтроллер ATtiny13. Я написал тестовую программку, которая шлёт одни и те же данные. На тот момент, датчик путешествовал из Китая ко мне и, дабы успокоить свой азарт, я пошёл на такую хитрость.

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

Немного про датчик DHT11


Т.к. датчик я тогда ещё в руках не держал, то из даташита выяснил, что у него 4 ноги, а используются всего три из них. Почему Китайцы так сделали, одному Джеки Чану известно. Ну, да ладно.

Основные характеристики датчика DHT11
 — диапазон измеряемой влажности: 20-95% RH (значение влажности в 8 бит)
 — диапазон измеряемой температуры: 0-50°С (значение температуры также 8 бит)
 — точность температурного сенсора: ±2°С 
 — точность сенсора влажности: ±5% RH
 — шаг измеряемых значений: 1
 — однопроводной протокол передачи данных
 — частота измерений: 1 секунда
 — напряжение питания: 3.5-5.5 V
 — потребляемый ток в режиме измерения: 2 мА
 — потребляемый ток в режиме ожидания: 150 мкА

Для опытов точность и цена датчика в самый раз, и я начал проектировать схему.

Какие стояли задачи:

 — устройство должно быть портативным;
 — иметь малые габариты;
 — уметь работать долгое время, т.е. потреблять малый ток;

Значит, от семисегментных индикаторов лучше отказаться и применить индикатор на жидких кристаллах — ЖКИ.Т. к. датчик по сути своей цифровой, то потребуется микроконтроллер, с достаточным количеством выводов и обладающий способностью впадать в глубокий сон.

Принципиальная схема термометра-гигрометра


Тут задействован микроконтроллер (далее МК) ATMega8 в TQFP корпусе, работающий на частоте в 2 МГц от внутренней RC-генератора.
МК принимает данные с датчика DHT11, замеряет и показывает уровень заряда батарей в виде значка батарейки, и отправляет все полученные данные на символьный ЖКИ, у которого две строки по 8 символов.
Ещё МК слушает три кнопки, которые позволяют задать режим отображения данных на индикаторе, температура + влажность, только температура, только влажность. Так же реализован режим калибровки.

Описание логики работы программы

Можно упомянуть про энергосбережение устройства. Как видно по схеме, МК управляет питанием датчика влажности и питанием ЖКИ.Т. к. устройство большую часть времени находится в состоянии покоя (не будет же человек смотреть на его показатели часами), то его смело можно перевести в режим глубоко сна, в котором он потребляет менее 4 мкА! Экономия энергии неплохая.

А когда необходимо увидеть показания, достаточно нажать на кнопку «PWR» и МК проснётся, подав питание на ЖКИ и датчик влажности.
Считывание данных из датчика происходит раз в секунду, во время этого процесса кратковременно вспыхивает светодиод «DHT».

Итак, появляется питание, МК считывает калибровочные значения из своей EEPROM и начинает ждать, пока датчик влажности отправит ему свои данные. Через секунду данные получены и МК рисует температуру и влажность на ЖКИ.

У нас есть три кнопки:
 — кнопка «PWR»
 — кнопка «С»
 — кнопка «RH»

Кнопка «PWR» исполняет роль включателя/выключателя устройства. Если зажать кнопку «PWR», то появляется значок часов, который означает, что время отображения данных будет составлять 10 секунд и затем МК уснёт. Если значка нет, то сон отменяется, показ значений будет происходить постоянно, пока батареи не сядут.


Если нажать на кнопку «C», то режим отображения переключится на показ только температуры. Второе нажатие возвращает режим отображения на общий вид.
Аналогично и с кнопкой «RH»: показ только влажности или общий режим.


Если зажать обе кнопки «RH» и «C» вместе на пару секунд и отпустить, то запустится режим калибровки. Калибровка возможна в небольших пределах +/- 9 единиц, тут кнопки «C» и «RH» играют роль кнопок «-» и «+». Переключение по меню происходит кнопкой «PWR».


Собственно это всё, что заложено в МК в плане «2D-графики». Признаюсь, много времени ушло на прорисовку собственного символа батарейки, и особенно на жирный шрифт, т.к. памяти ОЗУ у ЖКИ всего на 8 символов, приходится постоянно её переписывать нужными рисунками.

Сборка измерителя влажности и температуры

Во время сборки устройства, я так был поглощён энтузиазмом, что не заметил, как мой рабочий стол превратился в СВАЛКУ! Не подумайте, что я постоянно сижу в таком бардаке, но когда начинаю творить, то да, одного стола мне мало!


Корпус взял от Ethernet-сплиттера, печатную плату вытравил с двух сторон, на лицевой части находится основная часть электроники, а на задней датчик и коробочка для вставки батареек.

Собственно вот что вышло в итоге.


Наладка и фьюзы

При правильном программировании МК и фьюзов устройство начинает работать, как только появляется питание.
Наладка устройства сводится к установлению уровня контрастности резистором RV1.

Фьюзы выставляются на тактирование от внутренней RC цепочки на 2 МГц, остальные остаются заводскими.


Файлы

Прошивка для заливки (hex):
hex.zip | Файл 5,02 Kb загружен 14 раз.

Программа в CodeVision AVR 3.12 (исходники):
source_code.zip | Файл 156,39 Kb загружен 14 раз.

Проект для опытов в Proteus v8.4 SP0:
proteus.zip | Файл 25,59 Kb загружен 15 раз.

Печатная плата в SprintLayout v6.0:
pcb.zip | Файл 31,9 Kb загружен 20 раз.

Заключение

Думаю, что корпусу не хватает наклейки, но я так и не добрался до неё.
Термометр работает верно. Что касается точности измерения влажности, проверить её мне нечем. Медленно подув на датчик, вижу, как температура и влажность повышаются. smile

Спасибо за внимание!
Тимур (maddiego)
Узбекистан, Ташкент
Профиль maddiego
Мне 27, с паяльником подружился в 10 лет. В 22 скатился в сферу микроконтроллеров.
 

Понравилось? Палец вверх!

  • всего лайков: 50

Поделись с друзьями!

Связанные материалы:


Схема на Датагоре. Новая статья Датагорский проект 10 "Water Tank Controller". Модификация блока управления для полива... Привет, друзья! Последний раз я имел дело с микроконтроллерами лет 20 назад, во время ПК типа...
Схема на Датагоре. Новая статья Простой измеритель индуктивности - приставка к цифровому мультиметру... Практически каждый, кто увлекается электроникой, будь то начинающий, или опытный радиолюбитель,...
Схема на Датагоре. Новая статья Простой модульный вольтметр переменного напряжения на PIC16F676... Простой вольтметр переменного напряжения с частотой 50 Гц, выполнен в виде встраиваемого модуля,...
Схема на Датагоре. Новая статья PIC16F876: таймер вытяжного вентилятора в ванной и электронный термометр... Я недавно делал капитальный ремонт ванной комнаты и возник вопрос, как управлять вентилятором...
Схема на Датагоре. Новая статья Немного про шину 1-Wire и цифровой термометр DS18b20... Фотка от www.150cc.ru Здравствуйте, друзья. Хочу предложить вашему вниманию несколько простых...
Схема на Датагоре. Новая статья USB адаптер для чтения и программирования цифровых термостатов MAXIM/DALLAS DS1821... В статье описано, как за час сделать простой USB-адаптер для чтения/записи цифровых термометров...
Схема на Датагоре. Новая статья Универсальная "прозвонка" на замыкание и размыкание с памятью, звуковой и световой сигнализацией... Известно, что радиотехника – наука о контактах. Неисправность – это наличие контакта там, где его...
Схема на Датагоре. Новая статья SHT10 + Atmega8: Микроконтроллерный модуль управления вентилятором санузла, v2... Доброго дня, сограждане! Представляю вторую версию блока управления вентилятором для ванной,...
Схема на Датагоре. Новая статья Модуль управления вентилятором на микроконтроллере... Доброго времени суток сограждане! Хочу вот поделится своей конструкцией. Конструкция это из тех...
Схема на Датагоре. Новая статья Измерение индуктивности трансформатора или дросселя... Часто самодельщики-ламповики озадачены определением индуктивности обмотки(ок)...
Схема на Датагоре. Новая статья Датчик угла поворота. Сельсин-датчик и приёмник на микроконтроллере.... Схема сельсин-датчика и программа микроконтроллера практически полностью взяты из журнала Радио №4...
Схема на Датагоре. Новая статья Металлопленочные резисторы MF12, MF25S, MF25, MF50S, MF50, MF100S, MF100, MF200S, MF200, MF300... Резисторы постоянные металлопленочные. Предназначены для работы в цепях постоянного и переменного...
<
  • Главный редактор
15 февраля 2017 14:05

Игорь Петрович Котов / Datagor

Цитата
  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 653 комментария
  • 265 публикаций
 
  • +1
Тимур, привет!
Снова хочу похвалить твой стиль изложения, чёткость, полноту, наличие комментированных исходников и проектов в Протеусе.
Молодчина, так держать!

И это ты называешь свалкой? Да видал я такие свалки, рядом с которыми это стерильный цех завода точной механики! lol
Вот посмотри пример: Как донять домашних и потерять носки

А это моё, пару лет назад, но и сейчас к сожалению не лучше.


Из фотки выросла тема на форуме: Организация рабочего места!

Если будет время, сделай модификацию на 7-сегментных индикаторах с ОА. Хочу сделать стационарную модель на больших led-индикаторах.
Подробности в личке обсудим wink Получится новый проект.

<
  • Гражданин
15 февраля 2017 17:08

Тимур / maddiego

Цитата
  • С нами с 2.08.2016
  • Ушёл в реал Пользователь offline
  • 17 комментариев
  • 8 публикаций
 
  • +1
Игорь
Спасибо! стараемся!

Я думал что я один сижу паяю на краю стола, когда всё остальное завалено всем и вся lol Такими темпами, можно мини игру создать для радиолюбителей, искалку предметов)

Насчёт переделки, сделаю без проблем cool

<
  • Кандидат
15 февраля 2017 20:23

Владимир / Vaysa

Цитата
  • С нами с 13.11.2010
  • Ушёл в реал Пользователь offline
  • 5 комментариев
  • 0 публикаций
 
  • +1
Здорово получилось!
К сожалению мои познания в микроконтроллерах крайне низкие, а воображение разыгралось, предлагаю рассмотреть введение дополнительных возможностей как включение-выключение нагрузок при определенных значениях температуры и влажности.

<
  • Главный редактор
16 февраля 2017 08:27

Игорь Петрович Котов / Datagor

Цитата
  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 653 комментария
  • 265 публикаций
 
  • 0
Владимир, и так плавно переходим, например, к контроллеру вентилятора в ванной и т.п. утилитарным штукам.
Расширяем круг практических приложений прибора.
Над этим и подумаем в следующем проекте.

Добавление комментария


Налетай! Паяльники, станции, жала с доставкой
  • smilelolbyewinkyahoocoollaughing
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashguitar-manhandshake
    musicnegativenopardonshoksleepunknown
    wackoyawnblushbullyhashsmokingwhew
Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.