требования к дизайну
1. Спроектировать систему мониторинга температуры и влажности на базе 51 микроконтроллера и датчика DHT11;
2. Датчик DHT11 осуществляет точное измерение параметров температуры и влажности окружающей среды, а микроконтроллер анализирует и обрабатывает данные;
3. Пользователи могут самостоятельно регулировать верхний и нижний пороги сигнализации температуры и влажности с помощью кнопок в соответствии с потребностями;
4. Когда температура и влажность окружающей среды выходят за пределы установленного диапазона, светодиодный индикатор и зуммер подадут звуковой сигнал и загорятся сигналы тревоги;
5. Значения температуры и влажности окружающей среды, а также верхний и нижний пороги срабатывания сигнализации отображаются с помощью жидкокристаллического дисплея LCD1602;
описание дизайна
Версия программного обеспечения для моделирования Proteus7 имеет только сенсорный элемент температуры и влажности SHT11 и не имеет сенсорного элемента DHT11. После обновления версии Proteus8 в библиотеку компонентов был добавлен компонент датчика DHT11. Поэтому этот проект разработан с использованием программного обеспечения для моделирования версии Proteus8.6.
Датчики SHT11 и DHT11 могут измерять температуру и влажность. Их основные различия заключаются в двух моментах:
1. Внутренний сердечник SHT11 представляет собой чувствительный к влажности конденсатор, который имеет высокую стоимость и высокую точность. Внутренний сердечник DHT11 представляет собой чувствительный к влажности резистор, который дешев, но имеет низкую точность;
2. Способы связи между ними разные. DHT11 — это одношинная последовательная связь с интерфейсом DATA только по линии данных; SHT11 — это двухпроводная последовательная связь с двумя интерфейсами: линия синхронизации SCK и линия данных DATA. С точки зрения программирования они совершенно разные.
Для обычных измерений температуры и влажности можно удовлетворительно использовать как DHT11, так и SHT11. Однако с точки зрения стоимости DHT11 дешевле, и его применение более широко распространено.
Обзор системы
В этой статье разрабатывается система мониторинга температуры и влажности на основе 51 микроконтроллера и датчика DHT11, которая может реализовывать функции сбора, обработки, отображения и оповещения о текущих данных о температуре и влажности окружающей среды.
Аппаратное обеспечение системы в основном состоит из минимальной системы микроконтроллера, модуля датчика температуры и влажности DHT11, модуля дисплея LCD1602, модуля кнопок и модуля звуковой и световой сигнализации. Структура системы следующая.
Датчик DHT11 постоянно определяет температуру и влажность в текущей среде и отправляет данные на микроконтроллер. После того, как микроконтроллер анализирует и обрабатывает данные, значения температуры и влажности, а также верхний и нижний пороги срабатывания сигнализации отображаются в режиме реального времени на ЖК-дисплее 1602. .
Кнопочный модуль предназначен для установки верхнего и нижнего предельных порогов сигнализации температуры и влажности. Когда температура или влажность окружающей среды выходит за пределы верхнего и нижнего пределов, система автоматически подает сигнал тревоги, загорается соответствующий светодиодный индикатор и раздается звуковой сигнал, напоминающий пользователю о необходимости принятия мер.
Схема моделирования Proteus
Принципиальная схема
Эффект бега
Откройте файл моделирования с именем DHT11 Climate and Humidity Monitoring.pdsprj, дважды щелкните микроконтроллер, щелкните маленький желтый значок папки во всплывающем диалоговом окне, загрузите файл DHT11.hex (находится в папке программы C) и запустите. Результаты моделирования следующие.
Как видно из рисунка, на ЖК-дисплее отображается текущая температура окружающей среды T составляет 27°C, а влажность H составляет 55% относительной влажности. Результат на ЖК-дисплее соответствует значению датчика DHT11, что указывает на правильность считывания данных о температуре и влажности.
Три маленькие красные стрелки на датчике DHT11 используются для имитации изменений значений температуры и влажности. Первые две красные стрелки используются для увеличения или уменьшения значения, а последняя красная стрелка используется для переключения между температурой и влажностью.
Например, мы настраиваем датчик DHT11 так, чтобы температура поднялась до 34°C, а относительная влажность упала до 51%. Эффект следующий.
Кнопки позволяют установить верхний и нижний пороговые значения температуры и влажности. Нажмите кнопку регулировки, система перейдет в режим установки верхнего и нижнего пределов, а на ЖК-дисплее отобразятся текущие значения верхнего и нижнего пределов температуры и влажности.
Как показано на рисунке, верхний и нижний пределы температуры системы по умолчанию составляют: 20–35 ℃, а верхний и нижний пределы влажности: 40–85 % относительной влажности.
Кроме того, мигает курсор нижнего предельного значения температуры, и вы можете нажать кнопку «плюс/минус», чтобы установить его; после установки нижнего предельного значения температуры нажмите кнопку регулировки, и начнет мигать курсор верхнего предельного значения температуры, и Вы можете установить верхнее предельное значение температуры.
По аналогии, когда установлены верхний и нижний пределы температуры и влажности, снова нажмите кнопку регулировки, чтобы выйти из режима настройки и вернуться в режим отображения температуры и влажности. Если пользователь не хочет изменять определенный порог температуры и влажности, нажмите кнопку регулировки, чтобы пропустить это.
Например, мы сбрасываем верхний и нижний пределы температуры до 25–38°C, а верхний и нижний пределы влажности до 40–65 % относительной влажности. Результаты следующие.
Когда система обнаруживает, что температура и влажность больше не находятся в заданном диапазоне, она подает звуковой и визуальный сигнал тревоги, загорается соответствующий светодиодный индикатор и раздается звуковой сигнал, когда температура и влажность окружающей среды вернутся в норму; , сигнал тревоги прекратится.
Например, мы нажимаем красную стрелку на датчике DHT11, чтобы снизить температуру до 24°C, что ниже нижнего предела в 25°C. В это время загорается синий индикатор низкой температуры и звучит звуковой сигнал.
C-код
void main()
{
uchar i;
LcdInit(); // Инициализация функции ЖК-дисплея
LcdShowInit(); // Инициализация ЖК-дисплея
AlarmTL=EEPROM_Read(0x2000); // Считайте нижний предел сигнализации температуры по адресу 0x2000 EEPROM.
AlarmTH=EEPROM_Read(0x2001); // Считайте верхний предел аварийного сигнала температуры по адресу 0x2001 EEPROM.
AlarmHL=EEPROM_Read(0x2002); // Считайте нижний предел сигнализации влажности по адресу 0x2002 EEPROM.
AlarmHH=EEPROM_Read(0x2003); // Считайте верхний предел сигнала тревоги влажности по адресу 0x2003 EEPROM.
if((AlarmTL==0)||(AlarmTL>100)) // Если значение сигнала тревоги нижнего предела температуры считывается ненормально (равно 0 или больше 100), переназначьте значение
AlarmTL=20;
if((AlarmTH==0)||(AlarmTH>100)) // Если значение сигнала тревоги верхнего предела температуры считывается ненормально (равно 0 или больше 100), переназначьте значение.
AlarmTH=35;
if((AlarmHL==0)||(AlarmHL>100)) // Если значение сигнала тревоги нижнего предела температуры считывается ненормально (равно 0 или больше 100), переназначьте значение
AlarmHL=40;
if((AlarmHH==0)||(AlarmHH>100)) // Если значение сигнала тревоги верхнего предела температуры считывается ненормально (равно 0 или больше 100), переназначьте значение.
AlarmHH=85;
while(1)
{
ReadDhtData(); // Обнаружение данных о температуре и влажности
LcdGotoXY(1,2); // Найдите место, где вы хотите отображать температуру
LcdPrintNum(temp); // Отображение значения температуры
LcdGotoXY(1,11); // Найдите, где вы хотите отображать влажность
LcdPrintNum(humi); // Отображение значения влажности
AlarmJudge(); // Судите и при необходимости вызывайте полицию
for(i=0;i<25;i++)
{
KeyScanf(); // Сканирование ключей
DelayMs(20); // задерживать
}
}
}
Содержание ресурса
(1) Проектная документация системы мониторинга температуры и влажности на базе 51 микроконтроллера и DHT11;
(2) файл моделирования Proteus8.6;
(3) программа C;
(4)Принципиальная схема;
(5) Блок-схема Visio;
(6) Справочные материалы;
(7) Список компонентов;
Скриншот ресурса