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