Влажността и температурата са общи параметри за измерване на условията на околната среда. В този проект, базиран на Arduino, ще измерим околната температура и влажност и ще ги покажем на 16x2 LCD екран. Комбиниран датчик за температура и влажност DHT11 се използва с Arduino uno за разработване на този проект за измерване на термометър по Целзий и процентна скала на влажност. В един от предишния си проект разработих и цифров термометър, използващ температурен сензор LM35.
Този проект се състои от три секции - едната усеща влажността и температурата, като използва сензор за влажност и температура DHT11. Вторият раздел чете изхода на модула DHTsensor и извлича стойностите на температурата и влажността в подходящо число в проценти и скала по Целзий. И третата част на системата показва влажност и температура на LCD.
Работата по този проект се основава на едножична последователна комуникация. Първо arduino изпраща стартов сигнал към DHT модула и след това DHT дава сигнал за отговор, съдържащ данни за температура и влажност. Arduino събира и извлича на две части, едната е влажността, а втората е температурата и след това ги изпраща на 16x2 LCD.
Тук в този проект използвахме сензорен модул, а именно DHT11. Този модул се отличава с комплекс за влажност и температура с калибриран изход за цифров сигнал, което означава, че DHT11 сензорният модул е комбиниран модул за отчитане на влажност и температура, който дава калибриран цифров изходен сигнал. DHT11 ни дава много точна стойност на влажност и температура и осигурява висока надеждност и дългосрочна стабилност. Този сензор има компонент за измерване на влажност с резистивен тип и компонент за измерване на температурата от тип NTC с вграден 8-битов микроконтролер, който има бърза реакция и рентабилност и се предлага в 4-пинов едноредов пакет.
Модулът DHT11 работи върху серийна комуникация, т.е. едножична комуникация. Този модул изпраща данни под формата на импулсен цикъл за определен период от време. Преди да изпрати данни на arduino, той се нуждае от някаква команда за инициализиране със закъснение. И цялото време на процеса е около 4ms. Пълното предаване на данни е от 40 бита и форматът на данните на този процес е даден по-долу:
8-битови интегрални RH данни + 8-битови десетични RH данни + 8-битови интегрални T данни + 8-битови десетични T данни + 8-битова контролна сума.
Пълен процес
На първо място, arduino изпраща сигнал към висок до нисък старт към DHT11 със закъснение от 18µs, за да осигури откриването на DHT. И след това arduino издърпайте линията за данни и изчакайте 20-40µs за отговора на DHT. След като DHT открие сигнал за стартиране, той ще изпрати сигнал за отговор на ниско напрежение към arduino със закъснение от около 80µs. И тогава DHT контролерът издърпва линията за данни и я запазва за 80µs за организиране на DHT за изпращане на данни.
Когато шината за данни е на ниско напрежение, това означава, че DHT11 изпраща сигнал за отговор. След като приключи, DHT отново прави изтегляне на линията за данни за 80µs за подготовка на предаването на данни.
Форматът на данните, който се изпраща от DHT към arduino за всеки бит, започва с 50µs ниво на ниско напрежение и дължината на сигнала за ниво на високо напрежение определя дали битът за данни е „0“ или „1“.
Едно важно нещо е да се уверите, че стойността на резистора на издърпване е нагоре, защото ако поставяме DHT сензор на разстояние <20 метра, се препоръчва 5k издърпващ резистор Ако поставяте DHT на по-дълъг 20 метра, използвайте издърпващ резистор с подходяща стойност.
Електрическа схема и обяснение
Дисплей с течни кристали се използва за показване на температура и влажност, който е директно свързан с arduino в 4-битов режим. Пиновете на LCD, а именно RS, EN, D4, D5, D6 и D7, са свързани към цифрови щифтове arduino с номера 2, 3, 4, 5, 6 и 7. А сензорен модул DHT11 също е свързан към цифров щифт 12 на arduino с 5k издърпващ резистор.
Описание на програмирането
При програмирането ще използваме предварително изградени библиотеки за сензор DHT11 и LCD дисплеен модул.
След това дефинирахме щифтове за LCD и DHT сензор и инициализирахме всички неща в настройката. След това в цикъл с помощта на dht функция чете DHT сензор и след това с помощта на някои dht функции извличаме влажност и температура и ги показваме на LCD.
Тук символът за степен се създава с помощта на метод на персонализиран символ.