close

Вход

Забыли?

вход по аккаунту

Губанов Павел Сергеевич. Разработка программного обеспечения системы автоматизированного управления микроклиматом в теплице

код для вставки
АННОТАЦИЯ
ВКР 93 с., 40 рис., 12 источников, 2 прил.
СИСТЕМА
МИКРОКЛИМАТ,
АВТОМАТИЗИРОВАННОГО
МИКРОКОНТРОЛЛЕР,
КОНТРОЛЬ
УПРАВЛЕНИЯ,
ПАРАМЕТРОВ,
Выпускная квалификационная работа посвящена разработке программного
обеспечения системы автоматизированного управления микроклиматом в теплице.
В первой главе проведён анализ существующих подходов к построению
системы управления микроклиматом в теплице. Определены требования к
разрабатываемой системе.
Во второй главе были выбраны методы проектирования системы, проведена
разработка структурной схемы системы управления, выбраны микроконтроллер,
плата для него, а также подобраны датчики для построения системы и
разработаны принципиальные схемы их подключения.
В третьей главе представлены разработанные структура и функции системы.
Были разработаны алгоритмы работы системы, спроектирована структура
интерфейса взаимодействия с пользователем.
В четвертой главе приведены особенности реализации прототипа системы
управления микроклиматом в теплице. Был проведён обзор подключаемых
библиотек.
4
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
6
1 АНАЛИЗ СУЩЕСТВУЮЩИХ ПОДХОДОВ К ПОСТРОЕНИЮ СИСТЕМЫ
УПРАВЛЕНИЯ МИКРОКЛИМАТОМ В ТЕПЛИЦЕ
8
1.1 Характеристики микроклимата в тепличном хозяйстве
8
1.1.1 Управление температурой
8
1.1.2 Световой режим
10
1.1.3 Водный режим
10
1.2 Анализ существующих методов построения системы управления
микроклиматом в теплице
11
1.3 Обзор систем управления микроклиматом в теплице
13
1.4 Разработка требований к системе
19
2 ПРОЕКТИРОВАНИЕ СИСТЕМЫ УПРАВЛЕНИЯ МИКРОКЛИМАТОМ
ИНДИВИДУАЛЬНОЙ ТЕПЛИЦЫ
21
2.1 Разработка структурной схемы системы управления
21
2.2 Выбор микроконтроллера
24
2.3 Выбор платы для микроконтроллера
28
2.4 Подбор датчиков для построения системы и разработка принципиальных
схем их подключения
30
2.4.1 Датчик температуры
30
2.4.2 Датчик освещенности
34
2.4.2 Датчик влажности почвы
35
2.4.3 Датчик уровня воды
37
2.4.4 Датчик положения форточки
39
2.4.5 Датчик скорости ветра
39
2.5 Выбор исполнительных механизмов и разработка принципиальных схем их
подключения
40
2.5.1 Подключение исполнительных механизмов к микроконтроллеру
40
2.5.2 Выбор исполнительного механизма для управления форточкой
46
5
2.6 Выбор элементов панели управления и разработка принципиальных схем их
подключения
48
2.7 Разработка принципиальной схемы
52
3 РАЗРАБОТКА СТРУКТУРЫ И ФУНКЦИЙ СИСТЕМЫ
55
3.1 Разработка структуры системы
55
3.2 Разработка алгоритмов работы системы
56
3.5 Проектирование структуры интерфейса взаимодействия с пользователем
65
4 РЕАЛИЗАЦИЯ ПРОТОТИПА СИСТЕМЫ УПРАВЛЕНИЯ
МИКРОКЛИМАТОМ В ТЕПЛИЦЕ
69
4.1 Выбор среды программирования
69
ЗАКЛЮЧЕНИЕ
81
СПИСОК ЛИТЕРАТУРЫ
82
ПРИЛОЖЕНИЕ А – ПРОГРАММНЫЙ КОД МОДУЛЯ УПРАВЛЕНИЯ
ДАТЧИКОМ ТЕМПЕРАТУРЫ DS81B20
84
ПРИЛОЖЕНИЕ Б – ПРОГРАММНЫЙ КОД МОДУЛЯ УПРАВЛЕНИЯ
КНОПКАМИ - BUTTON
88
УДОСТОВЕРЯЮЩИЙ ЛИСТ
91
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА ДОКУМЕНТА НА
ЭЛЕКТРОННОМ НОСИТЕЛЕ
92
6
ВВЕДЕНИЕ
Научные исследования показывают, что норма употребления человеком
овощей в течение всего года составляет 130-150 кг, картофеля – 120 кг, причем
потребление должно быть равномерным. В России климатические условия на
всей ее территории непригодны для круглогодичного выращивания овощей в
открытом грунте. Из анализа можно сделать вывод, что на начало года
приходится менее 10% овощей, с середины лета до осени – более 90% огурцов и
70% томатов. Для равномерного обеспечения круглогодичного потребления
населением овощей в объеме 25% от всей потребляемой пищи необходимо их
выращивать в условиях защищенного грунта (теплицах, парниках, утепленном
грунте и т. п.).
Для
этого
необходимо
использовать
совершенные
и
технически
оснащенные сооружения – теплицы. Используя современные технологии для
выращивания растений в теплицах, можно добиться круглогодичного наличия
овощей. Основным отличием теплиц от парников является то, что в них работы по
выращиванию овощей ведутся внутри. Теплицы подходят для выращивать ранних
и внесезонных овощей, рассады для открытого и закрытого грунта. По масштабу
теплицы могут быть как большими промышленными сооружениями, так
и
небольшими для использования в частных хозяйствах. Вне зависимости от
размера неизменными остаются функции, которые необходимо осуществлять для
успешного ухода за теплицей: осуществление полива, поддержание нужной
температуры, уровня освещенности и т.д.
Микроклимат теплицы напрямую влияет на урожайность выращиваемых
культур. Условия внутри теплицы должны быть сбалансированными по всем
параметрам: влажность, состав воздуха, температура. Поддержание микроклимата
в ручном режиме достаточно трудоемкая задача, автоматизация данной задачи
позволяет значительно облегчить труд по культивированию растений. В случае
автоматизации остается только контролировать такие параметры, как наличие
электроэнергии в сети и воды в емкости для полива.
7
В
частном
применении
автоматизированная
теплица
становится
востребованной в том случае, если владелец теплицы не хочет тратить много
времени на уход за растениями, а также не имеет для этого возможности в случае
длительного отсутствия — командировок, отпуска и т.п.
В коммерческом применении такая теплица экономически целесообразна,
поскольку высвобождает человеческий труд на решение других задач.
Актуальность темы исследования определяется высоким темпами развития
автоматизированных систем управления и наличием большого количества
устройств, для их реализации.
Целью работы является разработка системы управления микроклиматом
теплицы в личном подсобном хозяйстве.
Для достижения данной цели необходимо решить ряд задач:

провести
анализ
имеющихся
методов
построения
системы
автоматического управления в теплицах;

выбрать аппаратные составляющие для построения системы;

выбрать средства и среду разработки программного обеспечения;

разработать алгоритмы управления спроектированной системы;

реализовать разработанные алгоритмы.
8
1 АНАЛИЗ СУЩЕСТВУЮЩИХ ПОДХОДОВ К ПОСТРОЕНИЮ
СИСТЕМЫ УПРАВЛЕНИЯ МИКРОКЛИМАТОМ В ТЕПЛИЦЕ
Автоматизация функций теплицы, позволяющая в течение длительного
времени обходиться без вмешательства человека, значительно упрощает уход за
культурными растениями. К функциям автоматизированной теплицы относится:
осуществление
автоматического
естественной
вентиляции,
естественное
освещение.
полива,
обогрев
установка
воздуха
Автоматизация
и
грунта,
позволяет
принудительной
и
искусственное
и
осуществлять
данные
функции без вмешательства или с минимальным вмешательством и контролем со
стороны человека.
Характеристики микроклимата в тепличном хозяйстве
Хорошего развития и плодоношения культур можно добиться только при
оптимальных значениях параметров микроклимата теплиц.
Под микроклиматом принято понимать систему метеорологических условий
в помещении. Для теплиц важным являются три основных параметра: влажность
почвы, температура воздуха и степень освещенности внутреннего пространства.
Автоматически контролируя выше обозначенные параметры (температуру,
скорость ветра и освещенность и др.) и соответствующие изменения внутренних
параметров в теплице, можно поддерживать оптимальный микроклимат.
Управление температурой
В естественных условиях существует равновесие между поступающей от
солнца теплотой и ее потерей. В теплице же возможно возникновения, так
называемого, «парникового эффекта» из-за задержки части теплоты, отраженной
от почвы, ограждающей конструкцией теплицы. Равновесие, конечно, наступает.
Только важным становится, чтобы этот момент настал при комфортной
9
температуре для растения. Также необходимо помнить, что температура растения
может отличаться от температуры почвы и окружающего воздуха.
Регламентация необходима не только для температуры окружающего
воздуха, но и для скорости его изменения, т.к. крупные части растения
прогреваются медленнее, из-за этого на них возможно образование конденсата,
приводящего к заболеваниям растений.
Система управления микроклиматом должна решать задачу обеспечения
условий для максимального протекания фотосинтеза, который определяется
температурой, т.к. высокие показатели температуры способствуют тому, что
дыхание
(обратный
фотосинтезу
процесс)
начинает
преобладать
над
фотосинтезом. В тоже время оптимальное значение внутренней температуры
определяется видом и фазой развития растения.
Значения температуры должны возрастать при увеличении освещенности. В
случае недостатка освещенности при высокой температуре (например, зимой)
наступает дефицит углеводов и истощение растений.
Для теплолюбивых культур (томат, огурец, баклажан, перец) оптимальная
температура воздуха при солнечной погоде равна 24±4°С, в пасмурную погоду
22°С, ночью 15-20°С, для умеренно требовательных к теплоте культур (редис,
салат, сельдерей, укроп и т. п.) – 16±4°С. Для первых культур оптимальным
значением среднесуточной температуры почвы является 22-26°С, для вторых – на
3-4°С ниже. Для прорастания семян всех культур оптимальной является
температура почвы на уровне 20-25°С, а после появления всходов – 18-20 °С для
теплолюбивых и 6-8 °С для умеренно требовательных к теплоте растений.
В культивационных сооружениях тепловой режим поддерживается при
помощи технических средств обогрева и вентиляции.
Поддержание температурного режима в теплый период года в теплице
осуществляется с помощью системы естественной вентиляции, образованной
многочисленными поворотными форточками (фрамугами), приводимыми в
движение специальными исполнительными механизмами.
10
В темное время суток в условиях отсутствия фотосинтеза оптимальным
является понижение температуры на 4...6°С.
В светлое время суток происходит корректировка температуры в
зависимости от уровня естественной освещенности.
В современных системах управления вентиляцией теплиц применяют
устройства защиты, закрывающие форточки при ураганной скорости ветра.
В холодное время года поддержание требуемой температуры в теплице
осуществляется системой обогрева. Наиболее часто применяются следующие
методы обогрева: водяной, калориферный
или комбинированный обогревы.
Комбинированный подход предусматривает в качестве основного обогрева
греющие регистры, а в качестве дополнительного – калориферы. От калориферов
теплый воздух подается по воздуховодам и распределяется вентиляционной
системой по всей теплице. Малая инерционность калориферного обогрева
позволяет осуществлять управление температурой воздуха с высокой точностью.
1.1.2 Световой режим
В летнее время года отсутствует недостаток солнечных лучей, условия для
роста растений очень благоприятные. В остальные сезоны существует острый
недостаток света, поэтому необходимо правильно организовать освещение в
теплице.
Искусственное освещение, применяемое в теплицах, позволяет устранить
проблему
зависимости
количества
света
получаемого
растениями
от
местоположения теплицы, кроме того удлиняется сезон выращивания растений.
Применение искусственного освещения целесообразно:
 для выращивания рассады или длительного облучения растений в
теплицах в зимне-весенний период при недостатке естественного облучения;
 в качестве основного источника средства освещения при полной
светокультуре растений в помещениях без естественного света.
11
Водный режим
Следующий параметр, влияющий на урожайность в теплицах, это
влажность почвы и воздуха.
Влажность почвы должна поддерживаться на уровне 80-90%. Для рассады
баклажанов и огурцов необходимо поддерживать влажность воздуха около 70%,
для перцев и томатов – 60%, салата и капусты – 65%. Влажность воздуха для
баклажанов и огурцов в послерассадный период должна составлять 90%, перца и
томата – 60%, капуста и салата – 80 %.
Управлять
влажностью воздуха и почвы можно с помощью различных
устройств орошения (капельный полив, полив из шлангов, дождевание,
подпочвенный
полив,).
При
поливе
также
необходимо
поддерживать
оптимальную температуру воды совпадающую с температурой почвы и воздуха в
теплице (20 - 25°С).
1.2 Анализ существующих методов построения системы управления
микроклиматом в теплице
Создание автоматической теплицы может осуществляться по нескольким
путям развития. При этом определяющими путь развития факторами являются:
 параметры конструкции теплицы;
 требуемые условия для эффективного роста и высокой урожайности
растений;
 наличие электричества на участке;
 доступные финансовые возможности.
Автоматика для теплиц может быть установлена тремя способами:
электрический, гидравлический и биметаллический. Рассмотрим их достоинства и
недостатки, а также особенности.
Для использования электрического подключения необходимо иметь
возможностью присоединения оборудования к сети 220 В и ниже, а также
выполнения правильной и безопасной электрической разводки. Возможно
12
использование аккумулятора, при этом недостатком является необходимость его
периодической зарядки. Положительной чертой является высокая точность
обработки и возможность глубокой степени автономности.
Таким образом, с помощью комплектующих элементов системы возможно
изменять основные параметры теплицы:
 обогрев;
 вентиляцию;
 освещение;
 полив.
