В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

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

📆14 февраля 2017   ✒️maddiego   🔎15.268   💬4  
Привет любителям электроники!
Сегодня я решил познакомиться с датчиком влажности 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 ⇣ 59

Программа в CodeVision AVR 3.12 (исходники):
🎁source_code.zip  156.39 Kb ⇣ 83

Проект для опытов в Proteus v8.4 SP0:
🎁proteus.zip  25.59 Kb ⇣ 75

Печатная плата в SprintLayout v6.0:
🎁pcb.zip  31.9 Kb ⇣ 73

Заключение

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

Спасибо за внимание!

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрили 56 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

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

 

 

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

 

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

Комментарии, вопросы, ответы, дополнения, отзывы

 

<
Читатель Датагора

Datagor



<
Читатель Датагора

maddiego

<
Читатель Датагора

Vaysa

<
Читатель Датагора

Datagor

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой