Управление вентилятором вытяжки для контроля влажности воздуха в ванной

Вид материалаДокументы

Содержание


Ручной режим
Автоматический режим
Подобный материал:
Управление вентилятором вытяжки для контроля влажности воздуха в ванной

Сергей Безруков (ака Ser60)

Этот проект разрабатывался в рамках форума на сайте radiokot.ru. Выражаю признательность участникам форума aam и МитяРа за постоянное внимание к проекту, мотивацию, поддержку, и консультации.

Устройство предназначено для автоматизации управления включением и выключением вытяжки в ванной в зависимости от относительной влажности воздуха в ней. В устройстве имеется 2 режима управления – ручной и автоматический. Логика работы устройства следующая.

Ручной режим: при подаче питания устройство сразу включает вентилятор вытяжки и запускает таймер отсчета времени его работы. По истечении этого времени вентилятор отключается. Повторное включение в этом режиме возможно только после кратковременного отключения питания. Установка значения тайм-аута производится через меню устройства и, как и все другие установки пользователя, сохраняется в энерго-независимой памяти микроконтроллера.

Автоматический режим: в этом режиме устройство предполагается быть все время включенным. При этом оно каждую секунду производит измерение влажности воздуха и вычисляет скорость его изменения за определенный период времени (устанавливается через меню). Как только влажность за период измерения увеличится на заданную в меню величину (например, 2% за 5 секунд), устройство запоминает текущее значение влажности и включает вентилятор вытяжки. После этого ожидается момент падения влажности на заданную в меню величину за период измерения (например, 2% за 5 секунд после выключения душа). Как только это произойдет, запускается таймер на установленное в меню время. Отключение вентилятора произойдет либо по обнулении таймера, либо по достижении влажности запомненного при включении вытяжки значения. Кроме того, если по включении устройства в этом режиме измеренная влажность превышает 90% (фиксированное значение), то произойдет включение вентилятора на установленную в меню длительность.

Таким образом, в автоматическом режиме устройство реагирует на скорость изменения влажности, и включение вытяжки производится независимо от уровня влажности в остальной части жилого помещения. В обоих режимах длительность работы вытяжки после принятия душа/ванны ограничена установленным в меню значением. При этом предполагается, что влажность воздуха во время пользования ванной превышает таковую в остальное время, что обычно имет место на практике.

Во включенном состоянии производится отображение текущего значения влажности и температуры на графическом ЖКИ. Эти значения актуализируются ежесекундно. В устройстве имеются 4 кнопки для установки режима его работы. При нажатии на любую из них включается подсветка ЖКИ, которая автоматически выключится через 10 секунд, если не будет нажата никакая кнопка. В противном случае, по нажатии любой из кнопок устройство переходит в режим меню, в котором на ЖКИ отображаются установленные значения параметров режима его работы. Две левые кнопки поволяют выбирать следующий или предыдущий параметр в кольцевом режиме, в то время как две правые предназначены для увеличения или уменьшения значения соответствующего параметра. При выходе из меню все параметры автоматически сохраняются в энерго-независимой памяти микроконтроллера, выключается подсветка дисплея, и устройство опять переходит в режим показа температуры и влажности. Помимо информирования пользователя, значение температуры используется для термо-компенсации датчика влажности.

Сердцем уствойства является микроконтроллер C8051F996 (DD1), фирмы Silicon Laboratories. Одна из причин его применения является простота сопряжения с емкостным датчиком влажности HIH-1000 (C2), не требующим никаких дополнительных деталей. Измерение емкости датчика производится встроенным в микроконтроллер и патентованным фирмой-изготовителем Емкостно-Цифровым Преобразователем (ЕЦП). Он спроектирован для работы с сенсорными датчиками, но как показали эксперименты, он достаточно линеен и хорошо подходит для работы с примененным датчиком влажности. В режиме усиления 1х ЕЦП позволяет измерить емкость примерно до 500пФ с разрешением в 12 бит (с точностью до 0,12 пФ), в то время как интервал изменения емкости датчика не выходит за рамки интервала от 300 до 400пФ. Процесс измерения емкости при заданном режиме работы ЕЦП занимает около 180 мкс. В результате экспериментов с использованием эталонных конденсаторов и учета передаточной характеристики сенсора была выработана следующая формула для определения влажности:

H(%) = (((A – A0)·125 + (T – T0)·136 + 256)) >> 9) + H0,

где A – код ЕЦП микроконтроллера, T – температура окружающего воздуха в °C, а А0 – код ЕЦП при влажности H0 и температуре Т0. Отметим, что все вычисления по этой формуле производятся только с целочисленными данными и результатом является целое число, соответствующее относительной влажности воздуха в %.

Для измерения температуры применен аналоговый датчик TC1047A, подключенный к встроенному в микроконтроллер 10-битному АЦП. Последний работает с также встроенным генератором опорного напряжения Vоп = 1,65 В. В результате получаем следующую формулу для определения температуры:

Т(°C) = ((K·165) >> 10) – 50,

где K – код АЦП. Эта формула также предполагает только целочисленные операции. Отметим, что в обоих формулах умножение производится на 1-байтную константу, что позволяет особенно просто реализовать его на встроенном в микроконтроллер аппаратном перемножителе.

Для отображения информации применен графический COG (Chip On Glass) дисплей с разрешением 128х32 фирмы Newhaven. Связь микроконтроллера с дисплеем производится по интерфейсу SPI. Конденсаторы C7 – C14 являются частью встроенного в дисплей преобразователя напряжения. Транзистор Q3, управляемый сигналом ШИМ из микроконтроллера, предназначен для контроля яркости подсветки ЖКИ. Электроника дисплея потребляет около 80 мкА при выключенной подсветке и около 12мА при включенной.

Управление вентилятором производится с выхода 12 микроконтроллера с помощью оптрона MOC3043 и симистора Q2 в стандартном включении. Питается устройство от импульсного преобразователя напряжения на 5В от зарядки для мобильного телефона. Дальнейшее понижение напряжения до требуемых микроконтроллеру и дисплею 3В и его стабилизация производится микросхемой DA2. В активном режиме микроконтроллер работает на частоте 20 мгц от встроенного генератора. Разъем XS1 предназначен для его программирования через интерфейс C2. Недорогой программатор для микроконтроллеров семейства C8051 описан в статье на форуме.

Программа микроконтроллера написана на языке ассемблера и отлажена в среде Silicon Laboratories IDE, интегрированной с компилятором A51 фирмы Keil. Сама программа занимает около 1,95кБ памяти микроконтроллера (из 8кБ его памяти). Помимо этого, дополнительные 2,1кБ памяти занимают шрифты для ЖКИ.


.... продолжение следует...