Микроклимат в теплице

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,16 Мб
  • Опубликовано:
    2015-05-27
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Микроклимат в теплице

Введение

Система домашней автоматики «Умный дом» - это интеллектуальная система, в которой свет, кондиционеры, охранная сигнализация и электроприборы действуют в заданном согласованном режиме. Это гарантирует удобство управления и высокий уровень системы безопасности.

Управляйте светом во всём доме с любого удобного устройства, будь то настенный выключатель, сенсорная панель, компьютер или пульт дистанционного управления.

Термостат используется во многих устройствах бытовой и специальной техники. Универсальный четырех канальный таймер с функцией термостата может быть использовано в качестве системы управления отоплением дачи, дома, а также различными электроприборами. Это термостат, таймер, АЦП, часы реального времени.

Модуль позволяет поддерживать температуру, которая вам нужна именно в этот момент времени и день недели. "Электронный истопник" автоматически выберет самый выгодный источник энергии для текущего времени суток. Например, может в ночное время включать накопление энергии в тепловом аккумуляторе по дешевому тарифу, а среди недели будет поддерживать минимальную температуру, защищая дом от замерзания. Четыре цифровых датчика температуры можно использовать для управления по 12-ти каналам. Источник независимого питания восстановит работоспособность отопления после отключения сети 220.

1. ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ

.1 Техническое задание

Основной задачей курсовой работы является разработка устройства для управления микроклиматом. С возможным применением в качестве системы управления микроклиматом в теплице. Устройство должно обеспечивать выполнение следующих функций:

Основные функции устройства

Управление по таймеру:

Включение нагрузки в определенном промежутке времени

Управление нагрузками по определенным дням недели, дням в месяце, или по выбранным месяцам.

Управление по температуре (термостатирование):

Управление в режиме охладителя

Управление в режиме нагревателя

Будильник звук + свет(подсветка дисплея).

Количество подключаемых датчиков температуры: 32.

Энергонезависимые часы реального времени (полный календарь с учетом високосных лет).

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

Выходы:

- Оптоизолированный каскад для подключения силовых симисторов (опционально)

Логические выходы с максимальным током 10мА.

- Удаленное управление термостатом через СОМ - порт компьютера посредством специально разработанного ПО.

Возможность обновления внутреннего программного обеспечения новыми версиями

Индикация: 2-строчный 16 символьный LCD-дисплей с возможностью программного управления контрастностью и яркостью подсветки.

Звуковая индикация встроенным микро-динамиком.

.2 Анализ элементной базы

Для разработки данного устройства можно использовать следующие элементы элементной базы: Терморегулятор механический, аналоговый, цифровой, на МК. Таймер электромеханический, электронный. Рассмотрим виды терморегуляторов и их общее устройство.

Терморегулятор (термостат) - представляет собой автоматическое устройство и предназначен для точного поддержания температуры путём управления нагревательным или охладительным устройством объекта контроля.

Задаваемая пользователем установка и, выбранный при заказе термостата, алгоритм работы (нагрев или охлаждение) обеспечивают возможность управления нагревательными или охладительными установками.

Имеется встроенный датчик температуры.

Электронные терморегуляторы - имеют одно основное достоинство - высокий показатель определения и регулировки нагрева жилья. Они легко настраиваются и управляются подключенными к ним обогревателями. Состоит терморегулятор такого типа из:

определяющего нагрев воздуха датчика;

микропроцессора, обрабатывающего и передающего сигнал;

детали коммутации управления, которая в данном случае выполняет роль термореле.

Используют электронные терморегуляторы для комплектации общей отопительной системы промышленного здания и частного жилья, регулировки функционирования кондиционеров и климат контролей. Терморегуляторы такой конструкции зачастую входят в комплектацию системы «умный дом», в ней они следят не только за нагревом воздуха в доме, но и за количеством градусов в приборах, входящих в систему. Это необходимо для снижения вероятности образования пожара.

Электромеханические терморегуляторы

Электромеханические терморегуляторы по конструкции самые простые. Сердцем этого прибора является реле, оно осуществляет отключение и подключение приборов. Устройства такого типа устанавливаются в утюгах, электроплитках, плойках и других приборах для быта, которые меняют температуру своей поверхности или внутренних элементов.

Конструкция реле в этих приборах представляет собой группу контактов и двойную пластину из металла. При нагреве пластина меняет свое положение и размыкает контакты, это останавливает ход тока к пластине и спирали. При охлаждении пластина приходит в исходное положение и замыкает контакты. Данный цикл держит температуру на необходимом уровне.

Существует еще одна популярная разновидность механических терморегуляторов, они имеют немного иную конструкцию и принцип действия. Реле в данных приборах расширяется при воздействии высокой температуры. Данный терморегулятор устанавливают в нагревательных баках, масляных обогревателях. Реле в таком типе конструкции имеет форму цилиндра, заполненного чувствительной к повышению и понижению температуры субстанцией. При повышении температуры эта субстанция расширяется и размыкает контакты. Здесь присутствует специальный и сложный привод цепи. При охлаждении субстанция возвращается к исходному объему и контакты замыкаются.

Программируемые терморегуляторы

Программируемый или цифровой терморегулятор дает возможность достигать максимального комфорта.

Это наиболее совершенный вид оборудования, удобный в эксплуатации и практичный. Диапазон установочной температуры шире, чем у механических приборов и составляет 5-45 С. Это позволяет значительно увеличить сферу применения оборудования и уровень создаваемого им комфорта.

Основное отличие программируемого оборудования - возможность задать сложную отопительную программу, которая будет функционировать на протяжении нескольких дней или недель. При этом программа дает возможность задать различную последовательность смены температуры и контроля над ней на каждый день. Оборудован такой терморегулятор двумя датчиками, назначение первого - следить за нагревом помещения в целом, второго - за нагревом самого обогревателя. Программируемые приборы используют для оборудования систем «умный дом».

Выбирая, какой терморегулятор купить, нужно учитывать такие факторы:

условия внешнего климата;

качество теплоизоляции обогреваемого строения;

количество обогревателей в системе;

тип используемых приборов для обогрева.

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

Таймер - прибор производственно-технического, военного или бытового назначения, в заданный момент времени <https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BC%D0%B5%D0%BD%D1%82_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8> выдающий определённый сигнал, либо включающий - выключающий какое либо оборудование через своё устройство коммутации электроцепи.

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

Недостатки механических таймеров в следующем:

. Заданная программа постоянна для каждого дня.

. При отключении электроэнергии в сети, таймер сбивается на тот отрезок времени, сколько не было питания.

. Некоторые модели тикают , как механический будильник.

. чаще выходят из строя, перестают вращаться ( видимо изнашивается механизм шестерней)

Электронные таймеры отличаются друг от друга в основном дизайном внешней формы и парой функций. Одни имеют функцию перехода на летне-зимнее время, другие функцию реагирования на движение ( включаются при приближении к прибору включенному в таймер). Электронные таймеры имеют собственные аккумуляторы, не дающие сбиваться настроенной программе при отключении электроэнергии в сети. Как только питание вновь появляется, таймер работает по заданной программе.

Недостатки электронных таймеров:

. внутренние аккумуляторы не вечны, и когда-то наступит время их полной выработки. Если Вам не удастся приобрести новые и заменить, таймер можно выбрасывать.

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

Достоинства электронных таймеров:

. Программа может задаваться на каждый день своя. Например в течение рабочих дней включаться и выключаться приборы будут соответственно нашему графику занятости на работе ( учебе), а по выходным в другое время. Или вообще каждый день в разное время.

. Программа может выставляться на несколько дней. Например только на первую или вторую половину недели.

. Программа может выставляться через день.

. Программа может выставляться только на один любой день.

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

1.3 Анализ структурной схемы

Для осуществления заданных функций в устройства необходимо включить следующие элементы представленные на рисунке 1:

Микроконтроллер

Часы реального времени

Датчик влажности

Датчик температуры

COM- порт

Рисунок 1 - Структурная схема термостат

Описание структурной схемы:

- Напряжение питания, постоянное: 9…15 В.

Потребляемый ток, не более: 200 мА.

Количество подключаемых датчиков температуры: 4.

Количество каналов для управления нагрузкой: 4.

Наличие часов реального времени: есть, полный календарь.

Индикация: текстовая LCD 16*2.

Звуковая индикация: есть, микро-динамик.

Максимальное количество шагов программы: 32.

Диапазон температур термометра-терморегулятора: -55…+125 С.

Тип батареи резервного питания: литиевая (3 В)

1.5 Принципиальная схема

Рисунок 2 - Принципиальная схема

Описание принципиальной схемы:

Термостат построен на основе микроконтроллера Atmel Mega32. К портам ввода-вывода подключены: текстовый двух строчный индикатор, микросхема часов реального времени DS1307, драйвер уровней MAX232IN, оптосимисторы TR1…TR4. Стабилизатор напряжения выполнен на микросхеме LM7805. К выходам XS5-XS12 подключаются силовые симисторы. Блок клавиатуры выполнен в виде отдельной платы. Код нажатой клавиши декодируется аналогово-цифровым преобразователем (АЦП) контроллера. Кроме того АЦП контролирует состояние батареи резервного питания для часов. Стабилизатор напряжения выполнен на микросхеме LM7805. Термодатчики DS18B20 подключаются через разъем XS3 по протоколу 1-wire. Регулировка яркости подсветки осуществляется с помощью транзисторного ключа. С помощью миниатюрного динамика, подключенного через развязывающий конденсатор и гасящий резистор к порту контроллера, устройство может подавать звуковые сигналы.

Работоспособность схемы обеспечивается внутренней программой микроконтроллера. При старте программа производит анализ шины 1 -wire и инициализирует «зарегистрированные» термодатчики в 12 битный режим термопреобразования. Далее инициализируются все остальные блоки (текстовый индикатор, порт RS232, часовая микросхема). После инициализации система переходит в режим основного цикла. В этом режиме происходит постоянная обработка обновляемой информации от часов, от датчиков, а так же производится опрос состояния кнопок управления. Кроме того, постоянно работает процесс, отвечающий за управление по таймеру.

1.6 Ведомость применяемости

Позиция

Номинал

Примечание

Кол.

R1

220 Ом / 0,5Вт

Красный, красный, коричневый

1

R2, R6...R9

510 Ом

Зеленый, коричневый, коричневый

5

R3

300 Ом

Оранжевый, черный, коричневый

1

R4

150 Ом

Коричневый, зеленый, коричневый

1

R5

47 Ом

Желтый, фиолетовый, черный

1

R10...R13

2,2кОм / 0,25Вт

Красный, красный, красный

4

R14...R18, R20...R25

4,7 кОм или 5,1 кОм

Желтый, фиолетовый, красный или зелёный, коричневый, красный

11

R19

1 МОм

Коричневый, черный, зеленый

1

C1...C5, C7, C8, С10, C12,C13

0,1 мкФ

Керамический конденсатор Обозначение 104

10

C6

100мкФ/16..25B

Электролитический конденсатор (0611)

1

C9, C11, С14

47мкФ/16..25B

Электролитический конденсатор (0511)

3

U1

См. Табл. 2

ЖКИ - индикатор

1

U2

7805

Стабилизатор напряжения (ТО-220)

1

U3

MAX232IN

Драйвер уровней (корпус PDIP-16)

1

U4

ATMega32-16PI

Микроконтроллер (корпус PDIP-40)

1

U5

DS1307N

Микросхема часов (корпус PDIP-8)

1

BE1

HCM1212A

Мини-динамик

1

ZQ1

QRZ 0.032768 KX-38 PBF

Кварцевый резонатор

1

Q1

BD137-16

Транзистор NPN

1

TR1, TR4

MOC3052

Оптосимистор (корпус DIP-6)

4

B1

BAT/HOLD BAT/HOLD.

Держатель батареи CR2032

1


CR2032

Батарея

1


DS18B20, DS1820

Датчик температуры

4

K1...K7

TS-A6PS-130

Кнопка тактовая

7

XS1

DRB-9MA

Разъем на плату угловой

1

XS2

DJK-07D

Разъем питания

1

XS3

ST-111

Разъем для датчиков температуры

1


SOCKET SCL DIP-40x2,54

Панелька для микроконтроллера

1

X6-X9

ED500V-2

Клеммник винтовой

4


DJK-11D

Штекер питания

1


NP-107

Штекер «стерео»

1



Шлейф 10 жил

30см


А8036

Плата печатная: -основная 123х82мм  -клавиатуры 123х24мм

 1 1


2. Специальный раздел

терморегулятор микроконтроллер инициализация схема

2.1 Конструкция устройства

Блок управления собран на печатной плате из фольгированного стеклотекстолита толщиной 1 мм. Её размер 123х82мм . Следует устанавливать на плату в первую очередь следует те детали, выводы которых должны быть припаяны к печатным проводникам на ее верхней стороне. Необходимо хорошо залудить проводники на плате, все таки по ним протекает значительный импульсный ток.. Для удобства монтажа на плате показано расположение элементов.


2.2 Блок схема работы программы и подпрограмм


2.3 Описание работы блоков программы

Блок Инициализации микроконтроллера: Определение работоспособности микроконтроллера, запуск микроконтроллера.

Блок Старта программы, установка даты и времени: Запуск программы, установка часов реального времени.

Блок Подключение опроса: производится поиск всех датчиков на шине 1-wire. Предусмотрена возможность установки одного и того же датчика на несколько каналов управления.

Блок Включения нагрузки: включение нагрузки в определенном промежутке времени, по определенным дням недели, дням в месяце, или по выбранным месяцам.

2.4 Код программы

$regfile = "m32def.dat"

$crystal = 1000000

$hwstack = 32

$swstack = 10

$framesize = 40

'$sim

$lib "ds1307clock.lib" ' modified lib

$lib "lcd4busy.lib"

$lib "Double.lbx"

Config Lcd = 16 * 2 ' Определяем тип дисплея 16 знаков на 2 строки

Cursor Off Noblink ' Выключаем курсур на LCD

'Определяем константы

_lcdport = Portb ' Порт для работы LCD дисплея

Const _lcdddr = Ddrb_lcdin = Pinb_lcd_e = 0 ' pin для сигнала E LCD_lcd_rw = 1 ' pin для сигнала RW LCD_lcd_rs = 2 ' pin для сигнала RS LCDRepeatstart = 15Speed = 1

'Определяем scl и sda выводы для работы DS1307Sda = Portc.1Scl = Portc.0

'Определяем куда шина 1wire подключена1wire = Portd.7

'адреса ds1307Ds1307w = &HD0 ' Addresses of Ds1307 clock

Const Ds1307r = &HD1

' Константы коды клавиатуры

Const Key_enter = 0Key_arr_up = 1Key_arr_lf = 2Key_arr_rt = 3Key_arr_dn = 4Key_menu = 5Key_pwr = 6Key_no = 255Key_yes = 254Key_fast = 128

Const Channel = 1 'Канал АЦП к которому подключена клавиатураClock = User

' Запускаем АЦП микроконтроллера

Config Adc = Single , Prescaler = 8 , Reference = AvccAdc

'Декларируем функцииSub Findds18b20Function Gettemperature(byval Numds As Integer) As SingleSub Convallt ' Convert T on ALL sensorsFunction Decigrades(byval Sc(9) As Byte) As SingleFunction Getkey() As ByteFunction Readkeyboard() As ByteSub Lcd_print_cp(byval Txt As String)

'декларируем переменные

'Массив 8 * 8Dsidm(64) As Byte

Dim Dsid(8) As ByteDg As Integer 'DECIgrades, I call it, cause I have no space for commas on the display....Temperature As SingleL As IntegerB As IntegerSc(9) As Byte 'Scratchpad 0-8 72 bits incl CRC, explanations for DS18b20

'Sc(1) 'Temperature LSB

'Sc(2) 'Temperature MSB

'Sc(3) 'TH/user byte 1 also SRAM

'Sc(4) 'TL/user byte 2 also SRAM

'Sc(5) 'config also SRAM x R1 R0 1 1 1 1 1 - the r1 r0 are config for resolution - write FF to byte for 12 bit - others dont care

'Sc(6) 'res

'Sc(7) 'res

'Sc(8) 'res

'Sc(9) '8 CRC

'DALLAS DS18B20 ROM and scratchpad commands''''''''''''''''''''''''''1wwrite....

'&H 33 read rom - single sensor

'&H 55 match rom, followed by 64 bits

'&H CC skip rom

'&H EC alarm search - ongoining alarm >TH <TL

'&H BE read scratchpad

'&H 44 convert T

'begin Переменные для клавиатуры

Dim Key_old As Byte ' Код ранее нажатой клавиши

Dim Clockcounter As Integer ' СчётчикKey_delay_repeat As Integer ' Задержка повтораKey_delay_start_repeat As Integer ' Задержка запуска повтора

'end Перемненные для клавиатурыWeekday As Byte

Dim Dscount As ByteKeys As BytePulses As Word , Periods As Word ' Переменные для пищалки

Pulses = 130 : Periods = 20 ' устанавливаем кол - во импульсов и период их следования для пищалкиAlias Portd.5 ' Ссылка на порт динамика

Int0 Int0_int 'Инициализируем и запускаем перывание INT0

Enable InterruptsInt0 'включаем прерыввания

Clockcounter = 0

'''' Основной текст программы

'Cls

'Locate 1 , 1

'Lcd_print_cp "Привет"

'Lcd_print_cp "Всего датчиков"

'Waitms 1000

' Установка даты и времени в DS1307

'Time$ = "23:58:59" ' приваиваем время

'Date$ = "11-13-02" ' устанавливаем дату 13 november 2002

' Определяем количество датчиков и ищем их всех

Findds18b201 , 1_print_cp "Приветсвую Вас"2 , 1_print_cp "Датчиков:"2 , 11Hex(dscount)5000

Dim S As String * 16

' Основной бесконечный цикл программы

Do1 , 1"Date:" ; Date$"Time:" ; Time$1000

2 , 15= Readkeyboard()Keys = Key_no Then Lcd_print_cp " "Keys = Key_pwr Then Lcd_print_cp "PW"Keys = Key_arr_up Then Lcd_print_cp "UP"Keys = Key_arr_dn Then Lcd_print_cp "DN"Keys = Key_arr_lf Then Lcd_print_cp "LT"Keys = Key_arr_rt Then Lcd_print_cp "RT"Keys = Key_menu Then Lcd_print_cp "MU"Keys = Key_enter Then Lcd_print_cp "ET"

30' "Convert ALL T on the 1w-bus"200 : Waitus 200 : Waitus 200 : Waitus 200 'if you use 2-wire, could be reduced to 200us1 , 1_print_cp "1"1 , 10_print_cp "2"2 , 1_print_cp "3"2 , 10_print_cp "4"

1 , 3Dscount > 0 Then= Gettemperature(1)= Fusing(temperature , "#.#")S" ""---- "If

1 , 12Dscount > 1 Then= Gettemperature(2)= Fusing(temperature , "#.#")S" ""---- "If

2 , 3Dscount > 2 Then= Gettemperature(3)= Fusing(temperature , "#.#")S" ""---- "If

2 , 12Dscount > 3 Then= Gettemperature(4)= Fusing(temperature , "#.#")S" ""---- "If

4000

Loop

''''

'''' Далее пошли процедуры и функции

''''Findds18b20B1 As Integer L1 As Integer

'Определяем количесво подключенных датчиков

Dscount = 1wirecount()

'Ищем первый датчик(1) = 1wsearchfirst()1 = Memcopy(dsid(1) , Dsidm(1) , 8)

'Ищем остальные датчики

For L1 = 2 To Dscount(1) = 1wsearchnext()= L1 - 1= B1 * 8= B1 + 1= Memcopy(dsid(1) , Dsidm(b1) , 8)L

Sub

Gettemperature(byval Numds As Integer)B1 As Integer= 0= Numds - 1= B1 * 8= B1 + 1= Memcopy(dsidm(b1) , Dsid(1) , 8)

wverify Dsid(1)Err = 1 Then"Err " 'Err = 1 if something is wrongErr = 0 Then 'lcd " Sensor found"

wwrite &HBE(1) = 1wread(9) 'read bytes into arraySc(9) = Crc8(sc(1) , 8) Then= Decigrades(sc(9))IfIf

Function

'Makes the Dallas "Convert T" command on the 1w-bus configured in "Config 1wire = Portb. "

'WAIT 200-750 ms after issued, internal conversion time for the sensor''''''''''

'SKIPS ROM - so it makes the conversion on ALL sensors on the bus simultaniously

'When leaving this sub, NO sensor is selected, but ALL sensors has the actual

'temperature in their scratchpad ( within 750 ms )Convallt

wreset ' reset the bus

wwrite &HCC  ' skip rom

wwrite &H44 ' Convert TSub

'Makes a integer value of the first two bytes in scratchpad'''''''''''''

'Works on DS18 B 20 , observe "B". The R0 and R1 in Sc(5) tells you how many bits are accurateDecigrades(byval Sc(9) As Byte)U As Integer= 0= Makeint(sc(1) , Sc(2))= U

' Decigrades = Decigrades * 10= Decigrades / 16Function

' If you have DS1820 or DS18 S 20 , you can use this algo instead:

' Observe that DsId1(1) contains the info value of which sensor is used.

'(Decigrades(byval Sc(9) As Byte)Tmp As Byte , T As Integer , T1 As Integer

= Sc(1) And 1 ' 0.1C precisionTmp = 1 Then Decr Sc(1)= Makeint(sc(1) , Sc(2))

'Print Hex(t)

'Print T

= T * 50 'here we calculate the 1/10 precision like= T - 25 'DS18S20 data sheet= Sc(8) - Sc(7)= T1 * 100= T1 / Sc(8)= T + T1= T / 10

'As integer, this routine gives T*10, with 1/10 degree precisionFunction

')

'called from ds1307clock.lib:cstart ' Generate start codecwbyte Ds1307w ' send addresscwbyte 0 ' start address in 1307

cstart ' Generate start codecwbyte Ds1307r ' send addresscrbyte _sec , Ackcrbyte _min , Ack  ' MINUTEScrbyte _hour , Ack ' Hourscrbyte Weekday , Ack ' Day of Weekcrbyte _day , Ack ' Day of Monthcrbyte _month , Ack ' Month of Yearcrbyte _year , Nack ' Yearcstop

_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)

_day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)

:

_day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)cstart ' Generate start codecwbyte Ds1307w ' send addresscwbyte 4 ' starting address in 1307cwbyte _day ' Send Data to SECONDScwbyte _month ' MINUTEScwbyte _year ' Hourscstop

:

_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)cstart ' Generate start codecwbyte Ds1307w ' send addresscwbyte 0 ' starting address in 1307cwbyte _sec ' Send Data to SECONDScwbyte _min ' MINUTEScwbyte _hour ' Hours

I2cstop

'Считываем код нажатой кнопки

If= Keyp

Function

' Читаем данные с клавиатурыReadkeyboard() As ByteIfres As IntegerResult As ByteKey As Byte

= Getkey()Key <> Key_old Then_old = Key_delay_repeat = Clockcounter_delay_start_repeat = Key_delay_repeat

Key <> 255 Then Sound Speaker , Pulses , Periods= Key= ResultFunction

If

= Clockcounter - Key_delay_start_repeat

Ifres > Repeatstart Then= Clockcounter - Key_delay_repeatIfres > Speed Then

_delay_repeat = ClockcounterKey <> 255 Then Sound Speaker , Pulses , Periods

= Key Or 128= ResultFunction

IfIf

= 255

Readkeyboard = Result

Function

''' Функция выводит в заданную позицию руссифицированное сообщение

Sub Lcd_print_cp(byval Txt As String * 16)I As IntegerDlina As IntegerC As String * 1= Len(txt)Dlina > 16 Then Dlina = 16I = 1 To Dlina= Left(txt , I)= Right(c , 1)

Case C"А" : Lcd "A""Б" : Lcd " ""В" : Lcd "B""Г" : Lcd "Ў""Д" : Lcd "а""Е" : Lcd "E""Ё" : Lcd "E""Ж" : Lcd "Ј""З" : Lcd "¤""И" : Lcd "Ґ""Й" : Lcd "Ґ""К" : Lcd "K""Л" : Lcd "§""М" : Lcd "M""Н" : Lcd "H""О" : Lcd "O""П" : Lcd "Ё""Р" : Lcd "P""С" : Lcd "C""Т" : Lcd "T""У" : Lcd "©""Ф" : Lcd "Є""Х" : Lcd "X""Ц" : Lcd "б""Ч" : Lcd "«""Ш" : Lcd "¬""Щ" : Lcd "в""Ъ" : Lcd """Ы" : Lcd "®""Ь" : Lcd "b""Э" : Lcd "®""Ю" : Lcd "°""Я" : Lcd "±""а" : Lcd "a""б" : Lcd "І""в" : Lcd "і""г" : Lcd "ґ""д" : Lcd "г""е" : Lcd "e""ё" : Lcd "e""ж" : Lcd "¶""з" : Lcd "·""и" : Lcd "ё""й" : Lcd "ё""к" : Lcd "є""л" : Lcd "»""м" : Lcd "ј""н" : Lcd "Ѕ""о" : Lcd "o""п" : Lcd "ѕ""р" : Lcd "p""с" : Lcd "c""т" : Lcd "ї""у" : Lcd "y""ф" : Lcd "д""х" : Lcd "x""ц" : Lcd "е""ч" : Lcd "А""ш" : Lcd "Б""щ" : Lcd "ж""ъ" : Lcd "В""ы" : Lcd "Г""ь" : Lcd "Д""э" : Lcd "Е""ю" : Lcd "Ж""я" : Lcd "З"Else Lcd CSelect

Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''

''' Работа с прерываниями

'''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''_int: Clockcounter

Return

На основе этого устройства управления можно легко реализовать систему управления и контроля как у вас в квартире, так и на даче или же применить устройство в собственных разработках. В рамках этой статьи предлагается вариант использования 4-х канального микропроцессорного устройства для автоматизации вашего тепличного хозяйства.

Автоматизация вашей дачной теплицы

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

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

Для начала, обе собранные печатные платы устройства управления было бы разумным установить в корпус FB-04, который можно приобрести отдельно. В этих целях вам необходимо будет самостоятельно прорезать в нем несложные отверстия для индикатора, кнопок и разъемов. Платы крепятся в корпус винтами, которые входят в комплект корпуса FB-04. Общий вид печатных плат показан на Рис. 2

Рис 2.

Для удобства подключения питающего напряжения и датчиков температуры на печатной плате устройства управления предусмотрены разъемы XS2 и XS3 соответственно.

Когда блок управления собран и работоспособен, можно непосредственно приступить к построению самой системы управления теплицей.

Прежде всего, вам необходимо определить место для размещения блока управления (он показан на Рис. 1). Его расположение должно быть таким, чтобы обеспечить не только свободный обзор текстового индикатора, но и доступ к кнопкам управления.

Затем нужно правильно выбрать место установки термодатчика DS18B20. Именно от его в большей мере будет зависеть точность поддержания заданной температуры в теплице. Лучше всего датчик разместить подальше от стен. После того, как датчик надежно закреплен, его подключают к блоку управления шлейфом через разъем XS3. Как правильно это сделать, иллюстрирует Рис. 3

Рисунок 3. Подключение термодатчиков DS18B20 к блоку управления

Теперь можно к блоку управления подсоединить и обогревательное оборудование. Однако тут есть некоторая особенность, на которую вам обязательно нужно обратить внимание. Дело в том, что все силовые выходы устройства NM8036, подключенные к разъемным контактам XS5-XS12, рассчитаны на максимальный ток 1 А. Если суммарный потребляемый ток ваших тепличных обогревателей превосходит это значение, конструкцию устройства управления необходимо немного доработать.[2] Проще всего это сделать, если к используемым выходам XS5-XS12 подключить мощные силовые симисторы (в комплект набора NM8036 не входят) по схеме, приведенной на Рис. 4.

Рисунок 4. Способ подключения силовых симисторов

В схеме можно применять симисторы с током включения не более 1 А в пике. Ток постоянной нагрузки при этом не должен превышать 100 мА. Для такой цели хорошо подойдут симисторы MAC223-MAC224 или BT134-BT139 в зависимости от мощности подключаемо нагрузки (см. табл. 1). Если мощность нагрузки превышает 500 Вт, то симисторы требуется установить на радиатор, площадь которого должна обеспечить достаточный отвод тепла от корпуса прибора.

Таблица 1. Применение дополнительных симисторов для подключения мощной нагрузки

Максимальная мощность подключаемой нагрузки, кВт

Тип симистора

Максимальный ток симистора, А

0,80

BT134, BT136

4

1,80

BT137

8

2,50

BT138

12

3,50

BT139

16

5,50

MAC223

25

8,80

MAC224

40


Так как в устройстве реализована возможность установки одного и того же датчика на несколько каналов управления, можно подключить часть обогревателей к другим выходным каналам, используя дополнительные симисторы, что даст повышение надежности работы силовой части конструкции за счет перераспределения суммарного тока нагрузки по другим каналам устройства управления. На этом установку «железа» для вашей системы управления теплицей можно считать оконченной. Но для нормальной работы термостата этого пока недостаточно. Его еще необходимо запрограммировать, иными словами, проделать ряд действий, предписывающих микропроцессорному устройству термостата, как действовать при определенных условиях и по какому алгоритму. Эти действия представляют собой, своего рода, «обучение» нашего «железа».

Убедившись, что все подключения сделаны верно, подайте напряжение питания на схему устройства управления через гнездо XS2. На индикаторе правильно настроенного блока управления вы должны будете увидеть поочередное переключение между режимами вывода времени (с полной датой) и выводом температур на все 4 канала. Оба режима показаны на Рис. 5

 

Рисунок 5. Отображение информации на экране блока управления

Начать программировать термостат следует, зайдя в меню блока управления. Для этого вам нужно нажать на кнопку «Меню». При этом становятся доступными следующие режимы: «Установка часов», «Программа», «Поиск датчиков», «Параметры», «Подсветка» и «Контрастность». Навигация осуществляется клавишами «вверх»/«вниз», а клавиша «ввод» позволяет изменять и запоминать соответствующие параметры для данного пункта меню. На Рис. 6. показана индикация этих режимов:

 

 

Рисунок 6. Индикация режимов работы устройства управления

«Обучение» термостата начинается с предварительной установки текущего времени, для чего вам необходимо зайти в режим «Установка часов». Затем можно перейти и к непосредственной инициализации (обнаружению) температурного датчика DS18B20. С этой целью вам следует выбрать режим «Поиск датчиков». При входе в данное подменю происходит задержка на несколько секунд, поскольку микроконтроллер производит поиск всех датчиков, подключенных к шине.

Если вы правильно подключили термодатчик DS18B20 к блоку управления, то датчик будет найден устройством, а на экране индикатора появится информация о нем:

Рисунок 7. Отображение информации на экране устройства управления о текущем состоянии температурного датчика

Далее стрелками «влево»/«вправо» производится выбор выходного канала, а стрелками «вверх»/«вниз» производится выбор термодатчика для данного канала. Нажатием на «ввод» вы осуществляете запоминание определенного датчика для выбранного канала. Повторное нажатие «ввод» позволяет вам удалить настройки датчика из памяти на данный канал. Как уже было упомянуто выше, при программировании датчиков предусмотрена возможность установки одного и того же датчика на несколько выходных каналов управления.

Для удобства пользователя в 4-х канальном микропроцессорном устройстве управления организована энергонезависимая память, позволяющая сохранять все настройки даже при отключении питания на длительное время. Кроме того, при отключении датчиков или подключении новых датчиков не будет происходить смещение нумерации и «путаница», так как их запоминание и присвоение к каналам происходит на уровне серийных номеров.

После определения термодатчика и программирования его на работу по выбранному вами каналу, остается задать необходимые условия работы термостата, то есть, научить его работать так, как вам нужно. Для этого в основном меню вам надо зайти в подменю «Программа» (см. Рис. 6). На экране индикатора появится примерно следующее:



Рисунок 8. Экран индикатора устройства управления в режиме «Программа»

При входе в это меню стрелками «вверх»/«вниз» производится выбор канала программы, а при нажатии на кнопку «ввод» происходит вход в режим установки выбранной записи программы управления.

При первом «вводе» происходит вход в установку времени включения нагрузки, а при следующем - переход на установку отключения нагрузки. Этот режим в данном случае для нас не представляет интереса, поскольку включение-выключение нагрузки (тепличных нагревателей) происходит только в зависимости от температуры.

При последующем нажатии на кнопку «ввод» вам нужно выбрать номер канала управления, а также один из четырех режимов (охладитель/нагреватель/без нагрузки/будильник) и установка температур на включение и отключение нагрузки. Выбираем режим «Нагреватель» (на экране появляется кружок) и выставляем максимальную и минимальную температуры. Интервал между этими двумя значениями и будет являться заданным оптимальным диапазоном температур, который устройство управления будет выдерживать внутри теплицы с высокой точностью.

Последним шагом программирования устройства управления является установка времени действия режима термостатирования. Для этого достаточно выставить время действия с 2000 по 2099 год. Система контроля температуры в вашей теплице настроена и готова к работе.

Возможные варианты модернизации системы контроля температуры

Помимо основной функции, такой, как поддержание оптимальной температуры, можно без труда заставить устройство управления NM8036 обеспечивать полив произрастающих в теплице культур строго в соответствии с заданным вами графиком. Для этого, прежде всего, вам будет необходимо выбрать один из свободных каналов управления, а затем «обучить» устройство управлять подключенной к выбранному каналу нагрузкой, в качестве которой может быть электромагнитный клапан, отвечающий за подачу воды в систему полива.

Чтобы реализовать вышесказанное, потребуется зайти в меню выбора режимов, нажав на кнопку «Меню». Вам откроется уже знакомая картинка (см. Рис. 6). Выбирайте кнопками «вверх»/«вниз» режим программирования, после чего жмите на кнопку «ввод». На индикаторе появляется картинка, также знакомая вам (Рис. 8). Теперь можно непосредственно приступить к программированию таймера, который будет управлять клапаном подачи воды.

С помощью кнопок «вверх»/«вниз» вам потребуется найти свободный канал, к которому вы в дальнейшем подключите клапан и нажать на кнопку «ввод». Номер канала запоминается в памяти устройства.

Далее необходимо ввести время старта, например, 14:00:00, а затем, после повторного нажатия на «ввод», время останова 14:30:00. Далее устанавливаются дата, месяц и год. Дальнейшее нажатие на «ввод» позволит вам выбрать типа управления. В этом пункте меню устанавливаем символ «крестик» и номер канала, к примеру, «4», после чего снова жмем «ввод». Появляется меню срабатывания по периоду. Поскольку полив в теплице нужно производить либо каждый день, либо по строго определенным дням на неделе, выберите периодичность срабатывания таймера: «по определенным дням недели» и отметьте те дни, когда должен осуществляться полив. Чтобы возвратиться в предыдущее меню, вам следует нажать клавишу «Меню».

Итак, вы запрограммировали устройство управления на периодический полив по заданным дням недели с 14-00 ч. До 14-30 ч. Остается лишь подключить электромагнитный клапан к выбранному вами при программировании каналу управления. Система «Термостат - автоматический полив» готова к работе!

И последний момент. Устройство управления NM8036, как вы уже, наверно, поняли, изучив его технические характеристики, приведенные в начале этой статьи, имеет возможность подключения к персональному компьютеру посредством разъема XS1, расположенным на основной плате, через последовательный СОМ-порт ПК. Такая особенность может успешно использоваться вами для контроля за работой устройства управления на расстоянии. В целях реализации подобной идеи вам потребуется спаять кабель связи. Приобретите в любом радиомагазине две розетки типа DB9F и изготовьте кабель связи необходимой длины. Схема распайки кабеля приведена на Рис. 9.

Рисунок 9. Способ распайки соединительного кабеля с компьютером

Чтобы заставить компьютер «увидеть» блок управления, вам потребуется специальное программное обеспечение, которое необходимо установить на винчестер ПК.

Если блок управления NM8036 подключен к СОМ-порту компьютера без ошибок, а необходимое программное обеспечение правильно установлено и запущено, на экране ПК вы сможете наблюдать за работой системы «термостат - автоматический полив» и, если нужно, изменять необходимые настройки устройства управления.

При использовании 4-х канального микропроцессорного устройства управления очень важным может оказаться то, что оно поддерживает полный календарь, что позволяет управлять нагрузками на времена до нескольких лет с точностью включения и отключения +/-1секунда. Разрешающая способность измерения температуры устройством составляет 0,1 градуса Цельсия, а точность соответствует заявленной точности на датчики Dallas и равна 0,5 градуса Цельсия.

Заключение

В данной курсовой работе был разработан таймер термостат на микроконтроллере. С возможным применением в качестве системы управления отоплением дачи, дома, а также различными электроприборами. Это термостат, таймер, АЦП, часы реального времени. Модуль позволяет поддерживать температуру, которая вам нужна именно в этот момент времени и день недели.

Приложение

ATmega32

Характеристики:

Высокопроизводительные, мало потребляющие AVR 8- битные микроконтроллеры

Развитая RISC архитектура:

131 исполняемых команд, большинство за один машинный такт

32 рабочих регистра общего назначения

полностью статический режим работы

производительность до 16 MIPS при 16 МГц

встроенный 2-х тактовый умножитель

Энергонезависимая память программ и данных

32К байт внутрисистемно самопрограммируемой FLASH памяти с количеством циклов перепрограммирования до10 000.

Опционно загрузочная область памяти с независимыми ключевыми битами, внутрисистемное программирование встроенной загрузочной программой, правильное чтение в процессе записи.

1024 байт EEPROM с допустимым количеством циклов стирания записи до 100 000.

2К байт внутренней SRAM

программируемый ключ защиты программ

·              JTAG (IEEE1149.1 совместимый) интерфейс

- Сканирование памяти в соответствии с JTAG стандартом

Встроенная поддержка отладчика

Программирование FLASH, EEPROM, охранных и ключевых бит через JTAG интерфейс

·              Периферийные функции

- два 8-битных таймера/счётчика с программируемым предделителем и режимом сравнения

один 16-битный таймер/счётчик с программируемым предделителем, режимом сравнения и захвата

счётчик реального времени с программируемым генератором

четыре ШИМ генератора

8-и канальный, 10-и битный АЦП

байт- ориентированный, двухпроводный интерфейс

программируемый USART

Master/Slave SPI последовательный интерфейс

Программируемыи Watchdog таймер с программируемым генератором

- Встроенный аналоговый компаратор

·              Специальные функции

 - Reset по включению питания и выключение при снижении напряжения питания

Внутренний калиброванный RC генератор

Внешние и внутренние источники прерывания

Шесть экономичных режимов: Idle, подавления шумов АЦП, экономичный, режим Выкл. , режим ожидания и режим расширенного ожидания.

·              32 программируемых вывода вход-выход и 1 вход

·              40 выводной корпус PDIP, 44 выводной корпус TQFP, и 44 контактный MLF

Напряжение питания:

2.7 В до 5.5 В для ATmega32L

4.5 В до 5.5 В для Atmega32

·              Тактовая частота:

0-8 МГц Atmega32L

0-16 МГц Atmega32

Расположение выводов



DS 1307

Модуль часы на чипе DS1307, запрограммирован на: секунды, минуты, часы, год ( с учетом високосных лет). Календарь до 2100 года.

Характеристики:

56 байт энергонезависимой памяти (тип памяти RAM.);

рабочее напряжение от 4.5 до 5.5 Вольт DC;

в режиме работы от батареи резервного питания энергопотребление около 500nA;

автоматическое определение источника питания;

двухпроводной последовательный интерфейс ;

тип интерфейса: Serial, I2C;

рабочая температура от - 40 до + 85℃;

кристалл 32.768 кГц;

В комплекте : модуль часы, батарейка.

Размер: 23 х 14 мм

Вес: до 15 гр.


Характеристики MAX232

Количество приемо/передатчиков

2Dr/2Re <#"864642.files/image024.gif">

LM7805 Характеристики

Мин. входное напряжение, В

7

Макс. входное напряжение, В

20 <http://www.platan.ru/cgi-bin/qweryv.pl/0w900066.html?parametr_2_1_2408=20&parametr_2_2_2408=20&show_param=0>

Выходное напряжение, В

<http://www.platan.ru/cgi-bin/qweryv.pl/0w900066.html?parametr_1_0_2409=5&show_param=0>

Полярность включения

положительная

Номин. выходной ток, мА

<http://www.platan.ru/cgi-bin/qweryv.pl/0w900066.html?parametr_2_1_2410=1&parametr_2_2_2410=1&show_param=0>

Падение напряжения вх/вых, В

2

Число регуляторов в корпусе

1

Точность, %

2

Рабочая температура

-40...+125

Корпус

TO220

Производитель

Fairchild


MOC 3052 Характеристики

Количество каналов

<http://www.platan.ru/cgi-bin/qweryv.pl/0w21001.html?parametr_2_0_668=1&show_param=0>

Постоянное прямое входное напряжение Uвх.,В

1.15 <http://www.platan.ru/cgi-bin/qweryv.pl/0w21001.html?parametr_2_1_669=1.15&parametr_2_2_669=1.15&show_param=0>

при входном токе Iвх.,мА

10 <http://www.platan.ru/cgi-bin/qweryv.pl/0w21001.html?parametr_2_1_670=10&parametr_2_2_670=10&show_param=0>

Максимальный входной ток Iвх.макс.,мА

60

Максимальный импульсный входной ток Iвх.имп.макс.,мА

-

Максимальное входное обратное напряжение Uвх.обр.макс.,В

-

Выходной каскад

симистор

Коеффициент передачи тока CTR,%, макс.

-

при входном токе Iвх.,мА

-

Максимальный выходной ток Iвых.макс.мА

-

Максимальное выходное обратное напряжение Uвых.обр.макс.,В

-

Максимальное выходное коммутируемое напряжение Uвых.ком.макс.,В

-

Время нарастания выходного сигнала tнр.,мкс

-

Время спада выходного сигнала tсп.,мкс

-

Сопротивление изоляции между входной и выходной цепями Rиз,ГОм

-

Максимальное напряжение изоляции,В

7500

Диапазон рабочих температур, оС

-40...85

Корпус

PDIP6

Производитель

Fairchild /подразделение National Seniconductor/


Похожие работы на - Микроклимат в теплице

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!