Контроль изменения параметров производится при помощи специально
предназначенных и установленных в теплице датчиков. Изменение параметров
осуществляется с помощью подачи управляющих команд на исполнительные
элементы системы. Управляющие команды устанавливаются садоводом путем
задания основных значений микроклимата в теплице и ввода этих значений в
специальный блок управления, так называемый контроллер.
Блок управления такого типа системы позволяет сохранять несколько
возможных программ. Исполнительными элементами в этом случае являются
двигатель насоса полива, двигатель насоса вентиляции и электронагреватель.
К недостаткам использования такого типа систем относится зависимость от
бесперебойной подачи электроэнергии. В случае отсутствия электроэнергии
автоматизированная система перестает работать.
Ко второму типу оборудования автоматизации относится гидравлическая
система. Это наиболее
распространенный вариант оборудования теплицы.
Гидравлическая система не зависит от электроэнергии и работает при изменении
значений давления или температуры. Применение этого рода систем позволяет
автоматизировать процесс проветривания теплицы, полив почвы.
Третий тип оборудования автоматизации позволяет выполнить монтаж
автономного проветривания – автоматизировать работу форточек для теплиц. За
основу берется биметаллическая пластина, изготовленная из двух материалов с
разной степенью температурного расширения. При нагревании происходит
13
деформация пластины на изгиб одной из частей, которая вызывает открывание
форточки.
Проведенный анализ позволяет сделать вывод, что предпочтительнее
использовать электрический способ автоматизации, поскольку он дает больше
всего возможностей для управления микроклиматом. Электрифицированная
система позволяет использовать устройства электроники. На сегодняшний день
использование электроники в садоводстве не является дорогим удовольствием,
поэтому оборудование для системы можно приобрести по сравнительно
невысокой цене.
Обзор систем управления микроклиматом в теплице
На рынке присутствует множество систем, которые позволяют отслеживать,
регулировать и поддерживать на заданном уровне параметрические значения
микроклимата. Одни из них поддерживают по одному параметру микроклимата,
некоторые несколько или сразу все. Рассмотрим достоинства и недостатки
некоторых из таких систем:
1)
Системы управления микроклиматом «Галькон».
Системы
«Галькон»
обладают
современным
микропроцессорным
контроллером, точными и надежными датчиками, специальными технологиями,
заложенными в программу.
Контроллеры системы «Галькон» являются взаимно совместимыми друг с
другом, основываются на одном и том же ПО и могут быть объединены в сеть.
Контроллер позволяет одновременно управлять четырьмя теплицами, имеющими
множество надежных и точных датчиков: датчики температуры воды, воздуха,
почвы, относительной влажности воздуха (психрометрический или электронный),
скорости и направления ветра, датчик солнечной радиации, концентрации
углекислого газа и осадков.
2)
Система «Агротерм».
Разработана для использования в промышленных теплицах, позволяет
контролировать и управлять множеством параметров микроклимата (температура,
14
влажность, атмосферное и водяное давление, освещенность, концентрация
углекислого
газа,
ветер).
Главный
интеллектуальный
узел
системы
–
персональный компьютер. Управлять системой может даже не имеющий
специальных навыков в работе с компьютером персонал. Функционал системы:
 вывод информации в виде сводной таблицы на экран компьютера о
температуре, положениях клапанов и др.;
 возможность построения графиков изменения температуры;
 возможность архивного хранения и воспроизведения данных за
несколько лет;
 возможность вывода на печать данных о температурных режимах;
 возможность автоматического поддержания заданной температуры и
влажности с помощью алгоритмов автоматического регулирования;
 возможность
контроля состояния технологического оборудования
(включено/выключено, температура обмоток двигателей, уровень вибрации и др.);
 возможность выбора режима работы (зимний, летний, осенне-весенний
и дневной/ночной);
 возможность управления приводами фрамуг, в т.ч. в зависимости от
направления ветра;
 возможность информирования оператора о выходе контролируемых
параметров за допустимые пределы;
 возможность записи аварийных ситуаций в файл;
 обеспечение
периодической
калибровки
измерительных
каналов
системы и внесения поправок в алгоритм ее функционирования пользователем, не
имеющим специальных знаний по работе с компьютером.
К системе «Агротерм» возможно осуществить подключение любых видов
датчиков:
 аналоговые датчики температуры (воздуха внутри и снаружи теплицы,
почвы, воды в контурах отопления, кровли, питательного раствора и др.):
 цифровые датчики температуры;
15
 цифровые датчики влажности;
 датчики давления (атмосферного и воды в контурах отопления);
 скорости и направления ветра;
 датчики атмосферного давления;
 датчики концентрации углекислого газа;
 датчики освещенности.
Требуемый функционал определяется заказчиком.
3) Система управления микроклиматом FC-403-65 от компании НПФ
«ФИТО».
В систему FC-403-65 заложен гибкий функционал по управлению
микроклиматом в теплице, осуществляемый путем программного определения
параметров
микроклимата
и
стратегии
управления
исполнительными
механизмами на сутки.
Управление ведется тремя параметрами: температура и влажность воздуха,
концентрация
углекислого
газа.
Управление
данными
параметрами
осуществляется благодаря дополнительному оборудованию, установленному в
теплице
системы:
отопления,
вентилирования,
управления
форточками,
управления рециркуляцией воздуха, охлаждения и доувлажнения.
Благодаря установленным в теплице датчикам постоянно измеряется
температура воздуха в нескольких точках, влажность воздуха, содержание
углекислого газа и других параметров в зависимости от комплектации датчиками.
Кроме этого система позволяет измерять внешние метеорологические параметры:
температура
воздуха,
интенсивность
солнечного
излучения,
скорость
и
направление ветра.
На основе заданных и измеренных параметров микроклимата, а также
учитывая стратегию управления исполнительными системами, управляющий
контроллер реализует алгоритмы управления исполнительными механизмами.
В основе алгоритма управляющего контроллера заложен пропорциональноинтегрально-дифференциальный закон, который получен из П-закона путем
16
добавления интегральных и дифференциальных поправок. Каждый параметр
микроклимата рассчитывается согласно П-закону, затем производится прогноз
изменения
параметра,
к
которому
добавляются
интегральные
и
дифференциальные поправки. Особенность алгоритма в том, что каждый
параметр микроклимата рассчитывается от каждой возмущающей величины в
отдельности, после чего используется принцип приоритетов распределения
воздействий на исполнительные системы. Такой подход дает возможность
изменить состояние исполнительной системы еще до того момента, когда
начнется изменяться регулируемый параметр. Использование данного подхода в
совокупности
с
большим
количеством
различных
датчиков
позволяет
поддерживать заданные параметры микроклимата с большой точностью.
Также в сельском хозяйстве применяют специальные комплекты оборудования для управления микроклиматом теплиц, например АМТ-600, СК-2,
ОРМ-1, УТ-12 и др. Рассмотрим работу комплекта УТ-12.
4) система автоматического управления УТ-12. Главной элементной базой
этого
комплекта
является
микропроцессорные
логические
элементы.
Оборудование комплекта УТ-12 размещается в отдельных шкафах и включает в
себя систему автоматического управления следующими параметрами микроклимата:
 температура воздуха в теплицах, бытовых помещениях и коридоре;
 температура почвы;
 температура воды для полива;
 влажность почвы и воздуха;
 концентрация растворов минеральных удобрений;
 концентрация углекислого газа;
 уровень освещенности.
Комплект предполагает использование в 12 отделениях тепличного блока, а
также возможно управлять температурой в соединительном коридоре и в бытовых
помещениях. Комплект поддерживает температуру воздуха, почвы и поливной
17
воды с точностью до ±1,5 °С в диапазоне заданных температур (0...40°С) и
концентрацию растворов минеральных удобрений. Также комплект УТ-12
измеряет и регистрирует параметры микроклимата. УТ-12 управляет 16
исполнительными механизмами.
Температура воздуха в теплице управляется с помощью двух групп водяных
калориферов, коньковой (верхней) и боковой систем вентиляции (фрамуг).
Фрамуги
приводятся
в
действие
исполнительными
механизмами
систем
вентиляции.
Система определяет значение и знак отклонения температуры от заданной,
на основании этих данных определяется последовательность работы и состояние
оборудования управления температурой. Затем включаются соответствующие
исполнительные механизмы в зависимости от отклонения температуры воздуха от
заданной. В случае повышения температуры в теплице на 2-3 °С включается
правая (левая) верхняя коньковая система вентиляции,
при повышении
температуры на 4-5 °С включается правая (левая) боковая стенная система
вентиляции.
В случае отклонения фактической температуры от заданной па 1 °С
происходит открытие клапана отопления, производится это «шагами», один
«шаг» за один цикл опроса. В случае отклонении фактической температуры от
заданной на 1 °С включается первая отопительная группа калориферов, а на 4 °С
– вторая их группа. В случае отклонения температуры от заданной на ±6 °С
срабатывают пороговые элементы, включаются аварийные звуковая и световая
сигнализации. Выполненный на сигнальных лампах индикатор сигнализирует о
значениях отклонений температуры с указанием номера контролируемой
теплицы. Заданное значение температуры в 16 объектах устанавливают с
помощью датчиков.
Блок освещения предполагает использование 12 датчиков в 12 теплицах. Он
автоматически корректирует заданное значение температуры в зависимости от
освещенности. В случае освещенности более 10 клк срабатывает реле, контакты
которого включают сигнальную лампу и резистор, вызывающий температурную
18
надбавку установки до 5 °С. При снижении освещенности до 10 клк срабатывает
другое
реле,
которое
соответствующую
включает
температурную
сигнальную
надбавку
лампу
около
2,5
«Пасмурно»
°С.
При
и
низкой
освещенности, например в ночное время, срабатывает третье реле, которое
включает сигнальную лампу и выдает своим контактом задание на управление
температурой, соответствующей темному периоду суток. Перевод схемы с
автоматического управления на ручное и обратно выполняют в соответствующем
местном шкафу управления.
Реализована возможность автоматического экстренного закрытия форточек
или изменение их положения одновременно во всех 12 теплицах с помощью
соответствующей кнопки. При предельно допустимой скорости ветра реализована
возможность автоматического полного закрытия фрамуг по команде от
анемометра. Положения фрамуг, значения температур вне и внутри теплицы
контролируют соответствующие приборы.
Проведенный анализ систем управления микроклиматом теплиц показал,
что данные системы имеют следующие достоинства:
 возможность выполнения множества программ в сутки;
 плавный переход от параметров одной программы к параметрам другой
программы;
 гибкая система настроек управления различными исполнительными
системами;
 большое количество контролируемых параметров;
 возможность отслеживания динамики микроклимата;
 алгоритм
управляющего
контроллера
позволяет
прогнозировать
изменение параметров микроклимата и своевременно принимать определенные
действия;
 индикация аварийных ситуаций.
Учитывая цель выпускной работы, а именно автоматизация теплицы в
частном хозяйстве, можно выделить недостатки рассмотренных систем:
19
 высокая стоимость систем;
 предназначение для промышленных масштабов;
 требования к квалификации сотрудников.
1.4 Разработка требований к системе
На сегодняшний день современные технологии позволяют строить
автоматизированные системы из различных элементов со своими свойствами, и
выбирать только те из них, которые действительно нужны, для данной системы.
Использую такие компоненты можно разрабатывать системы, которые обладают
невысокой стоимостью. При построении подобных систем, обязательно должен
быть использован принцип «разумной достаточности». Т.е. при построении таких
систем можно выбирать только те модули, которые нужны в конкретном случае.
Исходя и проведенного анализа, были выявлены следующие требования к
разрабатываемой системе:
1) приемлемая стоимость;
2) оперативное
получение
всей
необходимой
информации
об
климатических параметрах теплицы: температура воздуха, влажность воздуха,
температура почвы, влажность почвы, освещенность теплицы (мониторинг
климатических параметров теплицы). Контроль за данными параметрами
позволит убедиться, не закончилась ли вода в системе, не выключалось ли
электричество, обеспечена ли системой вентиляции нужная температура и т.п.
3) вывод данных мониторинга на экран компьютера, использование
светодиодной
индикации
для
оповещения
о
критических
значениях
климатических параметров, или передача данных через средства связи удаленно
на телефон, планшет или на компьютер;
4) реализация
осуществление
возможности
полива,
обогрева,
управления
микроклиматом
вентиляции
теплицы,
теплицы
–
регулирование
освещенности теплицы. Данное управление можно реализовать с помощью
автоматики или удаленно (с помощью интернет, телефон (планшет)).
20
Функционал системы в автоматическом режиме:
1) в случае снижения уровня увлажненности почвы ниже определенного
значения необходимо включить полив;
2) в случае снижения температуры в теплице необходимо включить
обогрев;
3) в случае повышения температуры воздуха необходимо производить
проветривание;
4) управление освещенностью теплицы необходимо производить по
определенному алгоритму.
21
ПРОЕКТИРОВАНИЕ СИСТЕМЫ УПРАВЛЕНИЯ МИКРОКЛИМАТОМ
ИНДИВИДУАЛЬНОЙ ТЕПЛИЦЫ
2.1 Разработка структурной схемы системы управления
Под структурной схемой понимается совокупность элементарных звеньев
объекта и связей между ними, один из видов графической модели. Под
элементарным звеном понимают часть объекта, системы управления и т.д.,
реализующая элементарную функцию.
Исходя из анализа литературы, можно сделать вывод о том, что в системе
по управлению микроклиматом в теплице должны быть реализованы четыре
управляющих системы:
 система полива – включает датчики влажности почвы, датчики уровня
жидкости, датчики температуры воды, нагревателя воды и электромагнитных
реле, подключенных к системе капельного полива и емкости для воды;
 система обогрева почвы – включает датчики температуры почвы и
нагревательные кабели;
 система контроля освещённости – включает датчики освещённости и
светодиодные лампы;
 система вентилирования воздуха – включает датчики температуры,
датчики влажности воздуха, вентиляторы.
Исходя из выше сказанного, можно предложить следующую структурную
схему системы управления микроклиматом в теплице, представленную на
рисунке 2.1.
22
Рисунок 2.1 – Структурная схема системы управления микроклиматом в теплице
Программируемый микроконтроллер
выступает
основным элементом
управления. Ввод и контроль параметров микроклимата осуществляется с
помощью панели оператора. Через блок силовых реле к блоку контроллера
подключены исполнительные механизмы.
В
системе
предусмотрено
использование
пяти
типов
датчиков:
температуры, влажности, освещенности, уровня воды и положения фрамуги. С
помощью расположенного внутри теплицы датчика освещенности возможно при
необходимости управлять дополнительной подсветкой.
Для
определения
температуры
в
теплице
размещен
один
датчик
температуры, поскольку анализ литературы позволил выявить, что для
определения температуры в любой точке теплицы необходимо и достаточно
иметь значение температуры в геометрическом центре теплицы.
Для определения влажности в теплице размещен один датчик влажности,
поскольку предполагается, что влажность равномерна по всему объему.
23
Датчик положения форточки определяет, в каком положении находится
форточка: в открытом или закрытом.
Для управления поливом дополнительно имеются датчик температуры
поливочной воды в емкости.
Для контроля наличия воды и управления ее набором используется датчик
уровня воды.
Для определения температуры окружающего теплицу воздуха используется
датчик температуры, расположенный снаружи. Кроме того имеются внешние
датчики влажности и силы ветра для расчета параметров регулирования. Также
при сильном ветре, во избежание повреждения форточек, их необходимо
закрывать.
В теплице используется пять типов исполнительных систем: обогрева
(внутри теплицы и воды для полива), форточной вентиляции, принудительной
вентиляции
(для
равномерного
прогревания
воздуха
при
подогреве
и
принудительной вентиляции), управления поливом и набором воды для полива.
Алгоритм
поддержания
необходимой
температуры
в
теплице
предусматривает учет не только степени рассогласования заданной и текущей
температуры внутри теплицы, но и влияние быстроизменяющихся факторов,
таких как солнечная активность, внешняя температура и внешняя влажность, что
помогает
предсказать
изменение
температуры
в
теплице
и
вовремя
противодействовать этим изменениям.
Для снижения влажности внутри теплицы, а также удаления теплого
воздуха
из
нее
предназначена
исполнительная
система
принудительной
вентиляции.
Исполнительная система управления поливом и набором воды для полива
предназначена для осуществления полива и обеспечения необходимого запаса
воды.
Общий алгоритм
работы системы можно описать следующим образом:
информация с датчиков температуры, влажности и освещенности, находящихся
внутри и снаружи теплицы, отправляется на контроллер.
Он сравнивает
24
полученные значения с заданными пользователем значениями и
сравнения выявляются
разногласия,
то воздействует
на
если в ходе
исполнительные
механизмы, с целью минимизировать полученное расхождение.
2.2 Выбор микроконтроллера
Главной отличительной тенденцией развития микропроцессорных систем
(МПС) на сегодняшний день является окончание перехода от систем,
базирующихся на основе нескольких больших ИС, к однокристальным
микроконтроллерам (МК), объединяющим в одном кристалле все основные
элементы МПС: центральный процессор (ЦП), постоянное запоминающее
устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), порты
ввода/выводы, таймеры.
Микроконтроллером
называется
микросхема,
предназначенная
для
управления электронными устройствами. В одном кристалле микроконтроллера
реализуются функции процессора и периферийных устройств. Также в этом
кристалле содержаться ОЗУ и ПЗУ. Таким образом, микроконтроллер – это
однокристальный компьютер, способный выполнять различные, относительно
простые задачи.
Микропроцессорная техника включает в себя две специфические части:
аппаратные средств и прикладное программное обеспечение.
В зависимости от разрядности данных, с которыми работают арифметикологическое устройство (АЛУ), выделяют
4, 8, 16, 32 и 64 - х разрядные
микроконтроллеры. На сегодняшний день в стоимостном выражении, около 55%
доли мирового рынка микроконтроллеров принадлежит восьмиразрядным
системам. Примерно по 20% рынка принадлежит 16-разрядным и DSPмикроконтроллерам, которые ориентированы на применение в системах по
обработки сигналов. Так как, к проектируемой системе не предъявляются
большие
вычислительные
мощности,
то
будем
осуществлять
выбор
микроконтроллера из наиболее популярных и доступных – 8-разрядных
25
микроконтроллеров. Сделаем краткий экскурс в историю создания и развития
микроконтроллеров.
Так,
первым
микроконтроллером
была
микросхема
фирмы
Intel,
получившая имя 8048, появившаяся на свет в 1976 году, через 5 лет после
создания первого микропроцессора.
Микроконтроллер 8048 кроме центрального процессора имел 1 КБайт
памяти программ, 64 байта памяти данных, два восьмибитных таймера, генератор
часов и 27 портов ввода/вывода.
Микроконтроллеры этого семейства применялись в игровых консольных
приставках Magnavox Odyssey, в клавиатурах первых IBM PC и в ряде других
устройств.
Существует мнение, что первым микроконтроллером был 4-х pазpядный
TMS1000 от Texas Instruments, который содержал ОЗУ (32 байта), ПЗУ (1К), часы
и поддержку ввода-вывода, что позволяло считать его именно первым
микpоконтpоллеpом. Он был выпущен в 1972 году и имел
добавления
новых
инструкций,
что
было
новым
в
возможность
те
времена.
Классическим образцом устройств данного класса является выпущенный в
1980 году микроконтроллер Intel 8051. С него было положено начало целого
семейства микроконтроллеров, господствовавших на рынке вплоть до недавнего
времени. В СССР также велись разработки аналога 8051
в Минске, Киеве,
Воронеже, Новосибирске. И сегодня большинство фирм производителей
микроконтроллеров (Philips, Atmel, Dallas, OKI, Siemens и др.) выпускают
основанные на этой архитектуре микроконтроллеры. Но данное семейство
микроконтроллеров постепенно вытесняется более совершенными их аналогами.
Следует также упомянуть о компаний Motorola, выпускавшая 8-разрядные
микроконтроллеры: 68HC05, 68HC08, 68HC11 и Zilog (Z8). Определяющим
недостаточную широту их использования в первое время некорпоративными
разработчиками в России явилось то, что компания-разработчик долгое время не
предоставляла средств, позволяющих дешево и быстро начать работать с ее
контроллерами. Однако за рубежом микроконтроллеры от Motorola занимают
26
лидирующее положение на рынке. Значительные
перемены
компания Microchip наладила выпуск PIC-контроллеров.
настали,
когда
К достоинствам их
можно отнести очень низкие цены, что способствовало им занять значительную
часть рынка микроконтроллеров. Кроме того, данные микроконтроллеры
оказались превосходящими по производительности семейство Intel x51 и не
требовали дорогостоящего программатора.
Плюсом явилось и то, что совместно с микроконтроллерами был налажен
выпуск дешевых комплектов PICSTART, содержащих то, что было нужно для
того, чтобы, не имея ни средств, ни навыков работы с PIC-контроллерами, быстро
создать и отладить на нем продукт. Эти микроконтроллеры имели хорошие
порты, но все остальное было сделано весьма неудобно. К недостаткам можно
отнести
неудачную
архитектуру,
ограниченную
систему
команд.
PIC-
контроллеры находят свое применение, когда необходимо создать недорогую
систему, не предъявляющую высоких требований по ее управлению.
Аналогом PIC-контроллеров явились микроконтроллеры, выпущенные
компанией Scinex. По сравнению со своим аналогом микроконтроллеры Scinex
имели 52 команды (против 33-х в PIC-контроллерах), были добавлены хорошие
инструкции для работы с памятью, улучшена архитектура, каждая команда
выполнялась за один такт, что при прочих равных условиях было вчетверо
быстрее, чем у Microchip, и к тому же их тактовая частота достигала 100 МГц.
Благодаря такой высокой скорости контроллера разработчики отказываются
от
различной
периферии
приемопередатчиках.
–
таймеров,
Перечисленной
счетчиков,
рекомендуется
регистров
сдвига
реализовывать
в
чисто
программными средствами, поскольку быстродействия для этого хватает: внутри
лишь
сверхбыстрое
ядро,
память
да
порты
ввода/вывода.
Революцией в мире микроконтроллеров можно назвать появление в 1996
семейства микроконтроллеров на новом прогрессивном ядре AVR от корпорации
Atmel. К достоинствам можно отнести более продуманную архитектуру AVR
(оптимизирована по язык Си), быстродействие, превосходящее контроллеры
Microchip, привлекательная ценовая политика, более развитая система команд
27
(133 инструкции), производительность, приближающаяся к 1 MIPS/МГц, Flash
ПЗУ программ с возможностью внутрисхемного перепрограммирования, функция
самопрограммирования
для
некоторых
микропроцессоров,
совместимость
кристаллов семейства «снизу вверх», доступность программного обеспечения и
средств поддержки разработки (бесплатная среда разработки AVR Studio,
работающая
под
Windows).
Доступными
и
многочисленными
являются
компиляторы, программаторы, ассемблеры, отладчики, разъемы и адаптеры,
выпускаемые
сторонними
производителями.
Кроме
того,
плюсом
для
разработчика, который только начинает разбираться с электроникой, является и
то, что для программирования микроконтроллеров семейства AVR можно
обойтись вовсе без специального аппаратного программатора. Так самым
простым способом программирования микроконтроллеров в данном случае, это
их
подключения
с
помощью
пять
контактов,
к
параллельному
порту
персонального компьютера. Схема микроконтроллера Atmega 328p представлена
на рисунке 2.2.
Рисунок 2.2 – Схема микроконтроллера Atmega 328Р
28
Микроконтроллеры AVR доступны в России, они недороги и могут
успешно конкурировать с изделиями других компаний. Для обучения и
программирования они являются достаточно привлекательными.
Анализируя структурную схему систему управления можно сделать вывод,
что для управления микроклиматом в малом тепличном хозяйстве необходим
микроконтроллер, имеющий 10 входов, клеммы для питания и 7 выходов, к
которым
осуществляется
присоединение
исполнительных
выполняющих регулирующие воздействия на микроклимат.
механизмов,
Таким образом,
приходим к выводу, что микроконтроллеры Atmel AVR с успехом справятся с
заданной задачей.
AVR микроконтроллеры имеет большую систему команд и 32 рабочих
регистра общего назначения. Все регистры непосредственно связаны с
арифметико-логическим устройством, что позволяет получить доступ к двум
независимым регистрам при выполнении одной команды. В результате эта
архитектура позволяет обеспечить в десятки раз большую производительность,
чем стандартная CISC архитектура.
Выбор платы для микроконтроллера
Для программирования проектируемой системы управления теплицей
необходим программатор, который позволит записать в микроконтроллер
разработанную программу. В ходе анализа было выявлено, что в качестве
бюджетного программатора, может выступить электронная плата компании
Arduino или ее аналоги других производителей. Работа с данными платами не
требует специальных навыков в области электроники и электротехники, а также
обеспечивают простую сборку конструкции устройства.
Arduino – это инструмент для проектирования электронных устройств
(электронный конструктор), которое плотно взаимодействуют с окружающей
средой, чем стандартные универсальные компьютеры, которые фактически не
выходят
за
рамки
виртуальности.
Другими
словами
это
платформа,
предназначенная для «physical computing» с открытым программным кодом,
29
построенная на простой печатной плате с современной средой для написания
программного обеспечения.
Основными особенности Arduino является:

открытый программный код;

основа
это простая
печатная
плата,
которую
можно собрать
самостоятельно или купить в собранном виде;

наличие бесплатной современной, свободно распространяемой среды
для написания программ.
Основным назначением плат является:

разработка устройств, для взаимодействия с аналоговыми или (и)
цифровыми датчиками;

управление исполнительными механизмами.
Устройства, построенные на базе Arduino, могут взаимодействовать с
другими электронными устройствами, такими как персональные компьютеры,
сотовые телефоны, планшеты и др.
Основными преимуществами систем, построенных, на базе плат Arduino
является:

низкая стоимость полученного устройства по сравнению с другими
платформами (так готовый модуль можно купить примерно за 50$), при этом
самые простые версии могут быть собраны самостоятельно. Основой любой
платы Arduino является микроконтроллер фирмы AVR. Схемы электронных плат
выпускаются с лицензией Creative Commons, поэтому аппаратные средства плат
Arduino могут быть расширены и дополнены пользователем самостоятельно;

кроссплатформенность – для работы с платами Arduino разработана
среда, которая работает под разными операционными системами, такими как ОС
Windows, Macintosh OSX и Linux;

среда программирования, основанной на Processing простота и
понятна для пользователей знакомых с основами программирования на
компьютере;
30

для среды Arduino IDE разработано множество разнообразных
библиотек;

среда поддерживает код написанный в среде AVR-C в программу.
Таким образом было принято решение взять за основу для разработки
проектируемой системы плату Arduino Uno. Таким образом, при выборе основных
датчиков и механизмов при разработке системы, необходимо что бы они были
совместимы с данной платой.
Подбор датчиков для построения системы и разработка принципиальных
схем их подключения
2.4.1 Датчик температуры
Одним
из
преимуществ
выбранной
платы
является
возможность
использования большого количества разнообразных датчиков. Также, в любой
момент, выбранный датчик можно заменить на другой аналогичный.
Для контроля температуры внутри и снаружи теплицы необходимо
подобрать соответствующие датчики температуры.
При выборе датчика необходимо учитывать ряд факторов:

температурный диапазон, в котором будут проходить измерения
температуры, допуски по точности измерений;

условия в которых должен функционировать датчик (нормальные,
повышенной влажности, высоко окислительная атмосфера, пожароопасные,
сейсмоопасные и т.д.);

возможность периодического отключения датчика для его проверки
или замены на другой (исправный) при выходе из строя;

должна быть взаимозаменяемость датчиков или нет.
Исходя из анализа разрабатываемой системы, можно выявить следующие
критерии: диапазон измеряемых температур будет примерно колебаться от -20 до
50 градусов; замена датчика на новый должна быть доступной и простой; условия
31
датчик должен эксплуатироваться в уличной среде с повышенной влажностью;
погрешность измерений может составлять плюс-минус 0,5 градуса.
Наиболее простыми и часто используемыми при работе с платами Arduino
являются датчики температуры DS и DHT.
Датчик температуры DS имеет интерфейс 1-WIRE (разработанный фирмой DALLAS
SEMICONDUKTOR)
микроконтроллерами.
Каждый
для
такой
использования
датчик
снабжен
совместно
с
56-разрядным
индивидуальным идентификационным кодом. В связи с этим к одному контакту
микроконтроллера можно подключить практически неограниченное число
датчиков. Однако при таком подключении изначально необходимо считать 64
разрядный код ROM (в него входит 56-битный номер датчика и 8 бит регистра
контроля четности) каждого датчика и учитывать его при программировании
микроконтроллера, для соотношения места расположения датчика и измеряемого
показателя. Данная процедура может тратить много вычислительного времени,
поэтому в системах, в работе которых применяется небольшое число датчиков,
можно обойтись выделением отдельного контакта микроконтроллера для каждого
датчика (данный способ, также облегчит процедуру замены неисправного датчика
на новый).
Датчик температуры DS1820 (DS18S20, DS1821, DS18B20) обладает
следующими основными техническими характеристиками:
 индивидуальный 64-битный идентификационный номер;
 напряжение питания от +3 до +5,5 В;
 диапазон измерения температуры от -55°С до + 125°С;
 погрешность измерения температуры в диапазоне -10...+85°С не более
0,5°С;
 в
остальном
диапазоне
температур
погрешность
измерения
не
превышает 2°С;
 информация о температуре выдается 9-битным кодом;
 установка пороговых значений температуры по максимуму и минимуму;
32
 максимальное время преобразования температуры в код 750 мс;
 возможность питания от высокого уровня шины данных;
 термодатчики не требуют индивидуальной настройки при замене.
Данные датчики могут выпускаться с двумя типами корпусов: простом и
влагозащищенном.
Другим датчиком, который часто применяется в проектах с использованием
плат Arduino, является цифровой датчик DHT (DHT11, DHT22). Дополнительно
он может быть использован также и для измерения относительной влажности
окружающий среды. Данные сенсоры простые в применении, но медленные.
Несмотря на это их очень часто применяют для проектов на Arduino, Wemos,
nodemcu и прочих платформ с использованием микроконтроллеров. В своей
основе датчик DHT имеет: ёмкостной датчик влажности и термистор. Также в
корпусе датчика включен чип для преобразования аналогового сигнала в
цифровой. Датчик может быть подключен к любому входному контакту
микроконтроллера.
Датчик
серии
DHT11
обладает
следующими
техническими
характеристиками:
 питание от 3 до 5В;
 максимально потребляемый ток – 2,5мА при преобразовании (при
запросе данных);
 диапазон измерения уровня влажности от 20% до 80% при точности
измерений в диапазоне 5%;
 диапазон измерения температуры от 0°С до + 50°С при точности
измерений в диапазоне 2%;
 частота измерений не более 1 Гц (одно измерение в секунду);
 размер корпуса: 15,5 мм x 12 мм x 5,5 мм;
 количество коннекторов – 4. Расстояние между соседними – 0.1″.
Датчик
серии
характеристиками:
DHT22
обладает
следующими
техническими
33
 питание от 3 до 5В;
 максимально потребляемый ток – 2,5мА при преобразовании (при
запросе данных);
 диапазон измерения уровня влажности от 0% до 100% при точности
измерений в диапазоне 2-5%;
 диапазон измерения температуры от -40°С до + 125°С с погрешностью
измерения не более 0,5°С;
 частота измерений до 0,5 Гц (одно измерение за 2 секунды);
 размер корпуса: 15,1 мм x 25 мм x 7,7 мм;
 количество коннекторов – 4. Расстояние между соседними – 0.1″.
Таким образом, в ходе анализа собранной информации из за наличия
исполнения датчика серии DS в влагозащитном было принято решение именно их
использовать при измерении: уличной температуры, температуры воды в
резервуаре, а также внутри теплицы.
В ходе изучения технической документации датчика была выявлена схема
подключения термодатчика к микроконтроллеру, как на рисунке 2.3. Шина
данных должна быть подключена к плюсу питания через резистор номиналом 4,7
кОм, поскольку выходной транзистор датчика имеет открытый сток. При питании
датчика от шины данных вывод 3 остается свободным.
Рисунок 2.3 – Схема подключения термодатчика DS18B20 к микроконтроллеру
34
2.4.2 Датчик освещенности
Для измерения уровня освещенности предназначены специальные датчики –
датчики освещенности, одним из самых распространенных видов которого
является фоторезистор. Фоторезистор — это резистор, который меняет свое
сопротивление в зависимости от падающего на него света. Фоторезистор
изображен на рисунке 2.4.
Рисунок 2.4 – Фоторезистор
Фоторезисторы различаются по диапазону сопротивления:
 VT83N1 — от 12 до 100кОм;
 VT93N2 — от 48 до 500кОм, минимальное значение означает
сопротивление фоторезистора в темноте, а максимальное – при определенной
тестовой засветке.
Кроме фоторезистора в датчиках света также применяют фотодиод и
фототранзистор, внешне схожие со светодиодами.
Также в магазинах можно приобрести готовый фотомодуль, например GY302 с сенсором BH1750. Сенсор BH1750 представляет собой цифровой 16-битный
цифровой датчик освещённости, что задаёт диапазон его измерений: от 1 до
65535 люкс. Согласно паспорту, датчик BH1750 чувствителен к видимому свету и
практически не подвержен влиянию инфракрасного излучения, т.е. реагирует
примерно на тот же спектральный диапазон, что и человеческий глаз. Вследствие
этого такие сенсоры получили широкое распространение в современной
электронной аппаратуре – мобильных устройствах, фото- и видеокамерах, в
системах «умный дом» и многих других.
35
В качестве датчика освещенности, было принято решения выбрать
фототранзистор – VT83N1 из за его простоты и стоимости.
Подключение фототранзистора к микроконтроллеру показано на рисунке
2.5.
Рисунок 2.5 – Схема подключения фототранзистора к микроконтроллеру
Один вывод фототранзистора подключается к шине +5V, другой – к одному
из выводов резистора 10 кОм. Второй вывод резистора 10 кОм соединен с землей
GND. Если уровень света очень низок, то уровень напряжения на выходе SIG
будет также очень мал. При увеличении освещенности на выходе также будет
увеличиваться напряжение. Для подключения датчика требуется всего три
провода: питание, земля и сигнальный провод.
Датчик влажности почвы
Для измерения влажности почвы используется соответствующий датчик,
называемый
гигрометр.
Гигрометр
необходим
для
проектирования
автоматической системы полива или отслеживания влаги в почве. Одним из таких
датчиков, используемых совместно с платой Arduino является гигрометр YL-69,
демонстрируемый на рисунке 2.6.
На рисунке 2.6 справа расположена электронная плата,
измерительная часть с двумя пластинами, определяющая наличие воды.
слева
–
36
Рисунок 2.6 – Датчик влажности почвы
За основу данного модуля взят компаратор LM393, который выдает
напряжение по принципу: влажная почва – низкий логический уровень, сухая
почва – высокий логический уровень. Уровень определяется заранее заданным
пороговым значением на модуле. Линия выходного сигнала компаратора
подключается к линии ввода/вывода на плате Arduino. На основе этого сигнала
можно сделать вывод, что на выводе будет появляться
сигнал высокого
логического уровня, когда почва становится сухой.
Предусмотрено возникновение на выходе с датчика цифрового сигнала –
LOW или HIGH, что характеризует уровень содержания воды в почве: если
влажность почвы превышает определенное пороговое значение, модуль вернет
значение LOW, а если нет – HIGH. Пороговое значение для цифрового сигнала
настраивается при помощи встроенного потенциометра. Кроме того, датчик
оснащен двумя светодиодами: первый загорается, когда на плату подается
питание, а второй – при выводе цифровых данных. Также на выходе может быть и
аналоговый сигнал, что позволяет измерять влажность значениями в диапазоне от
«0» до «1023».
Схема подключения датчика влажности почвы к микроконтроллеру
показано на рисунке 2.7.
37
Рисунок 2.7 – Схема подключения датчика влажности почвы к микроконтроллеру
Один вывод датчика влажности почвы подключен к шине +5V, второй
вывод соединен с землей GND, а третий – к одному из входов микроконтроллера.
2.4.3 Датчик уровня воды
Для измерения уровня воды в ёмкостях предназначен соответствующий
датчик, решающий проблему контроля уровня воды в резервуаре в случае
невозможности визуального контроля с целью предупреждения переполнения
емкости водой через критическую отметку. Датчики воды могут быть погружного
типа и нет. Для нашей системы необходим датчик погружного типа.
Рассмотрим представленный на рисунке 2.8 датчик воды – погружного типа
для Arduino. Чем больше погружение датчика в воду, тем меньше сопротивление
между двумя соседними проводами.
38
Рисунок 2.8. Датчик уровня воды
Контакты для подключения к контроллеру:
+ – питание датчика;
- – земля;
S – аналоговое значение.
Аналоговое значение подается на вывод S, его можно передавать в
контроллер для дальнейшей обработки, анализа и принятия решений. Встроенный
красный светодиод сигнализирует о наличии поступающего на датчик питания.
Схема подключения датчика к микроконтроллеру показана на рисунке 2.9.
Рисунок 2.9 – Схема подключения датчика уровня воды к микроконтроллеру
39
2.4.4 Датчик положения форточки
В
основу
датчика
положения
форточки
положен
потенциометр
сопротивлением 1300 Ом. Схема подключения датчика представлена на рисунке
2.10.
К источнику питания
Датчик
1
2
К датчику
+5V
OUT
1
2
GRN
3
+5V
GRN
К контроллеру
1 A IN
2 GRN
Рисунок 2.10 – Схема подключения датчика положения форточки
2.4.5 Датчик скорости ветра
Для измерения скорости ветра используем соответствующее устройство –
анемометр. Он применяется в метеорологии для показания скорости и
направления ветровых волн. Анемометр включает следующие компоненты:
чашечная верхушка, крепко прицепленная к оси прибора, соединяется с
механизмом измерения. Воздушный поток, проходя сквозь приспособление,
заставляет чашечки или лопасти вращаться вокруг осевого столба. Ведется
подсчет количества оборотных действий чашечек или лопастей вокруг осевого
центра в определенное время, что обычно равняется расстоянию, после этого
считается скорость ветровых потоков в средней величине.
Схема подключения анемометра к микроконтроллеру представлена на
рисунке 2.11.
40
Рисунок 2.11 - Схема подключения анемометра к микроконтроллеру
2.5 Выбор исполнительных механизмов и разработка принципиальных схем
их подключения
Подключение исполнительных механизмов к микроконтроллеру
Нужно отметить, что выходы Arduino не обеспечивают питание мощной
нагрузки и большого напряжения. Ограничение по выходному току вывода
Arduino составляет, как правило, 40 мА. Для управления мощной нагрузкой
можно использовать MOSFET-транзисторы. Это дает возможность подключать
достаточно мощные устройства с напряжением питания по 40-50 и более вольт и
токами в несколько ампер, скажем электрические двигатели, электромагниты,
галогенные лампы и так далее.
На рисунке 2.12 изображена схема подключения MOSFET-транзисторов к
Arduino.
41
Рисунок 2.12 – Схема подключения MOSFET-транзисторов к Arduino
В случае использования электродвигателей, электромагнитных клапанов и
т.д., т.е. когда нагрузка является индуктивной, рекомендуется ставить защитный
диод, который защищает MOSFET-транзистор от напряжения самоиндукции.
Встроенный в MOSFET-транзистор защитный диод в большинстве случаев не
спасает от индуктивных выбросов.
В случае использования светодиодов, галогенных ламп, нагревательных
элементов и т.д., т.е. когда нагрузка активная, нет необходимости применения
диода.
Другим способом подключения исполнительных механизмов является
подключения через реле, являющегося шлюзом, позволяющим соединить вместе
электрические цепи с совершенно разными параметрами.
В нашей работе предлагается использовать реле Arduino, позволяющее
подключить устройства, работающие в режимах с относительно большими
токами или напряжения. Реле позволяет включать или выключать внешние
устройства,
определенным
электрическую
сеть,
в
образом
которую
замыкая
они
или
подключены.
размыкая
отдельную
Процесс
управления
включением или выключением аналогичен включению или выключению света
дома: подавая команду на замыкание или размыкание. Arduino подает сигнал,
само же замыкание или размыкание «мощной» цепи будет делать реле через
специальные внутренние механизмы.
42
Параметры реле:
 напряжение или ток срабатывания;
 напряжение или ток отпускания;
 время срабатывания и отпускания;
 рабочие ток и напряжение;
 внутреннее сопротивление.
Выделяют 2 основные группы реле в зависимости от типа внутренних
размыкающих механизмов и особенностей устройства: электромеханические реле
(включение происходит с помощью электромагнита) и твердотельные реле
(включение происходит через специальные полупроводниковые компоненты).
Электромагнитное реле является электрическим устройством, механически
замыкающее
или
размыкающее
цепь
нагрузки
при
помощи
магнита.
Электромагнитное реле включает электромагнит (намотанный на катушку из
ферромагнетика провод), подвижный якорь (пластина из магнитного материала) и
переключатель.
Кроме
перечисленного,
электромагнитное
реле
может
комплектоваться дополнительными электронными компонентами: резистором для
более точного срабатывания реле, конденсатором для уменьшения помех, диодом
для устранения перенапряжений.
Принцип действия электромагнитного реле следующий: при подаче тока по
виткам катушки в сердечнике возникает электромагнитная сила. В исходном
состоянии пружина удерживает якорь. При подаче управляющего сигнала магнит
начинает притягивать якорь и замыкает либо размыкает цепь. При отключении
напряжения
якорь
возвращается
в
начальное
положение.
Источниками
управляющего напряжения могут быть датчики (давления, температуры и
прочие), электрические микросхемы и прочие устройства, которые подают малый
ток или малое напряжение.
Электромагнитное реле находит применение в схемах автоматики, при
управлении различными технологическими установками, электроприводами и
другими устройствами. Реле предназначено для регулирования напряжений и
43
токов, может использоваться как запоминающее или преобразующее устройство,
также может фиксировать отклонения параметров от нормальных значений.
Электромагнитное
реле
можно
классифицировать
по
следующим
признакам:
 в зависимости от управляющего тока: постоянный или переменный. В
случае
постоянного
поляризованным.
тока
Для
устройство
переменного
может
тока
быть
нейтральным
или
якорь
выполняется
из
электротехнической стали, чтобы уменьшить потери;
 якорное или герконовое реле. Для якорного реле процесс замыкания и
размыкания происходит при помощи перемещения якоря, для герконового
характерно отсутствие сердечника, магнитное поле воздействует на электрод с
контактами;
 в зависимости от быстродействия различают – до 50 мс, до 150 мс и от 1
с;
 в
зависимости
от
применяемого
защитного
покрытия
–
сравнению
с
герметизированное, зачехленное и открытое.
Преимуществами
полупроводниковыми
электромагнитного
устройствами
является
реле
его
по
дешевизна,
коммутация
большой нагрузки при небольшом размере устройства, малое выделение тепла на
катушке. К недостаткам относится медленное срабатывание, помехи и сложность
коммутации индуктивных нагрузок.
Хорошей альтернативой электромагнитным реле служат твердотельные
реле, представляющие собой модульное полупроводниковое устройство, которое
производится по гибридной технологии. Реле включает транзисторы, симисторы
или
тиристоры.
Преимущества
электромагнитными:
 долгий срок эксплуатации;
 быстродействие;
 малые размеры;
твердотельных
реле
по
сравнению
с
44
 отсутствуют посторонние шумы, акустические помехи, дребезги
контактов;
 низкое потребление энергии;
 качественная изоляция;
 стойкость к вибрации и ударам;
 нет дугового разряда, что позволяет работать во взрывоопасных местах.
Принцип работы следующий: на светодиод подается управляющий сигнал,
происходит гальваническая развязка управляющей и коммутируемой цепей, затем
сигнал переходит на фотодиодную матрицу. Напряжение регулирует силовым
ключом.
Твердотельные реле также имеют несколько недостатков. Во-первых, при
коммутации происходит нагрев устройства. Повышение температуры устройства
приводит к ограничению регулируемого тока – при температурах, превышающих
60 °С, уменьшается величина тока, максимальная рабочая температура составляет
80 °С.
Твердотельные реле можно классифицировать по следующим признакам:
 по типу нагрузки – однофазные и трехфазные;
 по способу управления – коммутация происходит за счет постоянного
напряжения, переменного или ручного управления;
 в зависимости от метода коммутации: контроль перехода через ноль
(применяется для слабоиндуктивных, емкостных и резистивных нагрузок),
случайное
включение
(индуктивные
и
резистивные
нагрузки,
которым
необходимо мгновенное срабатывание) и фазовое управление (изменение
выходного
напряжения,
регулировка
мощности,
управление
лампами
накаливания).
Наиболее распространенное реле для платы Arduino выполняется в виде
модуля, например, SONGLE SRD-05VDC. Устройство управляется напряжением
5 В, может коммутировать до 10 А 30 В DC и 10 А 250 В AC.
45
Схема изображена на рисунке 2.13. Реле состоит из двух, не связанных
между собой цепей – управляющая цепь А1 и А2 и управляемая 1, 2 и 3.
Рисунок 2.13 – Схема реле
Между А1 и А2 имеется металлический сердечник. Если пустить по нему
электрический ток, к нему притянется якорь (2). 1, 3 – неподвижные контакты.
При отсутствии тока якорь будет около контакта 3.
Подключение реле к плате Arduino рассмотрим на примере одноканального
модуля реле, представленного на рисунке 2.14. В большинстве реле модулей для
Arduinо используется N-канальное управление, его мы и рассмотрим. Для
примера возьмем одноканальный модуль. Он имеет всего 3 контакта,
подключаются они к Arduinо Uno следующим образом: GND – GND, VCC —
+5V, In – 3. Вход реле – инвертирован, так что высокий уровень на In выключает
катушку, а низкий – включает.
Рисунок 2.14 – Схема подключения релейного модуля к Arduino
Светодиоды нужны для индикации – при загорании красного LED1
подается напряжение на реле, при загорании зеленого LED2 происходит
замыкание. Когда включается микроконтроллер, транзистор закрыт. Для его
открытия на базу нужен минус, подается при помощи функции digitalWrite(pin,
46
LOW);. Транзистор открывается, протекает ток через цепь, реле срабатывает.
Чтобы его выключить, на базу подается плюс при помощи digitalWrite(pin,
HIGH);.
В качестве управляемой нагрузкой в нашей системе выступают:
 вентилятор;
 обогреватель воздуха;
 обогреватель воды для полива;
 электромагнитный клапан капельного полива;
 электромагнитный клапан набора воды в емкость;
 лампа освещения.
В общем виде схема подключения этих устройств будет одинаковой, как на
рисунке 2.15.
К источнику питания
1
2
Реле
+12V
N
К контроллеру
нагрузка
1
2
+ 5V
OUT
Рисунок 2.15 – Схема подключения нагрузки к Arduino
Выбор исполнительного механизма для управления форточкой
Для управления форточкой, можно использовать актуатор. Актуатор –
исполнительное
устройство
регулирующей
или
управляющей
системы
воздействующее на процесс в соответствии с входным сигналом управления.
Функционально актуатор состоит из двух блоков: регулятора и исполнительного
механизма. Типичным представителем актуаторов является сервопривод (или
сервомашинка). Сервопривод в отличие от обычного электромотора представляет
собой составное сложное устройство, состоящее из потенциометра, двигателя
47
постоянного тока, электронной схемы и редуктора. Наличие данных элементов
позволяет поворачивать вал сервопривода на строго заданный угол и удерживать
его.
Таким образом, упрощенно можно сказать, что сервопривод — это
электромотор, в котором можно управлять положением вала. И от обычного
электромотора он отличается тем, что с помощью специальных команд
ему
можно задать в градусах точное положение вала. Сервоприводы применяются в
робототехнике для моделирования механических движений.
Сервопривод можно подключить к плате ардуино с помощью трех
проводов: пара проводов
управляющего
сигнала.
питания и одного провода для формирования
Если
в
системе
используются
маломощные
сервоприводы, то все вышеперечисленные провода можно напрямую подключать
к микроконтроллеру. Однако если в устройстве используется большое количество
сервоприводов или несколько мощных, то силы тока платы управления уже не
хватит. В этом случае, к управляющей плате (микроконтроллеру) подключается
только управляющий контакт, а питание подается независимое (от отдельного
источника).
Также для работы с сервоприводами на рынке существуют специальные
платы расширения, которые позволяют подключать большое количества
сервоприводов. В них для подключения отдельного сервопривода реализованы
специальные наборы контактов (по три), что сильно упрощает подключение.
Таким
образом,
анализирую
все
вышесказанное,
простейший
вариант,
подключения сервопривода напрямую к плате Arduino представлен на рисунке
2.16.
На схеме питание сервопривода подключается к контакту “5V” (красный
провод)и
к контакту “Gnd” (черный провод). Управляющий контакт (белый
провод) может быть подключен к любому из свободных выходов платы, на схеме
используется выход с номером 2.
48
Рисунок 2.16 – Схема подключения сервопривода к Arduino
Выбор элементов панели управления и разработка принципиальных схем их
подключения
Для того что бы пользователь
мог оперативно управлять системой ему
необходимо контролировать текущие показания датчиков и установленных
режимов
системы.
предусмотреть
Для
устройство
этого
в
вывода
проектируемой
информации.
системе
Типичным
необходимо
устройством
применяемым при реализации проектов с использованием плат Arduino, является
LCD экран. Рассмотрим устройства данного типа более подробно.
LCD дисплеи бывают обычные многопозиционные (LCD серии ИЖКЦ), и
алфавитно-символьные LCD со встроенным контроллером. Именно устройства
второго
типа
являются
наиболее
распространенными
и
простыми
в
использовании при работе с микроконтроллерами в паре. В подтверждение
вышесказанному многие фирмы находящиеся в Тайване, Китае, Японии, США,
специализируются на выпуске именно данной продукции.
Основным отличием этих LCD дисплеев друг от друга, это марка
внутреннего контроллера, который используется для управления. Наиболее
распространенные и дешевые дисплеи строятся на базе контроллера HD44780
фирмы Hitachi или его аналогов, например, KS0066 фирмы Samsung, SED1278
фирмы Epson, ST7066 фирмы Sitronix. Таких изделий очень много на
отечественном рынке и в самодельных системах, построенных на базе Arduino
они стали стандартом "де-факто".
49
Достоинством данных LCD дисплеев является то, что работу по управлению
напряжением на массиве "ЖК-конденсаторов" переносят
на
встроенный
контроллер управления.
Подключение LCD дисплея к плате Arduino.
Структурная схема типового LCD дисплея, состоящего из 16 символов и
двух строк, показана на рисунке 2.17. Данная схема идентична для всех моделей
дисплеев, независимо от фирмы-изготовителя. Основу
устройства как уже
упоминалось выше, составляет специализированный контроллер, выполненный в
виде одной или двух микросхем. По назначению выводов и системе команд он
совпадает с родоначальником серии – HD44780. Общепринятое название таких
микросхем "Dot Matrix Liquid Crystal Display Controller/Driver", из чего следует их
двойная функция - контроллер управляет интерфейсом, а драйвер "зажигает"
сегменты.
Рисунок 2.17 - Структурная схема типового LCD дисплея
Для
своей
работы
контроллер
синхронизируется
внутренним
RC-
генератором, обозначенным на схеме как G1, имеющим частоту 250 ±50 кГц.
Подсветка питается через отдельные контакты обозначенные на схеме как А и К.
Через них на светодиоды освещающие экран подается питание.
Назначение
и
нумерация
всех
внешних
выводов
LCD
дисплеев
унифицированы, в не зависимости от количества строк у дисплея: 1, 2, 4 и т.д., а
также количества символов в строке: 8, 16 и т.д. Даже если модуль дисплея не
имеет встроенной подсветки контакты А и К будут присутствовать, но не будут
50
подключены. Описание всех унифицированных контактов представлено на
рисунке 2.18.
Рисунок 2.18 – Выводы LCD дисплея
Однако следует учитывать, что в зависимости от модели порядок
нумерации контактов на печатной плате LCD дисплея может отличается.
Например, встречаются следующие варианты: слева направо 1-16, справа налево
16-1, вперемежку 15, 16, 1-14 и т.д.
Конструктивно выводы на разных печатных платах, могут располагаться
снизу, сверху или на боковой стороне.
Электрический интерфейс LCD модуля состоит из трех шин:

шина данных, контакты DB0-DB7;

шина управления, контакты RS, R/W, E;

шина питания, контакты VCC, GND, Vo, A, K.
Модули LCD дисплеев могут подключаться к микроконтроллеру в
восьмиразрядном или четырехразрядном режимах. Каждый из которых имеет
свои достоинства и недостатки.
Так достоинством четырехразрядного режима является
- малое число
задействованных контактов микроконтроллера, упрощенная топология печатной
платы. Недостатком такого режима является снижение скорости передачи данных
в LCD, так как информация передается двумя порциями по 4 бита в каждой
(нибблами или тетрадами). Однако, учитывая физическую инерционность
"жидких кристаллов" и необходимости наличия обязательных задержек времени
между посылками команд дисплею, то снижение скорости почти незаметно.
51
Схема подключения LCD дисплея к микроконтроллеру в четырехразрядном
режиме представлена на рисунке 2.19. Согласно этой схеме
шина данных
подключена по 4-х проводной линии, вывод R/W дисплея подключен на минус,
т.к. дисплей является приемником данных и нет необходимости считывать с него
информацию.
Рисунок 2.19 – Схема подключения LCD к микроконтроллеру
Неудобство данных дисплеев заключается в том, что при задействовании
четырех разрядного режима используются 7 выводов Arduino. Чтобы сократить
количество выводов I/O Arduino при подключении к LCD, были разработаны LCD
с последовательным интерфейсом т.н. Serial LCD. При подключении через I2C
кол-во проводников сокращается до 4-х. В основной массе это широко
распространённые LCD модули 1602, JHD162A и др., с установленным с обратной
стороны модулем, который и обеспечивает преобразование. Как правило, в
модулях используется микросхема PCF8574T, представляющая собой 8-ми
битный расширитель шины для I2C интерфейса. Данный модуль имеет всего 4
вывода: GND, VCC, SDA, SCL. Линия SDA (data) подключается к Analog In 4, а
SCL (clock) к Analog In 5. На плате размещен джампер для включения подсветки,
а также потенциометр для регулировки контрастности.
52
Также для задания необходимых параметров в системе необходимо
предусмотреть
устройство
ввода.
Типичным
устройством
для
подачи
управляющего сигнала микроконтроллеру является кнопка.
Для подключения тактовой кнопки (нормально разомкнутой) к плате
Arduino (или микроконтроллеру), можно воспользоваться простой схемой: один
свободный контакт кнопки подключается к питанию (5V) или землёй (Gnd), а
другой – к цифровому входу платы Arduino (микроконтроллеру). Однако,
моменты
времени,
когда
кнопка
не
замкнута,
на
цифровом
в
входе
микроконтроллера могут появляться электромагнитные наводки, что может
привести к ложным срабатываниям (фиксированием микроконтроллером псевдо
нажатия кнопки). Чтобы избежать данного негативного явления, цифровой вход
микроконтроллера к которому подключена кнопка обычно подключают через
достаточно большой резистор ( например 10 кОм) либо к заземляющему контакту
(рисунок 2.17), либо к питанию.
Так при первом подходе говорят, что
используется «схема с подтягивающим резистором», при втором – «схема со
стягивающим резистором».
Рисунок 2.20 – Схема подключение кнопки с подтягивающим резистором
Разработка принципиальной схемы
53
Анализируя рассмотренные выше схемы подключения выбранных датчиков
и исполнительных механизмов, сформируем общую схему спроектированного
устройства – рисунок 2.21.
Датчики
температуры
Реле управления
Датчик
влажности
почвы
Фоторе
зистор
Сервопривод
Датчики:
уровня воды,
положения
форточки силы
ветра
Рисунок 2.21 – Принципиальная схема системы управления микроклиматом в
теплице
Ядром системы управления является микропроцессор AVR ATmega328P.
Все порты микроконтроллера можно разделить на два типа: цифровые и
аналоговые. При необходимости аналоговые порты могут быть программно
переведены в цифровой режим. Для подключения аналоговых датчиков (уровня
воды, освещенности, положения форточки и силы ветра) используем четыре
аналоговых входа контроллера PC0-РС3. К контактом SDA и SCL (контакты РС4
РС5) подключаем дисплей Serial LCD 1602 подключенный через I2C интерфейс.
Для подключения сервопривода используем контакт РD2, который позволяет
формировать PWM сигнал. При подключении остальных датчиков и устройств,
могут быть использованы любые порты ввода вывода микроконтроллера. Так же
на каждое устройство необходимо подать напряжение. Для упрощения на схеме
все устройства подключаются к порту подключив к порту VCC. Однако, как уже
54
упоминалось выше некоторые из них могут быть подключены напрямую к
внешнему
источнику
питания.
Для
нормального
функционирования
все
устройства заземляются на общий контакт (на схеме подключаются к порту Gnd
микроконтроллера). Контакты микроконтроллера
под названием RX и TX
(контакты PC0 и PC1) используются для взаимодействия с периферийными
устройствами в нашем случае это персональный компьютер, с помощью которого
мы можем отслеживать и настраивать работу микроконтроллера в момент
настройки системы.
55
РАЗРАБОТКА СТРУКТУРЫ И ФУНКЦИЙ СИСТЕМЫ
3.1 Разработка структуры системы
Исходя из анализа принципиальной схемы системы управления, в
программе управление микроклиматом в теплице можно выделить следующие
основные модули, представленные на рисунке 3.1:

основной модуль;

модуль конфигурации;

модуль управления поливом;

модуль управления освещенностью;

модуль управления температурным режимом;

модуль вывода на LCD;

модуль ввода;

модуль настройки параметров.
Модуль настройки
параметров
Модуль
конфигурации
Модуль вывода на
экран
Основной модуль
Модуль управления
поливом
Модуль ввода
Модуль управления
освещенностью
Модуль управления
температурой
Рисунок 3.1 – Схема алгоритма работы микроконтроллера
Основной модуль микроконтроллера служит для взаимодействия работы
всех остальных модулей системы.
56
Модуль конфигурации содержит основные базовые параметры, которые
используются при работе системы.
Для того чтобы уменьшить количество строк кода и сделать его более
читаемым, повторяющиеся участки объединены в небольшие функции. Все
функции разбиты по назначению на разные модули. Функции, связанные с
настройкой параметров управления системой вынесены в отдельный модуль –
«модуль настройки параметров». Функции, связанные с управления поливом
вынесены в отдельный модуль – «модуль управления поливом». Функции,
связанные с управления температурным режимом вынесены в отдельный модуль
– «модуль управления температурой». «Модуль управления освещенностью»
объединил в себе все команды по управлению подсветкой в теплице. «Модуль
управления вводом» объединил в себе функции, отвечающие за ввод с помощью
кнопок.
3.2 Разработка алгоритмов работы системы
Любая программа для микроконтроллеров основывается на применении
бесконечного цикла, так называемого суперлупа (superloop). В нем по очереди
запускаются основные команды, которые выполняет микроконтроллер. Эти
команды могут запускаться постоянно или в случае выполнения каких-то
условий, например установки необходимых сигналов на входах микроконтоллера.
Построенные по такому принципу программы, обычно применяются для
реализации простых систем с небольшим количеством задач, и в которых нет
необходимости использовать показатели тайминга.
Структура программы основного модуля состоит из двух частей:
 инициализации;
 бесконечного цикла.
Часть инициализации вызывается один раз при запуске микроконтроллера.
В ней инициализируются переменные, активируются порты. Вторая часть
повторяется, пока не будет выключено питание микроконтроллера. В ней
57
находится реализация всех вычислительных функций, а также функций опроса
датчиков и управления.
Ниже, на рисунке 3.2, приведена блок-схема работы микроконтроллера.
Начало
Инициализация
Нет
while(1)
Да
Основная
процедура
Конец
Рисунок 3.2 – Схема алгоритма работы микроконтроллера
Так изначально в блоке инициализации необходимо подключить все
остальные модули системы, после чего вызвать функции для изначальной
инициализации всех основных интерфейсов, с помощью которых будет
осуществляться взаимодействие с датчиками и исполнительными механизмами
системы. Также необходимо изначально проинициализировать порты ввода
вывода микроконтроллера.
После блока инициализации начинает работать основной блок (суперлуп).
Работа данного блока состоит из двух веток. Если ни одна кнопка управления не
была задействована в течении 30 секунд, происходит опрос текущих значение с
датчиков, вывод текущих значений на экран состояния и управление системами
полива, температурного режима и освещенности. Если была нажата кнопка
управления, система переходит в режим настройки основных параметров
управления. Алгоритм работы основного блока представлен на рисунке 3.3.
58
Начало
Да
Была ли нажата
кнопка в течении
последних 30с
Нет
Опрос датчиков
системы
Процедура настройки
параметров
Управление
поливом
Управление
температурным режимом
Управление
освещенностью
Конец
Рисунок 3.3 – Схема алгоритма работы основного блока
Процедура опроса датчиков системы на рисунке 3.4 представляет собой
последовательный опрос датчиков температуры воздуха, влажности почвы,
температуры воды и уровня освещенности.
Процедура управления поливом, представленная на рисунке 3.5, включает в
себя
управление
подготовкой
воды
к
поливу,
блок-схема
которой
проиллюстрирована на рисунке 3.6, и управление капельным поливом,
представленная на рисунке 3.7. Так при управлении подготовкой воды
необходимо поддерживать уровень воды в резервуаре и ее температурой.
Алгоритмы работы соответствующих процедур представлены на рисунке 3.8 и
рисунке 3.9.
59
Начало
Измерить t воздуха
Измерить t воды
Измерить влажность
почвы
Измерить
освещенность
Конец
Рисунок 3.4 – Схема алгоритма работы процедуры опроса датчиков системы
Начало
Управление
подготовкой воды
Управление капельным
поливом
Конец
Рисунок 3.5 – Схема алгоритма управления поливом
60
Начало
Проверка уровня воды
Проверка t воды
Конец
Рисунок 3.6 – Схема алгоритма подготовки воды
Начало
Считать влажность, t и
уровень воды
Да
Влажность <
min?
Нет
Да
Да
Влажность >
max?
Уровень > min
b t> min?
Нет
Нет
Выключить полив
Включить полив
Конец
Рисунок 3.7 – Схема алгоритма управления капельным поливом
61
Начало
Измерить уровень воды
Да
Уровень < = min?
Выключить полив
Нет
Получить состояния крана
набора воды
Да
Кран вкл?
Нет
Включить набор воды
Да
Уровень>= max?
Нет
Выключить набор воды
Конец
Рисунок 3.8 – Схема алгоритма управления уровнем воды
62
Начало
Считать t воды и
уровень
Да
Уровень >
min?
Да
Нет
t < min знач.
Нет
Включить подогрев
Нет
t >= max
знач.
Да
Выключить подогрев
Конец
Рисунок 3.9 – Схема алгоритма управления температурой воды для полива
Для управления освещением пользователь изначально должен задать
временные метки, показывающие когда освещение необходимо, а когда нет.
Условно эти метки обозначим как time1 (время начала периода освещения) и
time2 (время его окончания). При использовании этих меток алгоритм управления
можно представить следующим образом – рисунок 3.10.
Для поддержания температурного режима система должна управлять
системой подогрева и проветривания. При этом пользователь изначально должен
определить минимальное и максимальное значение температуры, которое должно
поддерживаться.
63
Начало
Измерить уровень
освещенности
Да
Уровень < =
min?
Нет
Да
Time >
Time(min)?
Нет
Да
Time <
Time(max)?
Нет
Выключить
освещение
Включить освещение
Конец
Рисунок 3.10 – Схема алгоритма управления освещенностью
При этом также необходимо предусмотреть, что в жаркий период времени
естественное проветривание может не обеспечить быстрое охлаждение воздуха в
теплице, поэтому надо также предусмотреть принудительное проветривание при
критических значениях температуры. Так как могут быть сильные порывы ветра,
которые могут вывести из строя форточки для проветривания, то необходимо
также предусмотреть соответствующую защиту. В соответствии с выше
сказанным был разработан алгоритм, блок схема которого представлена на
рисунке 3.11.
64
Начало
Считать значение
температуры
Нет
Да
t >= min?
Нет
Включить подогрев
Включить вентилятор
t >= (max-min)/2?
Да
t > max?
Ветер слабый?
Да
Закрыть форточку
Нет
Нет
Выключить подогрев
Выключить вентилятор
Да
Открыть форточку
Закрыть форточку
Включить вентилятор
Нет
t > max+5?
Выключить вентилятор
Конец
Рисунок 3.11 – Схема алгоритма управления температурным режимом
Да
Включить вентилятор
65
3.5 Проектирование структуры интерфейса взаимодействия с пользователем
Для создания прототипа устройства необходимо продумать логику
взаимодействия системы с пользователем. Интерфейс для взаимодействия
должен быть понятным любому пользователю и быть довольно простым. Так как
взаимодействие пользователя с системой будет происходить через LCD дисплей
и кнопки управления, то необходимо спроектировать логическую структуру
меню. Так, в состоянии, когда пользователь не взаимодействует с системой, на
экран должны выводиться значения текущих показателей.
При необходимости их изменения пользователь может выбрать нужный ему
показатель и произвести его настройку. В ходе разработки системы были
выделены следующие основные параметры, которые пользователь может
регулировать:
 нижний порог уровня воды в емкости (емкость пуста);
 верхний порог уровня воды в емкости (емкость полна);
 минимальная температура воды для полива;
 максимальная температура воды, до которой ее надо подогреть;
 минимальное и максимальное значение влажности;
 температурный интервал, который должен поддерживаться в теплице
(минимальное и максимальное значение);
 пороговое значение освещенности для срабатывания искусственного
освещения;
 период времени, когда необходимо освещать теплицу (время начала и
окончания);
 предельное значение силы ветра;
 установка текущего времени.
На рисунке 3.12 представлена логическая структура пользовательского
меню.
66
Экран1
Экран2
Установка уровня
воды
Температура
воды
……
Экран3
Min значение
Max значение
Min значение
Max значение
Влажность почвы
Min значение
Max значение
Температура в
теплице
Min значение
Max значение
Время подсветки
Min значение
Max значение
Освещенность
Min значение
Сила ветра
Min значение
Текущая дата и
время
Установка
даты
Установка
времени
Рисунок 3.12 – Логическая структура пользовательского меню
Также при реализации системы не следует забывать, что микроконтроллеры
работают с большой тактовой частотой, которая измеряется в мегагерцах, а,
следовательно, при нажатии пользователем на кнопку, он может опросить
состояния входа, к которому подключения кнопка множество раз. При этом, из за
разрядов между контактами кнопки, микроконтроллер буде считать, что кнопка
нажималась много раз. Данное явление получило название «дребезг контактов» В
некоторых системах данное явление не критично, например, если кнопка
67
управляет включением лампы фонаря. Но в большинстве случаев это явление
нежелательное. Решить данную проблему можно двумя способами: аппаратно и ,
с помощью пассивного НЧ фильтра. Самым простым способом является первый.
Для
этого
необходимо
в
программу
включить
микроконтроллер невосприимчивым к нему.
код,
который
сделает
Алгоритм соответствующего
программного кода представлен на рисунке 3.13.
Рисунок 3.13 – Схема алгоритма устранения дребезга кнопки, лист 1
68
Рисунок 3.13, лист 2
69
РЕАЛИЗАЦИЯ ПРОТОТИПА СИСТЕМЫ УПРАВЛЕНИЯ
МИКРОКЛИМАТОМ В ТЕПЛИЦЕ
4.1 Выбор среды программирования
Для разработки проектов на базе Arduino, необходимо писать прошивки и
загружать их в микроконтроллер. Одним из самых простых способов это сделать,
это воспользоваться средой разработки Arduino IDE. Используя программную
среду Arduino IDE, можно, основываясь лишь на знаниях C++, решать самые
разные творческие задачи, связанные с программированием и моделированием.
Среда
разработки
Arduino
IDE
состоит
из
текстового
редактора
программного кода, области сообщений, окна вывода текста(консоли), панели
инструментов с кнопками и нескольких меню. Для загрузки программ и связи
среда разработки подключается к аппаратной части Arduino.
Существует различные версии среды для разных операционных систем,
например для windows, Mac OS и Linux.
Основой среды разработки является Processing/Wiring (обычный C++,
дополненный своими функциями и библиотеками).
Чтобы расширить базовые функции программы и получить новые
возможности, можно подключить к Arduino IDE библиотеки. Поскольку
исходный код открыт, любой желающий может написать собственную
библиотеку и подключить её, а также поделиться ей с другими.
Есть три способа подключить библиотеку к Arduino IDE:

Использовать менеджер библиотек, который появился в программе с
версии 1.6.2. Необходимо использовать команду «Эскиз» → Include Library →
Manage Libraries. Появится список доступных библиотек, которые можно
включать и отключать.

Добавить скачанную библиотеку в формате *.ZIP. Для этого нужно
использовать команду «Эскиз» → Include Library → Add .ZIP library. После этого
70
выбрать файл, чтобы библиотека добавилась в список, и перезапустить
программу.

Добавить файл с библиотекой вручную. Для этого архив потребуется
распаковать и проследить, чтобы все файлы оказались в одной папке. После этого
её нужно будет поместить в каталог с пользовательскими библиотеками, который
располагается по адресу «Мои документы\Arduino\libraries» (Windows) или
«~/Документы/Arduino/libraries» (Linux). Такой способ достаточно сложен, его
рекомендуют в первую очередь опытным программистам.
Изначально в среде разработки Arduino IDE включен минимальный набор
стандартных библиотек. Также на сайте Arduino.cc имеется огромный список
библиотек. При необходимости можно загрузить и другие билиотеки со
сторонних ресурсов
Для того, чтобы уменьшить количество строк кода и сделать его более
читаемым, повторяющиеся участки объединены в небольшие функции, такие как:
 функция вкл/откл набора воды (int turn_water(int a); где а – переменная
принимающая значение 0 или 1);
 функция вкл/откл вентилятора (int turn_fan(int a); где а – переменная
принимающая значение 0 или 1);
 и др.
Рассмотрим, как осуществляется взаимодействие микроконтроллера с LCD
дисплеем. Как упоминалось ранее, в LCD дисплее имеется собственный
контроллер со своей разветвленной системой команд. На рисунке 4.1.
представлены
наиболее
употребляемые
команды,
применяемые
при
взаимодействии микроконтроллера с дисплеем.
Все команды взаимодействия можно разделить на две группы: прямого и
косвенного действия. Первая группа команд не
требует передачи данных и
занимают адреса 0x01-0x3F. Со второй группой команд обязательно следует
передача одного или нескольких байтов информации (диапазон выше 0x3F).
Для работы с Serial LCD используется протокол I2C.
71
I2C/IIC (Inter-Integrated Circuit) – это протокол, изначально создававшийся
для связи интегральных микросхем внутри электронного устройства. Разработка
принадлежит фирме Philips. В основе i2c протокола является использование 8битной шины, которая нужна для связи блоков в управляющей электронике, и
системе адресации, благодаря которой можно общаться по одним и тем же
проводам с несколькими устройствами. Мы просто передаем данные то одному,
то другому устройству, добавляя к пакетам данных идентификатор нужного
элемента.
Рисунок 4.1 – Команды LCD
Самая простая схема I2C может содержать одно ведущее устройство (чаще
всего это микроконтроллер Ардуино) и несколько ведомых (например, дисплей
LCD). Каждое устройство имеет адрес в диапазоне от 7 до 127. Двух устройств с
одинаковым адресом в одной схеме быть не должно.
Для взаимодействие Arduino c LCD 1602 по шине I2C потребуются как
минимум две библиотеки:
72

библиотека Wire.h для работы с I2C уже имеется в стандартной
программе Arduino IDE.

библиотека LiquidCrystal_I2C.h, которая включает в себя большое
разнообразие команд для управления монитором по шине I2C и позволяет сделать
скетч проще и короче.
В библиотеки LiquidCrystal_I2C реализованы следующие функции и
методы:

home() и clear() – первая функция позволяет вернуть курсор в начало
экрана, вторая тоже, но при этом удаляет все, что было на мониторе до этого.

write(ch) – позволяет вывести одиночный символ ch на экран.

cursor() и noCursor() – показывает/скрывает курсор на экране.

blink() и noBlink() – курсор мигает/не мигает (если до этого было
включено его отображение).

display() и noDisplay() – позволяет подключить/отключить дисплей.

scrollDisplayLeft() и scrollDisplayRight() – прокручивает экран на один
знак влево/вправо.

autoscroll() и noAutoscroll() – позволяет включить/выключить режим
автопрокручивания. В этом режиме каждый новый символ записывается в одном
и том же месте, вытесняя ранее написанное на экране.

leftToRight() и rightToLeft() – Установка направление выводимого текста
– слева направо или справа налево.

createChar(ch, bitmap) – создает символ с кодом ch (0 – 7), используя
массив битовых масок bitmap для создания черных и белых точек.
Для реализации алгоритма устранения дребезга кнопок была реализована в
функция BUTTON_D()
#define THRHOLD 20
unsigned char c = 0;
volatile unsigned char keypress = 0;
void BUTTON_D (void)
{unsigned char k;
// опрос выводов микроконтроллера
73
if (BitIsClear(P_B, ENTER))
k = K_ENTER;
else if (BitIsClear(P_B, CANCEL))
k = K_CANCEL;
else if (BitIsClear(P_B, UP))
k = K_UP;
else if (BitIsClear(P_B, DOWN))
k = K_D;
else{k = K_N;}
if (k) {
//если кнопка удерживается долго то записать ее номер в буфер
if (c == THRHOLD) {c = THRHOLD + 10;keypress = k; return; }
else if (comp < (THRHOLD+5)) comp++;}
else cp=0;}
Так
изначально
последовательно
опрашиваются
микроконтроллера, к которым подключены кнопки.
все
входы
Если микроконтроллер
определяет, что одна из кнопок была нажата, то, во временную переменную k
заносится соответствующий код.
Далее необходимо проверить
значение
переменной c, для того, чтобы выяснить как давно эта кнопка была нажата. Для
этого переменная c будет инкрементироваться пока не достигнет некоего
порогового значения THRHOLD. Как только значение переменной c достигнет
показания THRHOLD, значение временной переменной k будет скопировано в
буфер keypress. При этом переменная
следующих
опросах
кнопок
c изменит свое значение, чтобы при
микроконтроллер
не
инкрементировал
эту
переменную, и не производил запись в буфер. В результате, микроконтроллер
зафиксирует факт нажатия кнопки только один раз, в не зависимости от того, как
долго пользователь ее бы не удерживал.
Как уже упоминалось выше, для взаимодействия с термодатчиками
DS18B20 применяется протокол 1-Wire (однопроводный протокол). Данный
протокол реализует низкоскоростную двунаправленную полудуплексную связь.
В протоколе 1-Wire имеются несколько типов сигналов: импульс
присутствия, импульс сброса, команда записи 0,
команда записи 1, команда
74
чтения 0 и чтения 1. Все эти сигналы, за исключением импульса присутствия,
формируются на шине главным устройством — MASTERом. В нашем случае в
качестве MASTERa выступает плата Arduino.
Все
сигналы,
передаваемые
по
данному
протоколу,
формируются
одинаково. Изначально контакт 1-Wire шины с помощью резистора должен быть
подтянут к плюсу питания. Master на определенное время формирует на 1-Wire
шине ноль, а затем «отпускает» ее и, «слушает» ответ SLAVE устройства.
Физически это реализуется так.
Для записи бита:
 Вывод микроконтроллера устанавливается в режим выхода и на нем
устанавливается логический ноль (LOW).
 В
зависимости
от
передаваемого
бита
выдерживается
пауза,
длительность которой зависит от значения бита (0 или 1).
 Далее вывод переводится в режим входа в состоянии HIGH и вновь
выдерживается пауза.
Операция чтения бита:
 Вывод микроконтроллера устанавливается в режим выхода и на нем
устанавливается логический ноль (LOW).
 Выдерживается определенная пауза, вывод переводится в режим входа в
состоянии HGH и вновь выдерживается пауза.
 Далее микроконтроллер считывает потенциал вывода.
На
основе
информации
описанной
выше
рассмотрим
алгоритм
взаимодействия микроконтроллера с датчиком DS18B20.
Изначально нужно выставить сигнала сброса.
Далее микроконтроллер
сбрасывает 1-Wire шину в ноль на 480 мкс, и вновь «отпускает» ее. Таким
образом подключенный к шине датчик температуры DS18B20, обнаруживает
положительный перепад и после паузы в 15-60 мкс должен ответить
микроконтроллеру импульсом присутствия («проваливает» шину в ноль на время
от 60 до 240 мкс).
75
Взаимодействие
между
устройствами
по
1-Wire
шине
происходит
последовательно. Изначально передаются младшие биты. Передача одного бита
выполняются
в
течении
фиксированного
промежутка
времени.
Данные
промежутки времени получили названия тайм слота. Тайм слоты записи и тайм
слоты чтения отличаются друг от друга. Общая длительность любых тайм слотов
должна быть не менее 60 мкс, а пауза между ними больше 1 мкс. Так для
передачи нуля микроконтроллер должен «провалить» шину на время в диапазоне
60 - 120 мкс. Далее он должен «отпустить» шину и выдержать паузу не мене
одной микросекунды, перед записью следующего бита. При передаче единицы
необходимо «провалить» шину на время в диапазоне
1 - 15 мкс, затем
«отпустить» ее и вновь выдержать паузу. Паза должна быть такой, чтобы
длительность тайм слота была > 60+1 мкс.
В данном взаимодействии датчик температуры выступает в роли
подчиненного устройства и может передавать данные, только в тот момент
времени, когда микроконтроллер сформирует на шине тайм слот чтения. В
данном случае, если датчик температуры хочет передать ноль, он должен
удерживать шину в «проваленном» состоянии до конца тайм слота. Если он хочет
передать единицу, то он должен оставить шину в «подтянутом» состоянии.
Микроконтроллер через 15 мкс после начала тайм слота чтения может приступить
к считыванию данные с шины.
В результате последовательность операций для взаимодействия с датчиком
температуры принимает следующий вид:
1) Процесс инициализации;
2) Подача команды ROM;
3) Подача функциональной команды датчику.
Рассмотрим их более подробно.
В момент инициализации микроконтроллер как было описано выше
проваливает шину, отпускает ее и ждет ответа. Если к шине подключен хотя бы
один датчик температуры, он должен ответит импульсом присутствия.
76
При получении данного импульса микроконтроллер посылает по шине
ROM команду. Существует пять ROM команд:
- search rom (код команды 0xF0). Данная команда позволяет определить
адреса 1-Wire устройств, которые подключены в данный момент к шине. Любое
1-Wire устройство имеет 64 разрядный код. Данный код заносится в ПЗУ
устройства и используется для его адресации при подключении к
шине.
Младший байт определяет семейство устройства (так, код датчиков температуры
DS18B20 это 0x28). Следующие 6 байт — это серийный номер устройства. И
старший байт представляет циклический избыточный код, который вычисленный
на основе первых 7 байтов.
- read rom (0x33). Если к шине подключено только одно устройство, то для
получения его 64-разрядный кода мы можем воспользоваться данной командой.
- skip rom (0xCC). Данная команда используется, если по шине необходимо
передать широковещательный сигнал, т.е. на него должны отреагировать все
устройства. Например, она может быть применена, если при подключении к шине
нескольких датчиков температуры и необходимо запустить на них на всех
температурное преобразование. Также эту команду можно применить, если к
шине подключено только одно устройство, и мы хотим пропустить процесс
адресации к нему.
- match rom (0x55). Эта команда используется, если необходимо обратиться
к конкретному устройству на шине. После передачи данной команды Master
должен выставить 64 разрядный код устройства, к которому он хочет обратиться.
В результате дальнейший диалог с Master-ом будет вести только устройство с
выставленным кодом. Остальные устройства будут находиться в режиме
ожидания, пока не получат импульс сброса.
- alarm search (0xEC). Действие этой команды совпадают с действиями
при выполнении команды search rom, только отвечать на нее будут Slave
устройства у которых установлен флаг аварии. Так у датчика температуры
DS18B20 данный флаг буден взведен, если температура превысит допустимые
пороги, которые задаются регистрами Tl и Th.
77
Данные
функциональные
команды
позволяют
микроконтроллеру
записывать и читать данные из памяти датчика температуры DS18B20, запускать
температурное преобразование. Рассмотрим более подробно, какая информация
храниться в памяти датчика температуры. Память состоит из 8 байт оперативной
памяти (ОЗУ) и 3 байта EEPROM – рисунок 4.2.
Рисунок 4.2 – Структура памяти датчика температуры DS18B20
Байты 0 и 1 – хранят информацию об измеренной температуре. Изначально
при подаче питания на датчик показания равны +85 градусов. Формат регистров
этих байтов представлен на рисунке 4.3.
S – знак температуры (0 – положительная температура, 1 – отрицательная),
BIT10–BIT4 - целая часть значения температуры, BIT3-BIT0 – дробная часть.
Рисунок 4.3 – Формат регистров байтов измеренной температуры датчика
DS18B20
Для хранения отрицательной температуры используется дополнительный
код.
Следующие два байта (2 и 3) – верхний и нижний температурные пороги.
Значения этих байтов задаются пользователем. Начальное значение этих байтов
78
зависит от содержимого EEPROM памяти. Формат обоих регистров представлен
на рисунке 4.4.
S – знак температуры (0 – положительная температура, 1 – отрицательная), BIT6–
BIT0 - целая часть значения температурного порога.
Рисунок 4.4 – Формат регистр порогового значения температуры DS18B20
Следующий 4 байт – регистр конфигурации. Он определяет температурное
разрешение датчика. Изначально значение регистра определяет содержимое
EEPROM памяти. Изначально в новом датчике разрешение устанавливается в 12
бит. Конфигурация данного регистра представлена на рисунке 4.5.
Рисунок 4.5 – Формат конфигурационного регистра датчика температуры
DS18B20
Биты R1 и R0 задают температурное разрешение, формат которого
представлен на рисунке 4.6.
Рисунок 4.6 – Формат температурного разрешения DS18B20
Как видно из рисунка в зависимости от заданного температурного
разрешения зависит и время преобразования.
Следующие три байта памяти (5 - 7) зарезервированы и не применяются.
Последний восьмой байт содержит циклический избыточный код, который
используется для проверки подлинности принятых данных.
Датчик температуры DS18B20 поддерживает следующие функциональные
команды:
79
- convert t (0x44).
Данная команда позволяет
запустить
процесс
температурного преобразования.
- write scratchpad (0x4E). Данная команда позволяет микроконтроллеру
записывать в оперативную память датчика байты – Th, Tl и конфигурационный
регистр.
После
выставления
данной
команды
микроконтроллер
должен
последовательно передать по 3 байта определяющие соответствующие значения.
- read scratchpad (0xBE). Данная команда служит для считывания
содержимого оперативной памяти датчика. Данные в ответ передаются начиная с
младшего бита с нулевого по восьмой байт. Если дальнейший прием данных
микроконтроллер не нужен, то он может выставить сигнал сброса. Например,
если микроконтроллеру нужны только байты хранящие значения измеренной
температуры.
-
copy
scratchpad
(0x48).Эта
функциональная
команда
позволяет
скопировать значения 2, 3 и 4 байта оперативной памяти в EEPROM память
датчика.
- recall E2 (0xB8). Данная функциональная команда позволяет наоборот
записать во 2, 3 и 4 байты оперативной памяти значения, хранящиеся в EEPROM.
Данная операция выполняется автоматически каждый раз, когда на датчик
подается питание.
- read power supply (0xB4). Данная команда позволяет определить, как
подается питание на датчик температуры. Если питание датчика осуществляется
от сигнальной линии (паразитное питания), то во время тайм слота чтения шина
будет удерживаться в нуле, иначе датчик напитывается от внешнего источника
питания.
Для взаимодействия с датчиками температуры DS был разработан
специальный модуль, листинг которого представлен в приложение А.
Для работы с
сервоприводом было принято решение воспользоваться
стандартной библиотекой Servo.h. После ее подключения необходимо объявить
переменную типа "servo1".
80
Сигнал для управления сервоприводом должен быть аналоговым. Поэтому
далее необходим связать сервопривод с аналоговым выходом. для этого можно
использовать команду: servo1.attach(11).
Для
передачи
на
сервопривод
управляющего
сигнала
необходимо
использовать команду servo1.write(X);. В данной команде параметр X позволяет
определить угол поворота.
81
ЗАКЛЮЧЕНИЕ
В этой выпускной квалификационной работе была поставлена цель –
разработать систему управления микроклиматом теплицы в личном подсобном
хозяйстве, способную обеспечивать заданный пользователем режим.
В настоящее время широкое применение находят автоматизированные
тепличные хозяйства, поэтому работа является актуальной.
В ходе работы была запрограммирована плата Arduino UNO, которая
выполняет роль промышленного контроллера. К ней подключены все датчики и
управляющие устройства. Загруженная в плату программа позволяет работать
макету в автоматическом режиме. При необходимости пользователь может
менять изначальные настройки системы.
В ходе выполнения работы были решены следующие задачи:
1) Проведен анализ современных решений автоматизации теплиц и
выявлены основные пути их реализации.
2) Разработана структурная схема системы управления микроклиматом
теплицы.
3) Выбран микроконтроллер.
4) Подобраны датчики для измерения внутренних и внешних параметров.
5) Выбраны необходимые исполнительные механизмы.
6) Разработаны алгоритмы управления механизмами, используемые в
системе управления теплицей.
7) Разработан рабочий прототип системы управления микроклиматом
теплицы в личном подсобном хозяйстве, способной обеспечивать заданный
пользователем режим.
82
СПИСОК ЛИТЕРАТУРЫ
1.
Соммер
У.
Программирование
микроконтроллерных
плат
Arduino/Freeduino [Текст]/У. Соммер . - СПб.: БХВ- Петербург, 2012. - 256 с. ил (Электроника).
2.
Ревич Ю. В. Занимательная электроника [Текст]/ Ю.В. Ревич. — 3-е
изд., перераб. и доп. — СПб.: БХВ-Петербург, 2015. — 576 с.: ил.
3.
Петли В. А. Проекты с использованием контроллера Arduino
[текст]./В.А, Петли – 2-е изд. Перераб. И доп. – СПБ.: БХВ-Петербург, 2015. – 464
с.: ил – (электроника).
4.
Francis Perea Arduino Essentials. Published by Packt Publishing Ltd.
Livery Place 35 Livery Street Birmingham B3 2PB, UK.
5.
Калинина В.П. Индивидуальные теплицы в современном жилище",
пер. с фин. В. П. Калинина, под. ред Н. В. Оболенского [Текст], Москва,
Стройиздат, 1987 г.
6.
Баранов
В.Н.
Применение
микроконтроллеров
AVR:
схемы,
алгоритмы, программы.[Текст]/В.Н. Баранов - М.Ж Издательский дом «Додэка
XXI», 2004
7.
Тигранян
Р.Э.
Микроклимат.
Электронные
системы
обеспечения.[Текст]/ Р.Э. Тигранян - ИП. Радиософт, 2005
8.
Гребнев
В.В.
Микроконтроллеры
семейства
AVR
фирмы
Atmel.[Текст]/ В.В. Гребнев - М.: ИП РадиоСофт, 2002 - 176с.
9.
Кашкаров, А.П.Электронные схемы для «умного дома» [Текст] /А.П.
Кашкаров.– М.: НТ Пресс, 2007.– 256с.
10.
Белов
А.В.
Самоучитель
разработчика
устройств
на
микроконтроллерах AVR. [Текст] / А.В. Белов. – СПб.: Наука и Техника, 2008. –
544 с.: ил.
83
11.
Кравченко
А.В.
10
практических
устройств
на
AVR-
микроконтроллерах. Книга 2 [Текст] / А.В. Кравченко – К.: «МК-Пресс», СПб.:
«Корона-ВЕК», 2009. – 320с., ил.
12.
Ревич Ю.В. Занимательная электроника. – 3-изд., перераб. И доп.
[Текст] / Ю.В.Ревич – СПб.: БХВ-Петербург, 2015. – 576 с.: ил.
84
ПРИЛОЖЕНИЕ А
(обязательное)
ПРОГРАММНЫЙ КОД МОДУЛЯ УПРАВЛЕНИЯ ДАТЧИКОМ
ТЕМПЕРАТУРЫ DS81B20
DS81B20.h
#ifndеf DS18B20_H
#dеfinе DS18B20_H
#includе <аvr/iо.h>
#includе <util/dеlаy.h>
#includе <аvr/intеrrupt.h>
/*** Инициализация DS18B20 ***/
unsignеd chаr DS18B20_init(vоid);
/*** Функция чтения байта из DS18B20 ***/
unsignеd chаr rеаd_18b20(vоid);
/*** функция записи байта в DS18B20 ***/
vоid writе_18b20(unsignеd chаr dаt);
/*** опрос датчика DS18B20 ***/
unsignеd chаr DS18B20_tеmp_rеаd( unsignеd chаr *Tеmp);
unsignеd chаr DS18B20_t_rеаd( unsignеd chаr *Tеmp);
#еndif //DS18B20
DS81B20.c
#includе "DS18B20.h"
/*** Инициализация DS18B20 ***/
unsignеd chаr DS18B20_init(vоid)
{unsignеd chаr ОK_Flаg = 0;
PОRTC &= ~(1 << PC0); // устанавливаем низкий уровень
DDRC |= (1 << PC0);
_dеlаy_us(490);
DDRC &= ~(1 << PC0);
_dеlаy_us(68);
ОK_Flаg = (PINC & (1 << PC0)); // ловим импульс присутствия датчика
// если ОK_Flаg = 0 датчик подключен, ОK_Flаg = 1 датчик не подключен
_dеlаy_us(422);
rеturn ОK_Flаg;
}
/*** Функция чтения байта из DS18B20 ***/
unsignеd chаr rеаd_18b20(vоid)
{
85
unsignеd chаr i;
unsignеd chаr dаt = 0;
fоr(i = 0;i < 8;i++)
{
DDRC |= (1 << PC0);
_dеlаy_us(2);
DDRC &= ~(1 << PC0);
_dеlаy_us(4);
dаt = dаt >> 1;
if(PINC & (1 << PC0))
{
dаt |= 0x80;
}
_dеlаy_us(62);
}
rеturn dаt;
}
/*** функция записи байта в DS18B20 ***/
vоid writе_18b20(unsignеd chаr dаt)
{
unsignеd chаr i;
fоr(i = 0;i < 8;i++)
{
DDRC |= (1 << PC0);
_dеlаy_us(2);
if(dаt & 0x01)
{
DDRC &= ~(1 << PC0);
}
еlsе
{
DDRC |= (1 << PC0);
}
dаt = dаt >> 1;
_dеlаy_us(62);
DDRC &= ~(1 << PC0);
_dеlаy_us(2);
}
}
/*** опрос датчика DS18B20 ***/
unsignеd chаr DS18B20_tеmp_rеаd( unsignеd chаr *Tеmp)
86
{
unsignеd chаr ОK_Flаg = 0, Tеmp_H_1=0, Tеmp_L_1=0, tеmp_flаg_1=0;
ОK_Flаg=DS18B20_init();
// инициализация DS18B20
if(ОK_Flаg == 1) // если датчик не ответил
{
rеturn ОK_Flаg;
}
// проверка кода датчика
writе_18b20(0xCC);
writе_18b20(0x44);
// запуск температурного преобразования
_dеlаy_ms(1000);
ОK_Flаg=DS18B20_init();
// инициализация DS18B20
if(ОK_Flаg == 1) // если датчик не ответил
{
rеturn ОK_Flаg;
}
writе_18b20(0xCC);
// проверка кода датчика
writе_18b20(0xBЕ);
// считываем содержимое ОЗУ
Tеmp_L_1 = rеаd_18b20(); // читаем первые 2 байта блокнота
Tеmp_H_1 = rеаd_18b20();
tеmp_flаg_1 = 1;
// флаг знака температуры равен 1(плюс)
if(Tеmp_H_1 &(1 << 3)) // проверяем бит знака температуры на равенство единице
{
signеd int tmp;
tеmp_flаg_1 = 0;
// флаг знака равен 0(минус)
tmp = (Tеmp_H_1 << 8) | Tеmp_L_1;
tmp = -tmp;
Tеmp_L_1 = tmp;
Tеmp_H_1 = tmp >> 8;
}
Tеmp[0]=Tеmp_L_1;
Tеmp[1]=Tеmp_H_1;
Tеmp[2]=tеmp_flаg_1;
rеturn ОK_Flаg;
}
/*** чтение температуры датчика DS18B20 ***/
unsignеd chаr DS18B20_t_rеаd( unsignеd chаr *Tеmp)
{ unsignеd chаr tеmpint; // переменные для целого значения температуры
unsignеd chаr pоinttеmp; // переменные для дробного значения температуры
if(DS18B20_tеmp_rеаd(Tеmp) == 1) // если датчик не ответил
87
{
rеturn 0;
}
еlsе
{
tеmpint = ((Tеmp[1] << 4) & 0x70)|(Tеmp[0] >> 4); // вычисляем целое значение
температуры
//преобразуем целую часть в разряды
//
tеmpint1 = tеmpint % 1000 / 100;
//tеmpint2 = tеmpint % 100 / 10;
//
tеmpint3 = tеmpint % 10;
pоinttеmp = Tеmp[0] & 0x0F; // вычисляем дробное значение температуры
pоinttеmp = pоinttеmp * 625;
pоinttеmp = pоinttеmp / 1000;
Tеmp[1]=Tеmp[0];
Tеmp[0]=tеmpint;
// Tеmp[1]=pоinttеmp;
rеturn 1;
}
}
// точность температуры
88
ПРИЛОЖЕНИЕ Б
(обязательное)
ПРОГРАММНЫЙ КОД МОДУЛЯ УПРАВЛЕНИЯ КНОПКАМИ - BUTTON
BUT.h
#ifndef BUT_h
#define BUT_h
#include <ioavr.h>
//определяем порт, к которому подключены кнопки
#define PORT_BUT
#define P_B
PORTD
PIND
#define DDRX_BUT
DDRD
//номера выводов, к которым подключены кнопки
#define DOWN
6
#define CANCEL
4
#define UP
5
#define ENTER
3
//коды, которые будут записываться в буфер
#define K_N
0
#define K_E
1
#define K_C
2
#define K_UP
#define K_D
3
4
//определяем продолжительность удерживания кнопки для формирования сигнала
#define THRHOLD 20
void BUTTON_Init(void);
void BUTTON_D(void);
unsigned char BUTTON_GetKey(void);
void BUTTON_SetKey(unsigned char key);
#endif //BUT_H
BUT.с
#include "but.h"
#define MASK_BUT
(1<<DOWN)|(1<<CANCEL)|(1<<UP)|(1<<ENTER)
#define ClearBit(reg, bit)
(reg) &= (~(1<<(bit)))
#define SetBit(reg, bit)
(reg) |= (1<<(bit))
#define BitIsClear(reg, bit)
((reg & (1<<(bit))) == 0)
#define BitIsSet(reg, bit)
((reg & (1<<(bit))) != 0)
89
volatile unsigned char keypress = 0;
unsigned char c = 0;
void BUTTON_Init(void)
{
DDRX_BUT &= ~(MASK_BUT);
P_B |= MASK_BUT;
}
void BUTTON_D (void)
{unsigned char k;
// опрос выводов микроконтроллера
if (BitIsClear(P_B, ENTER))
k = K_ENTER;
else if (BitIsClear(P_B, CANCEL))
k = K_CANCEL;
else if (BitIsClear(P_B, UP))
k = K_UP;
else if (BitIsClear(P_B, DOWN))
k = K_D;
else{k = K_N;}
if (k) {
//если кнопка удерживается долго то записать ее номер в буфер
if (c == THRHOLD)
{c = THRHOLD + 10;
keypress = k;
return;
}
else if (comp < (THRHOLD+5))
comp++;
}
else
cp=0;
}
unsigned char BUTTON_GetKey(void)
{
unsigned char ky = keypress;
keypress = KEY_NULL;
return k;
}
void BUTTON_SetKey(unsigned char k)
90
{
keypress = k;
}
1/--страниц
Пожаловаться на содержимое документа