Аппаратно-программный комплекс контроля параметров в теплице

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

Аппаратно-программный комплекс контроля параметров в теплице

Введение

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

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

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

Технические решения по автоматизации технологических процессов обычно являются типовыми. Задачи таких систем и комплексов состоят в обеспечение эффективности управления и надежности работы технологического оборудования. В состав технических средств систем автоматики необходимо включать следующие компоненты:

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

средства автоматического контроля, выполняющие функции измерения и регистрации контролируемых параметров процесса,

средства сигнализации, информирующие о достижении заданными параметрами установленных предельных значений;

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

Следует отметить, что увеличение объемов выпуска микро-ЭВМ и микроконтроллерной техники приводит к снижению их стоимости и совершенствует техническую базу автоматизации производства. Использование ЭВМ в системе управления расширяет возможности осуществления сложных алгоритмов управления при большом числе переменных величин, характеризующих ход технологического процесса.

Таким образом, данная выпускная квалификационная работа использует вышеизложенные предпосылки и посвящена разработке аппаратно-программного комплекса контроля параметров в теплице и состоит из следующих основных разделов:

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

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

в третьей главе приведена реализация программной части комплекса, включающая в себя начальную инициализация при включении питания, реализацию поддержания заданной температуры и влажности, а также работу клавиатуры и отображение информации на LCD-индикаторе. В завершении приведена инструкция пользователю;

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

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

1. Современное состояние вопроса производства растениеводческой продукции в теплице

.1 Характеристика условий окружающей среды при производстве

овощных культур

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

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

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

температурные параметры микроклимата помещения;

освещенность;

влажность внутри помещения.

Требовательность возделываемых овощных культур к температурным параметрам окружающей среды зависит от периода их жизненного цикла. Семена, относящиеся к семействам тыквенных и пасленовых, (теплолюбивые растения) начинают давать входы при 13-14°С, а для их дальнейшего развития необходимо поддержание температуры окружающего воздуха в пределах 25-30 °С. Культуры, относящиеся к холодостойким - корнеплоды, капуста, лук, развитие семян начинается при температуре ниже 10°С, а оптимальная температура дальнейшего развития лежит в пределах 18-25 °С.

Одним из агротехнических приемов повышения устойчивость молодых растений к суточным перепадам температур является закаливание. Для этого на набухшие семена необходимо воздействовать пониженной температурой (около 0°С) в течении нескольких дней, или же варьировать температуру от 18-20°С днем до 5°С ночью в течении двух недель. Изменение температуры в режиме день-ночь в пределах 3 -7°С также способствует усилению развития растений.

Следует отметить, что на повышение урожайности овощных культур существенное влияние оказывает формирование корневой системы. При высокой температуре окружающей среды, особенно в ночное время, растения сильно вытягиваются и ослабевают, что приводит к их дальнейшему медленному развитию и снижению урожайности. При снижении температуры воздуха с 18-25°С днем до 8-12°С происходит ускоренный рост корней по сравнению с надземной частью. Этот агротехнический прием необходимо выполнять по появления нескольких листьев, после чего температуру окружающей среды можно повысить.

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

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

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

Для предотвращения данных проблем необходимо поддерживать влажность воздуха внутри теплицы в дневное время в пределах 60-75%, а влажность почвы - 65-80% ( в зависимости от выращиваемой культуры). В ночное время, когда температурные параметры микроклимата уменьшаются значение влажности следует минимизировать для предотвращения развития фитофторы.

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

.2 Основы технологии выращивания огурцов в теплицах

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

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

Технология выращивания огурцов в теплицах состоит из следующих этапов:

обеззараживание семян огурцов;

подготовка каркасной системы для укрепления и подвязки растений;

поддержание заданных параметров микроклимата.

Обеззараживание семян огурцов для уничтожения плесени, грибков и бактерий необходимо осуществлять их нагреванием до заданной температуры. В течении первых трех суток температура нагрева составляет 50°С, а на четвертые сутки температуру поднимают до 75-78°С. Также рекомендуется обработка пестицидами в соответствии с инструкцией к препарату и предпосадочное замачивание семян в растворе микроэлементов. Кроме того необходимо выполнить обеззараживание почвы и воздуха внутри теплицы.

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

Поддержание заданных параметров микроклимата является наиболее важной задачей производства огурцов в теплицах. Оптимальной температурой воздуха для получения всходов семян является 27-28°С. После появления всходов и до образования 4-5 листьев температурный режим необходимо изменить. Днем это 15-17 °С, а в ночное время 12-14 °С. Проросшие и закаленные растения высаживают в тепличный грунт с плотностью 3-4 растения на один квадратный метр. В период роста и плодоношения температура внутри помещения должна находиться в пределах 22-26 °С в дневное время и 18-20 °С в ночное, а влажность составлять 75-85%.

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

.3 Требования, предъявляемые к современным АСУМТ

Неотъемлемой частью современных тепличных комплексов по круглогодичному выращиванию овощеводческой продукции являются автоматизированные системы управления микроклиматом теплиц (АСУМТ). Это обусловлено наличием большого количества исполнительных механизмов, а также высокими требованиями, предъявляемыми к качеству их функционирования. При этом следует учесть влияние внешних параметров окружающей среды на внутренние параметры микроклимата.

Основные требования предъявляются к современным АСУМТ учитывают размер теплицы и функциональное назначение. Здесь можно выделить следующие группы:

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

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

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

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

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

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

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

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

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

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

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

структура системы управления, учитывающая в своем централизованность технических средств, количество уровней управления и структуру построения сети передачи данных;

надежность исполнительного оборудования и применяемой элементной базы;

реализация возможности улучшения количественных показателей и увеличение набора функциональных возможностей.

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

.4 Обобщенная архитектура автоматизированного комплекса поддержания параметров микроклимата

Обобщенная архитектура автоматизированного комплекса поддержания параметров микроклимата в теплице, представленная на рис. 1, представляет собой систему, состоящей из следующих уровней:

нижний уровень;

верхний уровень (серверная часть);

клиентское устройство.

Нижний уровень выполнен на основе микропроцессорной платформы и обеспечивает реализацию следующих функций;

сбор данных от датчиков, расположенных внутри помещения и передачу этой информации через верхний уровень клиентскому устройству в режиме реального времени;

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

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

обеспечение контрольно-управляющих взаимодействий;

обеспечение связи с верхним уровнем.

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

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

Рисунок 1.1 - Обобщенная архитектура поддержания параметров

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

- прием и обработка информации нижнего уровня о текущем состоянии комплекса;

хранение полученной информации;

взаимодействие с клиентским программным обеспечением;

транзит команд от оператора к микропроцессорному устройству нижнего уровня;

хранение и передача оптимальных значений параметров микроклимата в зависимости от выращиваемой культуры и ее жизненного цикла;

слежение за оптимальными показателями микроклимата в режиме реального времени и принятие мер оповещения в случае возникновения аварийных ситуаций.

Клиентское устройство может реализовываться на персональном компьютере, планшете или мобильном телефоне и взаимодействовать с сервером используя локальную сеть или Интернет. К основным функциям клиентской части можно отнести:

запрос данных с сервера или передача команд нижнему уровню системы;

визуализация данных;

оповещение оператора в случае возникновения критической ситуации.

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

1.5 Функциональные возможности комплекса, цель и задачи работы

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

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

автоматизированные установки для подачи сбалансированных по микро- и макроэлементам водных растворов питательных веществ;

системы капельного полива с определением рН в подаваемой воде и дренажах;

искусственное освещение, компенсирующее недостаток естественного солнечного света;

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

использование современных методов вентиляции и углекислотных подкормок для повышения урожайности и качества готовой продукции

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

Данный аппаратно-программный комплекс должен обеспечивать возможность его использования при температуре окружающей среды от -40 до +50 оС, и предоставлять возможность поддержания внутренней температуры в пределах от +1 до +30оС. Так же в комплексе следует предусмотреть возможность автоматического поддержания параметров влажности воздуха в заданных пределах вне зависимости от параметров влажности наружного воздуха.

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

Разработать системно-алгоритмическую модель нижнего уровня комплекса с обоснованием её структуры и определением логических связей между блоками;

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

Произвести программную реализацию взаимодействия аппаратных компонентов;

Провести экономическую оценку принятых решений и обосновать безопасные приемы работы на ЭВМ.

2. Системно-алгоритмическая модель аппаратно-программного комплекса автоматического контроля параметров микроклимата теплицы

алгоритмический микроклимат контроль

2.1 Структурная схема АПК контроля параметров теплицы

Начальным этапом разработки системно-алгоритмической модели аппаратно-программного комплекса контроля параметров теплицы является определение количества функциональных блоков и разработка структурных связей между ними. Исходя из рекомендаций [23, 24] для надежного функционирования АПК необходимо иметь следующие группы оборудования:

исполнительное оборудование, представленное осветительными приборами (для поддержания заданных параметров освещенности), нагревательными элементами (для поддержания заданных параметров температуры), вентиляционным оборудованием (для поддержания влажностных параметров и уровня углекислого газа), а также системы полива (для поддержания влажностного баланса как почвы, так и воздуха);

измерительное оборудование, представленное датчиками для измерения освещенности, температуры и влажности воздуха, влажности почвы и содержания углекислого газа в составе воздуха;

микроконтроллерного блока управления, считывающего текущие показания датчиков, расположенных внутри теплицы, производящего обработку этой информации и по её результатам производящего управление исполнительным оборудованием;

оборудованием ввода и отображения информации, представленного клавиатурой и дисплеем и необходимого для задания параметров микроклимата (температуры, влажности, освещенности концентрации углекислого газа) и оперативного отображения текущей информации.

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

блока управления исполнительным оборудованием (лампочками, нагревательными элементами, вентиляторами, водяным насосом, испарителями);

блока датчиков (освещенности, температуры, влажности, содержания углекислого газа, закрытии дверей);

блок управления;

блок ввода и отображения информации;

Структурная организация комплекса представлена на рис. 2.1.

Рисунок 2.1 - Структурная организация комплекса

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

2.2 Логическая схема взаимодействия компонентов комплекса

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

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

датчик освещенности;

датчик температуры внутри теплицы;

датчик температуры снаружи теплицы;

датчик влажности воздуха;

датчик влажности почвы;

датчик уровня СО2;

датчик герметичности помещения.

Блок управления комплексом необходимо выполнить в виде центрального управляющего и контролирующего устройства на основе микроконтроллера. Данный блок, выполняющий функции по обработке информации и общим управлением системой должен иметь в своем составе порты ввода-вывода, Flash-память для хранения программы, EEPROM-память для длительного хранения настраиваемых значений, RAM-память для оперативного хранения переменных, АЦП для считывания сигналов с датчиков, таймеры.

Для управления исполнительным оборудованием, непосредственно осуществляющим поддержание заданных параметров микроклимата необходимо в блок управления исполнительным оборудованием включить блоки управления следующего назначения:

включения искусственного освещения;

выключения искусственного освещения;

включения нагревательных элементов;

выключения нагревательных элементов;

включения водяного насоса;

выключения водяного насоса;

включения вентиляторов;

выключения вентиляторов;

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

клавиатуру, для ввода параметров или их изменения;

дисплей, для отображения вводимых или контроля текущих параметров.

Таким образом, логическая схема взаимодействия компонентов комплекса с учетом рассмотренного оборудования представлена на рис. 2.2.

Рисунок 2.2 - Логическая структура взаимодействия

компонентов комплекса

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

температура воздуха внутри теплицы (оС);

влажность воздуха внутри теплицы (%);

влажность почвы (%);

освещенность;

продолжительность периода искусственного освещения (ч);

содержание СО2 в воздухе;

значения интервала времени выращивания продукции;

текущее значение времени.

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

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

.3 Выбор аппаратных компонентов комплекса

Для выполнения блоками вышеуказанных функций необходимо подобрать аппаратные компоненты комплекса.

В качестве блока управления комплексом, выполненного в виде центрального управляющего и контролирующего устройства выбираем микроконтроллер MSP430F1132, разработанный корпорацией TI (Texas Instruments) производства США. Данный микроконтроллер имеет в своем составе 16-ти битное ядро RISC-архитектуры, Flash-memory объёмом 8 Кбайт и 256 байт RAM. Также имеется 10-разрядный АЦП и 14 линий ввода-вывода. Диапазон питающего напряжения составляет 1,8…3,6 V, а потребление тока в активном режиме - 280 мкА. Кроме того имеется 16-битный таймер А с тремя регистрами захвата сравнения, встроенный отладочный интерфейс JTAG, а цикл выборки инструкций составляет 125 нсек.

Датчик температуры DS18B20 [20] представляет собой цифровой термометр с программируемым разрешением, от 9 до 12-bit, которое может сохраняться во внутренней энергонезависимой памяти EEPROM. Он обменивается данными по 1-Wire шине и при этом может быть как единственным устройством на линии, так и работать в группе. Все процессы на шине управляются встроенным микропроцессором. Диапазон измерений от -55°C до +125°C, а в диапазоне от -10°C до +85°C точность составляет 0.1°C. В дополнение, DS18B20 может питаться напряжением линии данных (“parasite power”), при отсутствии внешнего источника напряжения. Таким образом, данный датчик может применяться как внутри помещения, так и снаружи.

Датчик освещенности (солнечной радиации) ОС-100 [21] обеспечивает контроль интенсивности дневного света в теплицах. Для применения внутри помещения используется вторая модификация с диапазоном 500Вт/м2. Контролируемый спектр 400-1100нм, ток сигнала выхода 4-20мА, а длина кабеля до 500м. Датчик устойчив к воздействию воды и различных агрессивных сред, нечувствителен к конденсации влаги, обладает косинусная коррекция и имеет класс защиты IP65.

Датчик влажности Honeywell HIH-4000 [19] предназначен для измерения этого параметра в диапазоне от 0 - 100%, в диапазоне температур -40+85 °C и имеющий на выходе напряжение пропорциональное влажности окружающей среды.

Датчик влажности почвы 10HS [22] позволяет измерять объемное содержание влаги в большом объеме выборки почвы - 1 л. Он работает с точностью ±2,5% при температуре от 10 до50 С .

Датчик контроля СО2 СО100 [21] предназначен для применения в теплицах. В датчике используется сменный высокостабильный оптический газовый сенсор. Диапазон 0…2000ppm, с точностью ± 50ppm (2% от измеряемого значения). Выход: 0-10В / 4-20мА. Возможно применение датчика в условиях распыления воды.индикатор на базе микроконтроллера PCF 8812, управляющий матрицей формата 65х102. имеющий последовательный интерфейс связи, производства фирмы Philips.

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

.4 Командная архитектура комплекса

Командная архитектура аппаратно-программного комплекса контроля параметров в теплице на рис. 2.3.

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

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

Рисунок 2.3 - Командная архитектура комплекса

.5 Разработка алгоритмов взаимодействия компонентов комплекса

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

алгоритм поддержания заданной температуры помещения;

алгоритм поддержания заданной влажности почвы.

Алгоритм поддержания заданной температуры представляет собой последовательности выполняемых действий, направленных на поддержание заданного параметра температуры внутри помещения теплицы.

Данный алгоритм представлен на рис. 2.4. Он реализуется после проведения начальной инициализации и перехода системы в основной рабочий режим. Здесь необходимо задать рекомендуемую температуру внутри помещения (tзад), а также максимальную (tmax) и минимальную температуру (tmin), в пределах которых допускается рост и развитие растений. Если температурные параметры находятся вне этого интервала, то это может привести к гибели растений.

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

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

В случае не совпадения текущей температуры с заданной, система выполняет ее коррекцию. При выполнении условия tтек < tзад производится включение нагревателя и передается управление подпрограмме отсчета времени. Данное действие необходимо выполнять в течении нескольких минут (в зависимости от объема теплицы и количества нагревательных элементов) поскольку нагрев воздуха является инерционным процессом.

Рисунок 2.4 - Алгоритм поддержания заданной температуры

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

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

Алгоритм поддержания заданной влажности представляет собой последовательности выполняемых действий, направленных на поддержание заданного параметра влажности внутри теплицы и представлен на рис. 2.5. Данный алгоритм также реализуется после проведения начальной инициализации и перехода системы в основной рабочий режим. Здесь необходимо задать рекомендуемую влажность почвы (wзад), а также максимальную (wmax) и минимальную влажность (wmin), в пределах которых допускается рост и развитие растений. Если параметры влажности находятся вне этого интервала, то растения могут засохнуть , или наоборот сгнить.

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

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

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

Рис 2.5. - Алгоритм поддержания заданной влажности

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

. Реализация программой части аппаратно-программного комплекса

.1 Выбор средств разработки

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

Си позволяет написать большие программы с минимумом ошибок по правилам процедурного программирования и имеет следующие особенности:

простую языковую базу, из которой вынесены в библиотеки многие существенные возможности, вроде математических функций или функций управления файлами;

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

систему типов, уменьшающую набор операций;

использование препроцессора для, например, определения макросов и включения файлов с исходным кодом;

непосредственный доступ к памяти компьютера через использование указателей;

минимальное число ключевых слов;

передачу параметров в функцию по значению, а не по ссылке (при этом передача по ссылке выполняется с помощью указателей);

.2 Программная реализация секции инициализации комплекса

Инициализация комплекса необходима для настройки встроенного оборудования микроконтроллера согласно его техническому описанию путем записи данных в регистры управления. main( void )

{

// установка внешнего резонатора 8MHz = XT2OFF + XTS; // внешний резонатор на XT1

unsigned int i;

{disable OFIFG; // очистить флаг ошибки резонатора

for (i = 0xFF; i > 0; i--); // ждем устойчивой работы резонатора

}((IFG1 & OFIFG)); // резонатор работает устойчиво ? = SELM_3 + SELS + DIVS_3; // включить тактирование от XT1, SMCLK = OSC / 8= WDTIE; // разрешить прерывание WDT

// настройка таймера A0= TIMERA;= TCOMP(50000); // 50 ms= CCIE; // разрешить прерывание таймера А0

// настройка портов в/вDIR = 0xE0; // биты 7,6,5 выход, остальные входSEL = BIT0; // выбрать функцию АЦПOUT = BIT0; // все выходы = 0DIR = 0xFE; // бит 0 вход АЦП, остальные выходCTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // включить АЦП и разрешить прерыванияAE |= BIT0; // P2.0 выбрать вход АЦП

а также необходимо произвести начальную инициализацию LCD-индикатора записью настраиваемых параметров в контроллер PCF8812 (согласно техническому описанию)

// коды инициализации контроллера LCD (PCF8812)

const unsigned char InitCode[]= {0x21,0x80,0x09,0x15,0x07,0x20,0x0C,0x11};

// инициализация контроллера LCDInit_PCF8812(void)

{i;(i = 0 ;i < 8; i++)

{(LCDDC);_OUT_LCD(InitCode[i]);

res(LCDDC); }();}

Для обмена информацией с контроллером PCF8812 используется программно реализованный последовательный SPI-интерфейс.

void SPI_OUT_LCD(unsigned char Data)

{char i;disable LCDSCLK;(i=8; i >= 1; i--)

{disable LCDSDA; (Data & 0x80)

{enable LCDSDA;

}= Data<<1;enable LCDSCLK;

PORTLCD disable LCDSCLK;

}}

3.3 Программная реализация работы клавиатурной матрицы

Модуль работы с клавиатурной матрицей реализован на языке ассемблера и использует аппаратные особенности микроконтроллера. Для опроса кнопок на линии столбцов матрицы выставляется нулевой уровень сигнала, и разрешаются прерывания по входам, закрепленными за строками матрицы на порту микроконтроллера. Нажатые кнопки вызовут аппаратные прерывания порта. В процессе обработки прерываний будет запрограммирован таймер, который создаст аппаратную задержку длинной 50 мс, для устранения эффекта дребезга механического контакта. После этого в обработчике прерывания по таймеру будет вычислен код нажатой клавиши и передан в основной модуль программы. Таким образом, достаточно короткого программного обращения для инициирования опроса матрицы. _KEY:.b &PORTMV,R4; сохранить состояние порта R4; .b #MV_1+MV_0,&PORTMV; низкий уровень на столбцы матрицы.b #MH_1+MH_0,&INTKEYSIGNAL; разрешить прерывание для строк матрицыR4;.b R4,&PORTMV; восстановить состояние порта

_TimerA1:

// окончание задержки антидребезга контактов

// проверить нажатые клавиши.w #CCIE,&TACCTL1; запретить прерывания TimerA1R4.b &PORTMV,R4; сохранить состояние порта

push R4.b #MV_0,&PORTMV;

bic.b #MV_1,&PORTMV; установить один активный столбец.b #MH_1+MH_0,&PORTMH; проверить все строкиPress_Left_and_Right_key; ошибка, если нажаты две клавиши.b #MH_1,&PORTMH; проверить одну строкуPress_Right_key; переход, если нажата клавиша.b #MH_0,&PORTMH; проверить следующуюPress_Left_key; переход, если нажата клавиша.b #MV_0,&PORTMV; поменять активный столбец.b #MV_1,&PORTMV; .b #MH_1,&PORTMH; проверить строкуPress_Enter_key; переход, если нажата клавиша

Press_Left_and_Right_key .b #0x00,&KEYCODE; код клавиши в буферTimerEndKey_Right_key.b #0x01,&KEYCODE;TimerEndKey_Left_key.b #0x02,&KEYCODE;TimerEndKey_Enter_key.b #0x03,&KEYCODE;

TimerEndKeyR4.b R4,&PORTMV; восстановить состояние порта

pop R4_Port_Key:

// прерывание вызвано нажатыми клавишами

// запрограммировать таймер задержки

// и проверить состояние клавиш в прерывании таймераR4.b #MH_1+MH_0,&INTKEYSIGNAL; запрет прерываний от строк матрицы&TAR,R4; текущее значение таймера.w #TCOMP(50000),R4; добавить время на дребезг контактовR4,TACCR1; в регистр сравнения новый интервал R4;.b #MH_1+MH_0,&INTKEYFLAGS; сбросить флаги запроса.w #CCIE,&TACCTL1; разрешить прерывание от таймера

.4 Программная реализация 1-Wire интерфейса для связи с цифровым термометром

Фрагмент программы управления цифровым термометром DS-1820 взят из примеров применения микроконтроллеров MSP 430 фирмы TI, имеющихся на сайте производителя в свободном доступе. И реализован на языке ассемблера в связи с тем, что 1-Wire интерфейс чувствителен к изменению временных характеристик. Ассемблер предоставляет возможность учесть длительность циклов используемых команд. В связи с этим, перед использованием цикла обмена информацией, необходимо запретить все аппаратные прерывания и разрешить их на выходе из программы._DS1820:

// на время обмена информацией по 1-wire запретить все прерывания

dint;R4R5R15#Reset_1W; DS1820 Reset.b #0CCh,DATA1W; DS1820 command to skip ROM#Write_1W.b #044h,DATA1W; DS1820 comand to convert temp#Write_1W#Reset_1W; DS1820 Reset.b #0CCh,DATA1W; DS1820 command to skip ROM#Write_1W.b #0BEh,DATA1W; DS1820 command to read scratchpad#Write_1W#Read_1W; DS1820 LSB read.w DATA1W; TOS = 00|LSB#Read_1W; DS1820 LSB readDATA1W; DATA1W = MSB|00.w @SP+,DATA1W; DATA1W = MSB|LSB.w DATA1W,&Cur_Termo_DataR15R5R4;;

;------------------------------------------------------------------------------_1W; Subroutine to Reset 1-wire device and detect presence

;------------------------------------------------------------------------------.b #DQ,&PDIR;#mks(720),R15; ~ 720us delay#Delay_R15.b #DQ,&PDIR#Delay_60us; ~ 60us delay subroutinebit.b #DQ,&PIN; Check for presenceRxx#mks(480),R15; ~ 480us Delay#Delay_R15

;------------------------------------------------------------------------------_1W; enter DATA1W = 00 - FF 1-wire data to write

; BIT1W = xx

;------------------------------------------------------------------------------.w #08h,BIT1W_1W_Bit rrc.b DATA1WTX_1W_1_1W_0 bis.b #DQ,&PDIR#Delay_60us; ~ 60us delay subroutine.b #DQ,&PDIRTX_1W_x_1W_1 bis.b #DQ,&PDIR .b #DQ,&PDIR#Delay_60us; ~ 60us delay subroutine_1W_x dec.w BIT1WTX_1W_Bit

;------------------------------------------------------------------------------_1W; enter DATA1W = xx

; BIT1W = xx

; exit DATA1W = 00 - FF 1-wire data read

; BIT1W = xx

;------------------------------------------------------------------------------.w #08h,BIT1W_1W_Bit bis.b #DQ,&PDIR.b #DQ,&PDIR.b #DQ,&PIN.b DATA1W#Delay_60us; ~ 60us delay subroutine.w BIT1WRX_1W_Bit

;------------------------------------------------------------------------------_60us mov.w #mks(60),R15

;------------------------------------------------------------------------------_R15 dec.w R15Delay_R15

ret

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

.5 Программная реализация измерения влажности

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

void Moisture(void)

{long Temp;

ADC10CTL0 |= ENC + ADC10SC; // старт выборки и преобразования

_BIS_SR(CPUOFF + GIE); // ожидание окончания преобразования= ADC10MEM;= (Temp * 100) / 0x3FF; // измеренное значение в процентах

Cur_Water_Data = Temp & 0x00FF;(Set_Water_Data >= 5){(Cur_Water_Data < Set_Water_Data - 4){// сигнал();

}else Stopsignal();(Cur_Water_Data > Set_Water_Data + 4){// сигнал();

}else Stopsignal();

(Cur_Water_Data < Set_Water_Data){// если влажность малаenable vaporizer; // включить испаритель

}else{ // если велика

controller disable vaporizer; // выключить

}

}

}

.6 Программная реализация отображения информации на LCD-индикаторе

Микроконтроллер графического индикатора имеет организацию 102х65 пикселей, при этом видимых на экране 96х64 пикселя. Для удобства использования экран условно разделен на две части. В нижней части реализовано отображение цифровых значений измеряемых параметров, а в верхней - название данных параметров. Для наглядности изображения цифровой информации необходимо использовать матрицу с размером символа 15х32 пикселя, что может быть программно реализовано из стандартной цифровой матрицы 5х7.

void GraphDigit(unsigned char digit)

{char sty,i,j,s;char copy_axis_y;_t move;*= 5;(i=0;i<5;i++)

{= Table_Digit[digit+i];(j=8;j>0;j--)

{((sty & 0x80)== 0)

{= move << 4;&=~0x0F;

}

{= move << 4;|= 0x0F;

}= sty << 1;

}_axis_y = axis_Y;(j=4;j>0;j--)

{= move & 0x000000FF;_OUT_LCD(s);_OUT_LCD(s);_OUT_LCD(s); _Y++;();= move >> 8;

}_Y = copy_axis_y;_X = axis_X + 3;();

}

}

Для отображения названия режимов работы возможно использование матрицы с размером символа 6х16 пикселя, реализовано программно из матрицы 6х8.

void GraphSymb(unsigned char symb)

{char sty,i,j,s;char copy_axis_y;

uint16_t move;= ((symb - 0xC0)*6);// русские буквы начинаются с кода 192,а в таблице с 0

for (i=0;i<6;i++)

{= Table_Symb[symb+i];(j=8;j>0;j--)

{((sty & 0x80)== 0)

{= move << 2;&=~0x03;

}

{= move << 2;|= 0x03;

}= sty << 1;

}_axis_y = axis_Y;(j=2;j>0;j--)

{= move & 0x00FF;_OUT_LCD(s);_Y++;();= move >> 8;

}_Y = copy_axis_y;_X = axis_X + 1;();

}}

.7 Инструкция пользователю

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

В каждом пункте меню в режиме программирования кнопки «влево» и «вправо» имеют свои функции:

при изменении температуры кнопка «влево» позволяет прибавлять целую часть значения (единицы градусов). Дойдя до значения 35 происходит переход на значение 01, таким образом, перебор значений осуществляется по кругу, от меньшего к большему. Кнопка «вправо» аналогично изменяет десятые доли градуса от 0 до 9.

при изменении влажности кнопка «влево» уменьшает, а кнопка «вправо» увеличивает значения программируемой влажности с дискретностью 5% в диапазоне от 0 до 100%.

при изменении времени выращивания овощей (посуточно) кнопка «влево» уменьшает, а «вправо» - увеличивает количество суток в интервале 0 - 290 с шагом 1 сутки. Состояние «0» символизирует отказ от автоматического процесса выращивания.

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

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

При изменении значения программируемого параметра времени выращивания продукции, отсчет показаний текущего значения начинается с нуля.

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

4. Организационно-экономическая часть

.1 Оценка трудоёмкости программной разработки

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

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

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

, (1)

где nmик - число тысяч исходных команд в тексте программы.

= 2,4 · 1,51,05 = 3,67 чел. - мес.

В методе уточненной модели все характеристики программного продукта рассчитаем с учетом его качественного уровня.

Коэффициент уровня программной разработки (Ку.п.) определен по следующим факторам (табл.1).

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

Таблица 1 - Оценка факторов трудоёмкости

Фактор трудоемкости

Характеристика условий разработки

Рейтинг

Коэффициент затрат труда

ТАПП

Вся информация, вводимая с помощью комплекса, отражается в отчетах, т.е. при потере информацию можно восстановить

Номинальный

1

СПП

Объем кода подсистемы 1 КЧИК

Очень низкий

1

ОБД

Использование около 50% быстродействия процессора 400MHz

Номинальный

1

ОП

Использование до 30% имеющейся оперативной памяти (40-50Mb из 128 Mb)

Номинальный

1

КА

Главный специалист, опыт работы около 12 месяцев

1,19

КП

Ведущий специалист, опыт работы 3 года

Номинальный

1

КЗ

Заказчик “Федеральное производственное объединение”, четко сформулированное техническое задание.

Очень высокий

0,85

ПСМ

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

Очень высокий

0,82

ИИС

Использование современных средств анализа и проектирования - языка С и ассемблера.

Очень высокий

0,83

ОСР

Установленный срок разработки - 2 месяца, номинальный срок разработки 1 месяц

низкий

1,23


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

, (2)

где Кi - коэффициент рейтинга для i-го фактора.

Произведя подсчет, получим: Ку.п. = 0,85.

В уточненной модели все характеристики разработки рассчитываются с учетом его качественного уровня, кроме того, в модели используется понятие номинальной трудоемкости, определяемой по формуле (3), соответствующей независимому типу программного изделия:

, (3)

где nmик - число тысяч исходных команд в тексте программы,

при nmик = 1,5 тыс. команд:

= 3,2 · 1,51,05 = 4,9 чел.- мес.

Полная трудоемкость вычисляется по выражению:

, (4)п = 3,2 · 0,85 = 2,7 чел.- мес.

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

Продолжительность разработки программного продукта:

 (5)

Т = 2,5 · 4,90,38 = 4,6 мес.,

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

.2 Обоснование материальных затрат

Стоимость эксплуатации специального оборудования в течение 1 часа (Sэсо) равна сумме амортизационных отчислений и затрат на электроэнергию (SЭЛ) за этот час, и рассчитывается исходя из того, что ЭВМ работает 8 часов в день, амортизационный период для вычислительной техники (TА) - 5 лет, а также с учетом того, что в месяце 20 рабочих дней. Стоимость ЭВМ Lenovo G380 /Pentium M2N512G-AM2 /DDR 1Gb /HDD 250Gb /SVGA 256Mb /Acer 1916S 19” /FDD 3.5” /Клав./Мышь - 15600 руб. Цена приблизительно указана в соответствии с прайс-листом воронежской фирмы «РЕТ» за апрель 2014. Стоимость электроэнергии за час рассчитывается по формуле:

, (6)

где р - потребляемая мощность, кВт; Сэ - стоимость 1 кВт-ч, руб. Стоимость 1 кВт-ч составляет 2,54 руб. Для ЭВМ потребляемая мощность 0,35 кВт. Тогда для ЭВМ SЭЛ=0,35 × 2,54 = 0,84 руб.

Стоимость эксплуатации специального оборудования в течение 1 часа определяется по выражению:

, (7)

где Sco - стоимость оборудования, руб.; - амортизационный период для вычислительной техники, лет; раб - время работы в сутки, ч; ЭЛ - стоимость электроэнергии, руб.эсо = 1,36 руб.

Количество отработанных ЭВМ часов в процессе подготовки проекта приблизительно равна 700 часам, следовательно, стоимость эксплуатации специального оборудования составляет 952 руб.

.3 Расчёт заработанной платы

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

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

, (8)

где Оmin - минимальная заработная плата (4430 руб.); Кt - тарифный коэффициент.

Таким образом З/п руководителя разработки составляет

Ом = 4430·4,6 = 20378 руб.

З/п инженера - программиста - Ом=4430·4=17720 руб.

Расчет основной зарплаты рассчитывается по формуле.

, (9)

где Р - число работников определенной квалификации, чел;

Впд - время участия работников определенной квалификации в данном виде работ, ч;

Ом - месячный оклад, руб; - длительность работы в день, час;

Др - среднее число рабочих дней.

Зарплата руководителя:


Зарплата инженера - программиста:


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

.4 Расчёт стоимости вспомогательных материалов

Вспомогательные материалы, используемые в данной разработке, включают в себя электронный носитель (Диск CD-R), бумажный носитель и картридж принтера. Данный расчёт приведен в таблице 2.

Таблица 2 - Стоимость вспомогательных материалов

Наименование  материала

Цена за единицу, руб.

Количество, шт.

Сумма, руб.

Диск CD-R

9

1

9

Печать на принтере + бумага

2,5

90

225

Итого (руб.)

234

Транспортно - заготовительные расходы (10% от итоговой суммы)

23,4

Всего (руб.)

257,4

Таким образом, стоимость вспомогательных материалов составляет 257,4 рублей.

.5 Расчёт себестоимости программной разработки

Статьи затрат, в структуре расчета полной себестоимости проекта приведены в таблице 3.

Таблица 3 - Себестоимости проекта

Наименование статей затрат

Сумма, руб.

Примечания

Вспомогательные материалы

257,4

по смете

Эксплуатация специального оборудования

952

по смете

Основная заработная плата

44965

по смете

Отчисления от фонда оплаты труда

11780

26,2% от п.3

Накладные расходы

9217

20,5% от п.3

Прочие прямые расходы

3147,6

7% от п.3

Всего

70319

-


Затрата на разработку проекта составила 70319 рублей. Договорная цена включает в себя полную себестоимость и нормативную прибыль, которая составляет 20% от полной себестоимости. С учетом этого договорная цена составит 84383 руб.

5. Безопасность жизнедеятельности при работе на ЭВМ

.1 Анализ опасных и вредных факторов

При работе за компьютером человек подвергается воздействию опасных и вредных производственных факторов, влияющих на работоспособность и здоровье человека [1] . К этим факторам можно отнести:

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

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

запыленность воздуха;

недостаточная освещенность рабочей зоны;

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

электрический ток, поскольку компьютер является электроустановкой;

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

пожарная опасность.

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

Микроклимат влияет на организм человека, поэтому он изучается и нормируется. Он определяется температурой, скоростью движения и влажностью воздуха, температурой поверхностей, интенсивностью теплового облучения и атмосферным давлением. Влажность и температура воздуха оказывают влияние на терморегуляцию человека, повышенная влажность является неблагоприятным фактором, как при низких температурах, так и в условиях жары. Исследования показали, что высокая температура в сочетании с высокой влажностью воздуха оказывают большое влияние на работоспособность оператора. При таких условиях резко увеличивается время сенсомоторных реакций, нарушается координация движений, увеличивается количество ошибок. Высокая температура отрицательно сказывается и на ряде психологических функций человека. Уменьшается объем запоминаемой информации, резко снижается способность к ассоциациям, ухудшается протекание ассоциативных и счетных операций, понижается внимание.ильный шум вызывает трудности в распознавании цветовых сигналов, снижает быстроту восприятия цвета, остроту зрения, нарушает восприятие визуальной информации, а также снижает способность быстро и точно выполнять координированные движения, что уменьшает на 5-12% производительность труда. Помимо снижения производительности труда, высокие уровни шума приводят к ухудшению слуха и появлению тугоухости.

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

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

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

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

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

.2 Мероприятия по ограничению негативных воздействий

опасных и вредных факторов

Для поддержания здоровья и работоспособности человека в нормальных пределах разработаны СанПиН 2.2.4.548-96, в которых представлены оптимальные и допустимые значения параметров микроклимата.

Для работ с компьютером микроклимат регламентируется санитарно-эпидемиологическими правилами и нормативами СанПиН 2.2.2/2.4.1340-03 следующим образом:

Там где работа на компьютере является основной и связана с нервно-эмоциональным напряжением, должны обеспечиваться оптимальные параметры микроклимата, предусмотренные действующими санитарными нормами производственных помещений (таблица 4). В производственных помещения, где работа на ПЭВМ является вспомогательной, параметры микроклимата должны поддерживаться в соответствии с категорией основных работ. К категории 1a относятся работы, производимые сидя и не требующие физического напряжения, при которых расход энергии составляет до 120 ккал/ч; к категории 1б относятся работы, производимые сидя, стоя или связанные с ходьбой и сопровождающиеся некоторым физическим напряжением, при которых расход энергии составляет от 120 до 150 ккал/ч.

Таблица 4 - Оптимальные нормы микроклимата для помещений с ПЭВМ

Период года

Категория  работ

Температура воздуха,  Со не более

Относительная  влажность  воздуха, %

Скорость движения воздуха, м/с.

Холодный

легкая - 1а

22-24

40-60

0,1


легкая - 1б

21-23

40-60

0,1

Теплый

легкая - 1а

23-25

40-60

0,1


легкая - 1б

22-24

40-60

0,2


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

Санитарно-эпидемиологические правила и нормы СанПиН 2.2.2/2.4.1340-03 регламентируют шум, создаваемый ПЭВМ и шум на рабочем месте. Шум в производственных помещениях, где работа на компьютере является основной или вспомогательной, не должен превышать предельно допустимых уровней, предусмотренных для данных видов работ.

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

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

Для работ с компьютерами содержание вредных веществ в воздухе рабочей зоны помещений регламентируется СанПиН 2.2.2/2.4.1340-03.

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

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

Естественное освещение должно осуществляться через световые проемы, ориентированные преимущественно на север и северо-восток и обеспечивать коэффициент естественной освещенности (КЕО) не ниже 1,2% в зонах с устойчивым снежным покровом и не ниже 1-5% на остальной территории. Указанные значения КЕО нормируются для зданий, расположенных в III световом климатическом поясе. Расчет КЕО для других поясов светового климата проводится по общепринятой методике согласно СНиП «Естественное и искусственное освещение». Расположение рабочих мест с ВДТ и ПЭВМ для пользователей в подвальных помещениях не допускается. В случаях производственной необходимости, эксплуатация ПЭВМ в помещениях без естественного освещения может проводиться только по согласованию с органами и учреждениями Государственного санитарно-эпидемиологического надзора. Искусственное освещение в помещениях эксплуатации ПЭВМ должно осуществляться системой общего равномерного освещения. В производственных и административно-общественных помещениях, в случаях преимущественной работы с документами, допускается применение системы комбинированного освещения (к общему освещению дополнительно устанавливаются светильники местного освещения, предназначенные для освещения зоны расположения документов). Местное освещение не должно создавать бликов на поверхности экрана и увеличивать освещенность экрана более 300 лк. Следует ограничивать прямую блёсткость от источников освещения. При этом яркость светящихся поверхностей (окна, светильники и др.), находящихся в поле зрения, должна быть не более 200 кд/кв.м. Следует ограничивать отраженную блёсткость на рабочих поверхностях (экран, стол, клавиатура и др.) за счет правильного выбора типов светильников и расположения рабочих мест по отношению к источникам естественного и искусственного освещения. При этом яркость бликов на экране ВДТ и ПЭВМ не должна превышать 40 кд/кв.м и яркость потолка, при применении системы отраженного освещения, не должна превышать 200 кд/кв.м. Следует ограничивать неравномерность распределения яркости в поле зрения пользователя ВДТ и ПЭВМ, при этом соотношение яркости между рабочими поверхностями не должно превышать 3:1 - 5:1, а между рабочими поверхностями и поверхностями стен и оборудования 10:1.

В качестве источников света при искусственном освещении должны применяться преимущественно люминесцентные лампы типа ЛБ. При устройстве отраженного освещения в производственных и административно-общественных помещениях допускается применение металлогалогенных ламп мощностью до 250 Вт. Допускается применение ламп накаливания в светильниках местного освещения. Общее освещение следует выполнять в виде сплошных или прерывистых линий светильников, расположенных сбоку от рабочих мест, параллельно линии зрения пользователя при рядном расположении ПЭВМ. При расположении компьютеров по периметру, линии светильников должны располагаться локализовано над рабочим столом ближе к его переднему краю, обращенному к оператору. Яркость светильников общего освещения в зоне углов излучения от 50 до 90 градусов с вертикалью в продольной и поперечной плоскостях должна составлять не более 200 кд/кв. м, защитный угол светильников должен быть не менее 40 градусов.

В России безопасность уровней ионизирующих излучений компьютерных мониторов регламентируется ГОСТ Р50948-96 и нормами НРБ-99. ГОСТ Р50948-96 ограничивает мощность дозы рентгеновского излучения величиной 100 мкР/час на расстоянии 5 см от поверхности экрана монитора, а НРБ-99 устанавливают для населения предел годовой эквивалентной дозы излучений на хрусталик глаза равный 15 мЗв.

Интенсивность энергетических воздействий в рабочем помещении нормируется ГОСТ 12.1.002-84. Электрические и электромагнитные поля, создаваемые компьютером, регламентируются СанПиН 2.2.2/2.4.1340-03. Помимо этого монитор компьютера должен соответствовать стандарту ТСО'99 или, по крайней мере, TCO'92.

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

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

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

Электрооборудование вычислительных центров (ВЦ), в основном, относится к установкам до 1000В, исключение составляют дисплеи, в которых напряжение питания анодов электронно-лучевых трубок составляет несколько киловольт. Чтобы избавиться от опасности поражения электрическим током или хотя бы свести ее к минимуму, необходимы меры предосторожности. С этой целью с будущим работником проводят первичный и вводный инструктаж. Для устранения опасности поражения людей электрическим током при появлении напряжения на конструктивных частях электрооборудования, т. е. при замыкании на корпус используем защитное заземление, действие которого основано на малом сопротивлении заземлителя. Заземление осуществляют с помощью заземляющего устройства, состоящего из заземлителя и заземляющих проводников, согласно ГОСТ 12.1.019-79.

.3 Пожарная безопасность

Пожарная безопасность помещений, имеющих электрические сети, регламентируется ГОСТ 12.1.033-81, ГОСТ 12.1.004-85.

В современных ПЭВМ очень высока плотность размещения элементов электронных схем. В непосредственной близости друг от друга располагаются соединительные провода, коммутационные кабели. При протекании по ним электрического тока выделяется значительное количество теплоты, что может привести к повышению температуры отдельных узлов до 80 - 100 °С. При этом возможно оплавление изоляции соединительных проводов, их оголение и, как следствие, короткое замыкание, которое сопровождается искрением, ведет к недопустимым перегрузкам элементов электронных схем.

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

К причинам неэлектрического характера относятся:

неисправность производственного оборудования и нарушение технологического процесса;

халатное и неосторожное обращение с огнем (курение, оставление без присмотра нагревательных приборов);

неправильное устройство и неисправность вентиляционной системы;

самовоспламенение или самовозгорание веществ.

К причинам электрического характера относятся:

короткое замыкание;

перегрузка проводов;

большое переходное сопротивление;

искрение;

статическое электричество.

В помещении не должно быть легковоспламеняющихся материалов. Оно должно быть оборудовано углекислотными или порошковыми огнетушителями. Они должны быть размещены на видном легкодоступном месте на высоте не более 1,5 м. от пола и на удалении от возможного очага возгорания не далее 20 м., т.к. помещение относится к категории B.

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

На каждом огнетушителе имеется этикетка с указанием его марки, описанием подготовки к работе и приведением его в действие.

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

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

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

.4 Организация рабочего места оператора ЭВМ

При размещении рабочих мест с ПЭВМ расстояние между рабочими столами с мониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора) должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.

Рабочие места с ПЭВМ в помещениях с источниками вредных производственных факторов должны размещаться в изолированных кабинах с организованным воздухообменом. Рабочие места с ПЭВМ при выполнении творческой работы, требующей значительного умственного напряжения или высокой концентрации внимания, рекомендуется изолировать друг от друга перегородками высотой 1,5 - 2,0 м.

Экран видеомонитора должен находиться от глаз пользователя на расстоянии 600 - 700 мм., но не ближе 500 мм. с учетом размеров алфавитно-цифровых знаков и символов. Конструкция рабочего стола должна обеспечивать оптимальное размещение на рабочей поверхности используемого оборудование с учетом его количества и его конструктивных особенностей. При этом допускается использование рабочих столов различных конструкций, отвечающих современным требованиям эргономики. Поверхность рабочего стола должна иметь коэффициент отражения 0,5 - 0,7.

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

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

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

Заключение

В данной работе была разработан аппаратно-программный комплекс контроля параметров в теплице, обладающий следующими техническими и технологическими особенностями:

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

. Использование компьютерное регулирование технологических режимов позволяет применять данную систему в теплицах разной посадочной площадью.

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

. Задание параметров выращивания продукции происходит в ручном режиме и имеет ряд ограничений для исключения ошибочных состояний в процесс работы:

ограничение по длительности светового дня (не более 20 часов);

ограничение по освещенности (не более 3300 люкс, при большей растения могут погибнуть);

ограничение по температурному режиму;

ограничение по влажности.

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

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

Список использованной литературы

Арустамов, Э. А. Безопасность жизнедеятельности: учебник/ Под ред. Э.А. Арустамова. - М.: Данилов и Ко, 2010. - 456 с.

Белов, А. В. Самоучитель по микропроцессорной технике / А.В. Белов - СПб.: Наука и Техника, 2003. - 224 с.

Больски, М. И. Язык программирования СИ. Справочник: Пер с англ./ М.И. Больски.- М.: Радио и связь, 1988. - 96 с.

Бродин, В. Б. Системы на микроконтроллерах и БИС программируемой логики / В. Б. Бродин, А. В. Калинин. - М.: ЭКОМ, 2002. - 235 с.

Бурькова, Е. В. Проектирование микропроцессорных систем: методические указания к курсовому проектированию / Е. В. Бурькова. - Оренбург, ГОУ ОГУ, 2008. - 32 с.

Васильев, В. Н. Электронные промышленные устройства / В. Н. Васильев, Ю. М. Гусев, В. Н. Миронов. - М.: Высшая школа, 1988. - 303 с.

Каган, Б. Н. Основы проектирования микропроцессорных устройств автоматики / Б. Н. Каган, В. В. Сташин - М.: Энергоатомиздат, 1987. - 304 с.

Керниган, Б. В. Язык программирования С / Б. Керниган, Д. М. Ритчи. - Вильямс, 2009. - 304 с

Корнеев, В. В. Современные микропроцессоры / В. В.Корнеев, А. В. Киселев. - М.: Нолидж, 2000. - 320 с.

Новиков, Ю. В. Основы микропроцессорной техники / Ю. В. Новиков, П. К. Скоробогатов. - М.: ИНТУИТ.РУ. «Интернет-Университет Информационных технологий», 2003. - 440 с.

Новиков, Ю. В. Основы цифровой схемотехники. Базовые элементы и схемы. Методы проектирования /Ю. В. Новиков. - М.: Мир 2001.-379 с.

Предко, М. Руководство по микроконтроллерам. Том I / М. Предко. - М.: Постмаркет, 2001. - 416 с.

Предко, М. Руководство по микроконтроллерам. Том II / М. Предко. - М.: Постмаркет, 2001. - 488 с.

Пухальский, Г. И. Проектирование микропроцессорных устройств: учебное пособие для вузов /Г. И. Пухальский.-СПб.: Политехника, 2001. -544 с.

Семейство микроконтроллеров MSP 430. - М.: ЗАО Компелл, 2005. - 544 с.

Семейство микроконтроллеров MSP 430х1хх. Руководство пользователя. - М.: ЗАО Компелл, 2004. - 368 с.

Семёнов, Б. Ю. Микроконтроллеры MSP 430: Первое знакомство / Б. Ю. Семёнов.- М.: Солон-пресс, 2006.- 128 с.Instruments URL: http://www.ti.com (дата обращения: 10.10.2013).

Датчики влажности корпорации Honeywell URL: <http://www.honeywell.com> (дата обращения: 10.02.2014).

Датчик температуры DS18B20 URL: http://www.ibutton.ru/html (дата обращения: 15.02.2014).

Датчик освещенности (солнечной радиации) ОС-100 URL: http://econix.com/catalog/datchiki_osveshchennosti (дата обращения: 05.03.2014).

Датчик влажности почвы 10HS URL: http://labdepot.ru (дата обращения: 19.02.2014).

Научно-производственная фирмы «Фито»: URL: http://www. fito-system.ru (дата обращения: 10.02.2014).

Выращивания огурцов в теплицах: URL: http://www.rostepliza.ru (дата обращения: 05.02.2014).

Приложение А

Программная реализация комплекса

//******************************************************************************

// file main.h

//******************************************************************************

#ifndef MAIN_H

#define MAIN_H

#include <msp430x11x2.h>

#define OSC 8000000 //; генератор 8 Мгц

#define MCLK (OSC) //; тактирование ядра

#define SMCLK (OSC / 8) //; тактирование переферии SMCLK = osc div 8

#define TIMERCLK (SMCLK / 8) //; Таймер тактируется от SMCLK /8

#define TIMERA (TASSEL_2 + ID_3) //; выбранная настройка дпя таймера А

#define TCOMP(x) x * (TIMERCLK / 1000) / 1000 //; интервал для таймера в микросекундах max = 524280

#define mks(x) (((x*1000)/(1000000000/MCLK))/3) //; задержка для циклов в микросекундах

#define enable |=

#define disable &=~

#include "button.h"

#endif

//******************************************************************************

// file main.c

// программа управления инкубатором

//******************************************************************************

#include "main.h"

#include "keyb.h"

#include "ds1820.h"

#include "button.h"

#include "task.h"

#include "PCF8812.h"int regtime = 0;char seconds=0,minutes=0,hours=0;main( void )

{= WDTPW + WDTHOLD; // остановка watchdog таймера

// установка внешнего резонатора 8MHz = XT2OFF + XTS; // внешний резонатор на XT1

unsigned int i;

{disable OFIFG; // очистить флаг ошибки резонатора

for (i = 0xFF; i > 0; i--); // ждем устойчивой работы резонатора

}((IFG1 & OFIFG)); // резонатор работает устойчиво ? = SELM_3 + SELS + DIVS_3; // включить тактирование от XT1, SMCLK = OSC / 8

// WDTCTL = WDT_MDLY_0_064; // watchdog режим интервального таймера 64 mks

// IE1 = WDTIE; // разрешить прерывание WDT

// настройка таймера A0= TIMERA;= TCOMP(500000); // 500 ms= CCIE; // разрешить прерывание таймера А0

// настройка портов в/вDIR = 0xE0; // биты 7,6,5 выход, остальные входSEL = BIT0; // выбрать функцию АЦПOUT = BIT0; // все выходы = 0DIR = 0xFE; // бит 0 вход АЦП, остальные выходCTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // включить АЦП и разрешить прерыванияAE |= BIT0; // P2.0 выбрать вход АЦП

// настройка LCD индикатора _PCF8812();

// установка датчика _DS1820();_DS1820();

state_mode = MODE_INDICATOR;_mode = MENU_TERMO;

__enable_interrupt(); // разрешить прерыванияchar event = 0;(1)

{= GetTask();(event) Dispatch(event);

}

}

#pragma vector = TIMERA1_VECTOR

__interrupt void ISR_TimerA3()

{(TAIV)

{2: ISR_TimerA1();break;4:

{= TAR + TCOMP(500); // сигнал частотой 1кГц

// инвертировать состояние вывода (controller & signal){

controller disable signal;

}else{disable signal;

}

}

}

};

#pragma vector =PORT1_VECTOR

__interrupt void ISR_Port()

{_Port_Key();

};

#pragma vector =TIMERA0_VECTOR

__interrupt void ISR_TimerA0()

{= TACCR0 + TCOMP(500000); // новый временной интервал

TEST_KEY();++;(regtime > 1)// если 1 секунда

{= 0; (period_ind_set > 0){// если изменен режим индикации

period_ind_set--;(period_ind_set < 1){ // если время истекло_mode = MODE_INDICATOR;// вернуться на индикацию_mode = MENU_TERMO; // температуры

}

}(Set_Period_Data){= state_incub;

}else currentState = 0;++;(TASK_TERMO);

if (turnoff > 0){// если включен переворачиватель-;(turnoff < 1){// выключить если время истекло

controller disable turnings;

}

}(seconds > 59)

{= 0;(TASK_WATER);++;(minutes > 59)

{(TASK_TURN);= 0;++;(hours > 23)

{= 0;(TASK_PERIOD);

}

}

}

}

}

// ADC10 interrupt service routine

#pragma vector=ADC10_VECTOR

__interrupt void ADC10_ISR (void)

{

_BIC_SR_IRQ(CPUOFF); // Clear CPUOFF bit from 0(SR)

}

//******************************************************************************

// file ds1820.h

//******************************************************************************

#ifndef DS1820_H

#define DS1820_Hunsigned int Cur_Termo_Data;char digit_1; char digit_2; char digit_3; int PData;void Rout_DS1820();void Delay_R15();void RightShift();void OutFormat1820();

#endif

;*******************************************************************************

; file ds1820.s43

; фрагмент чтения DS1820 по 1-wire взят из примеров применения от TI

; используется только диапазон 0 - 85C DS1820

;*******************************************************************************

#include "main.h"

;VariablesDS1820digit_1digit_2digit_3PDataCur_Termo_Data

;FunctionsRout_DS1820Delay_R15RightShiftOutFormat1820

; CPU registers used

#define DATA1W R4 //; в R4 данные считанные из DS1820

#define BIT1W R5 //; счетчик циклов

#define TEMPRG R5 //; регистр временного хранения

#define PDIR P2DIR

#define PIN P2IN

#define POUT P2OUT

; Definitions for 1-wire busEQU 0x01 //; Bit controls DQ line (pull-up)

;DATA16_N_Termo_Data DS 2 //; копия текущей температуры

PData DS 2_1 DS 2_2 DS 2

digit_1 DS 1 //; десятки градусов_2 DS 1 //; единицы градусов_3 DS 1 //; десятые доли градусов_even DS 1 //; пустой байт дополнение до слова

RSEG CODE

;------------------------------------------------------------------------------

; Program Start

;------------------------------------------------------------------------------_DS1820:

// на время обмена информацией по 1-wire запретить все прерывания

dintR4R5R15

; #Reset_1W ; DS1820 Reset.b #0CCh,DATA1W ; DS1820 command to skip ROM#Write_1W ;.b #044h,DATA1W ; DS1820 comand to convert temp#Write_1W ;#Reset_1W ; DS1820 Reset.b #0CCh,DATA1W ; DS1820 command to skip ROM#Write_1W ;.b #0BEh,DATA1W ; DS1820 command to read scratchpad#Write_1W ;#Read_1W ; DS1820 LSB read.w DATA1W ; TOS = 00|LSB#Read_1W ; DS1820 LSB readDATA1W ; DATA1W = MSB|00.w @SP+,DATA1W ; DATA1W = MSB|LSB.w DATA1W,&Cur_Termo_Data

pop R15R5R4

;

ret

;------------------------------------------------------------------------------_1W; Subroutine to Reset 1-wire device and detect presence

;------------------------------------------------------------------------------.b #DQ,&PDIR ;#mks(720),R15 ; ~ 720us delay#Delay_R15 ;.b #DQ,&PDIR ;#Delay_60us ; ~ 60us delay subroutinebit.b #DQ,&PIN ; Check for presenceRxx ;

;#mks(480),R15 ; ~ 480us Delay#Delay_R15 ;;

;------------------------------------------------------------------------------_1W; enter DATA1W = 00 - FF 1-wire data to write

; BIT1W = xx

;------------------------------------------------------------------------------.w #08h,BIT1W ;_1W_Bit rrc.b DATA1W ;TX_1W_1 ;_1W_0 bis.b #DQ,&PDIR ;#Delay_60us ; ~ 60us delay subroutine.b #DQ,&PDIR ;TX_1W_x ;_1W_1 bis.b #DQ,&PDIR ;.b #DQ,&PDIR ;#Delay_60us ; ~ 60us delay subroutine_1W_x dec.w BIT1W ;TX_1W_Bit ;;

;------------------------------------------------------------------------------_1W; enter DATA1W = xx

; BIT1W = xx

; exit DATA1W = 00 - FF 1-wire data read

; BIT1W = xx

;------------------------------------------------------------------------------.w #08h,BIT1W ;_1W_Bit bis.b #DQ,&PDIR ;.b #DQ,&PDIR ;;;.b #DQ,&PIN ;.b DATA1W ;#Delay_60us ; ~ 60us delay subroutine.w BIT1W ;RX_1W_Bit ;;

;

;------------------------------------------------------------------------------_60us mov.w #mks(60),R15

;------------------------------------------------------------------------------_R15 dec.w R15 ;Delay_R15 ;;:TEMPRGTEMPRGTEMPRG

rra TEMPRG:

// перевод дробной части из веса разрядов в десятичные показания

mov &PData,DATA1WDATA1W,&TmpByte_1DATA1W,TEMPRG#0x000F,&TmpByte_1

call #RightShiftTEMPRG,&TmpByte_2#0x00FF,&TmpByte_2#0,TEMPRG: .b &TmpByte_1bit2#0x0625,TEMPRG:.b &TmpByte_1bit3#0x1250,TEMPRG:.b &TmpByte_1bit4#0x2500,TEMPRG:.b &TmpByte_1endbit#0x5000,TEMPRG:TEMPRG#RightShift#0x000F,TEMPRG.b TEMPRG,&digit_3.b &TmpByte_2,&TmpByte_1

mov #0,TEMPRG:

// представление показания целой части в десятичном виде

clrc#0x10,TEMPRG#10,&TmpByte_1HexToDec#10,&TmpByte_1#0x10,TEMPRG.b &TmpByte_1,TEMPRG: TEMPRG#0x0F,TEMPRG.b TEMPRG,&digit_2TEMPRG#RightShift#0x000F,TEMPRG.b TEMPRG,&digit_1

//******************************************************************************

// file pcf8812.h

//******************************************************************************

#ifndef PCF8812_H

#define PCF8812_H

void SPI_OUT_LCD(unsigned char Data);void Init_PCF8812(void);void Str_Menu(unsigned int param);

#endif

//*****************************************************************************

// file pcf8812.c

// Подпрограммы вывода информации

// на графический LCD индикатор с контроппером PCF8812

//*****************************************************************************

#include "main.h"

#include "font_r.h"

#include <stdint.h>

#include <string.h>

#include "DS1820.h"

// объявление функцийSPI_OUT_LCD(unsigned char Data);Init_PCF8812(void);SetXYLCD(void);ClearLCD(void);

// макросы модуля LCD

#define LCDSCLK BIT5

#define LCDSDA BIT6

#define LCDDC BIT7

#define PORTLCD P1OUT

#define set(x) PORTLCD disable x

#define res(x) PORTLCD enable x

// переменные модуля LCDchar axis_X;char axis_Y;

// вывод одного байта через программный SPI интерфейс

void SPI_OUT_LCD(unsigned char Data)

{char i;disable LCDSCLK;(i=8; i >= 1; i--)

{disable LCDSDA; (Data & 0x80)

{enable LCDSDA;

} = Data<<1;enable LCDSCLK;disable LCDSCLK;

}

}

// коды инициализации контроллера LCD (PCF8812)unsigned char InitCode[]= {0x21,0x80,0x09,0x15,0x07,0x20,0x0C,0x11};

// инициализация контроллера LCDInit_PCF8812(void)

{i;(i = 0 ;i < 8; i++)

{(LCDDC);_OUT_LCD(InitCode[i]);(LCDDC);

}();

}

// установка позиции SetXYLCD(void)

{(LCDDC);_OUT_LCD(axis_X | BIT7);_OUT_LCD(axis_Y | BIT6);(LCDDC);

}

// очистка индикатораClearLCD(void)

{int i;_X = 0;_Y = 0;();(i = 917; i > 0; i--)

{_OUT_LCD(0x00);

}();

}

// вывод матрицы символов 6x8 в формате 6x16

void GraphSymb(unsigned char symb)

{char sty,i,j,s;char copy_axis_y;

uint16_t move;= ((symb - 0xC0)*6);// русские буквы начинаются с кода 192,а в таблице с 0

for (i=0;i<6;i++)

{= Table_Symb[symb+i];(j=8;j>0;j--)

{((sty & 0x80)== 0)

{= move << 2;&=~0x03;

}

{= move << 2;|= 0x03;

}= sty << 1;

}_axis_y = axis_Y;(j=2;j>0;j--)

{= move & 0x00FF;_OUT_LCD(s);_Y++;();= move >> 8;

}_Y = copy_axis_y;_X = axis_X + 1;();

}

}

//

// вывод матрицы символов 5x8 в формате 15x32

void GraphDigit(unsigned char digit)

{char sty,i,j,s;char copy_axis_y;_t move;*= 5;(i=0;i<5;i++)

{= Table_Digit[digit+i];(j=8;j>0;j--)

{((sty & 0x80)== 0)

{= move << 4;&=~0x0F;

}

{= move << 4;|= 0x0F;

}= sty << 1;

}_axis_y = axis_Y;(j=4;j>0;j--)

{= move & 0x000000FF;_OUT_LCD(s);_OUT_LCD(s);_OUT_LCD(s); _Y++;();= move >> 8;

}_Y = copy_axis_y;

axis_X = axis_X + 3;();

}

}

// вывод строки-указателя режимов

//

void StrText(char const* text)

{j;(state_mode)

{MODE_INDICATOR:();= (96 - (strlen(text)*8))/2;// выравнивание строки по-центру_X = j;_Y = 5;();(j = 0; text[j] != 0;j++)

{(text[j]);

} ;MODE_SETUP:();_X = 0;_Y = 5;();(j = 0;j < 192;j++)

{_OUT_LCD(0xFF);

}= (96 - (strlen(text)*8))/2;// выравнивание строки по-центру_X = j;_Y = 5;();(j = 0; text[j] != 0;j++)

{(text[j]);

} ;

}

}Str_Menu(unsigned int param)

{(menu_mode)

{MENU_TERMO:// индикация температуры

{("ТЕМПЕРАТУРА");= param;(); _X = 0;_Y = 0;();(digit_1);_X = 20;();(digit_2);_X = 43;();(digit_3);_X = 37;();_OUT_LCD(0xFF);_OUT_LCD(0xFF);_OUT_LCD(0xFF);_X = 62;();(0x12);_X = 80;();(0x0C);

}MENU_WATER:// индикация влажности

{("ВЛАЖНОСТЬ");_X = 20;_Y = 0;();(digit_1);_X = 43;();(digit_2);_X = 62;();(0x12);_X = 80;();(0x0C);

}MENU_TURN:// индикация времени переворота

{("ПЕРЕВОРОТ");_X = 20;_Y = 0;();(digit_1);_X = 43;();(digit_2);_X = 62;();(0x12);_X = 80;();(0x0C);

} MENU_PERIOD:// индикация текущих суток инкубации

{("ИНКУБАЦИЯ");_X = 20;_Y = 0;();(digit_1);_X = 43;();(digit_2);_X = 62;();(0x12);_X = 80;();(0x0C);

}

}

}

//******************************************************************************

// file font_r.h

//******************************************************************************

//

// матрица символов 6x8, буквы русского алфавита

//unsigned char Table_Symb[] =

{

// 0xc0 - 'А'.

x00, 0x7e, 0x11, 0x11, 0x11, 0x7e,// А

x00, 0x7f, 0x49, 0x49, 0x49, 0x31,// Б

x00, 0x7f, 0x49, 0x49, 0x49, 0x36,// В

x00, 0x7f, 0x01, 0x01, 0x01, 0x01,// Г

xc0, 0x7e, 0x41, 0x41, 0x7f, 0xc0,// Д

x00, 0x7f, 0x49, 0x49, 0x49, 0x41,// Е

x00, 0x77, 0x08, 0x7f, 0x08, 0x77,// Ж

x22, 0x49, 0x49, 0x49, 0x36, 0x00,// З

x00, 0x7f, 0x20, 0x10, 0x08, 0x7f,// И

x00, 0x7e, 0x21, 0x11, 0x09, 0x7e,// Й

x00, 0x7f, 0x08, 0x14, 0x22, 0x41,// К

0x00, 0x40, 0x7e, 0x01, 0x01, 0x7f,// Л

x00, 0x7f, 0x02, 0x04, 0x02, 0x7f,// М

0x00, 0x7f, 0x08, 0x08, 0x08, 0x7f,// Н

x00, 0x3e, 0x41, 0x41, 0x41, 0x3e,// О

0x00, 0x7f, 0x01, 0x01, 0x01, 0x7f,// П

x00, 0x7f, 0x09, 0x09, 0x09, 0x06,// Р

0x00, 0x3e, 0x41, 0x41, 0x41, 0x22,// С

x00, 0x01, 0x01, 0x7f, 0x01, 0x01,// Т

x00, 0x27, 0x48, 0x48, 0x48, 0x3f,// У

x00, 0x0e, 0x11, 0x7f, 0x11, 0x0e,// Ф

x00, 0x63, 0x14, 0x08, 0x14, 0x63,// Х

x00, 0x7f, 0x40, 0x40, 0x7f, 0xc0,// Ц

0x00, 0x07, 0x08, 0x08, 0x08, 0x7f,// Ч

x00, 0x7f, 0x40, 0x7f, 0x40, 0x7f,// Ш

x00, 0x7f, 0x40, 0x7f, 0x40, 0xff,// Щ

x03, 0x01, 0x7f, 0x48, 0x48, 0x30,// Ъ

x00, 0x7f, 0x48, 0x48, 0x30, 0x7f,// Ы

x00, 0x7f, 0x48, 0x48, 0x48, 0x30,// Ь

x00, 0x22, 0x41, 0x49, 0x49, 0x3e,// Э

0x00, 0x7f, 0x08, 0x3e, 0x41, 0x3e,// Ю

x00, 0x66, 0x19, 0x09, 0x09, 0x7f,// Я

};

//

// матрица символов 5x8 цифры и спецзнаки

//unsigned char Table_Digit[]=

{

x3E, 0x51, 0x49, 0x45, 0x3E, // 0

x00, 0x42, 0x7F, 0x40, 0x00, // 1

x42, 0x61, 0x51, 0x49, 0x46, // 2

x21, 0x41, 0x45, 0x4B, 0x31, // 3

0x18, 0x14, 0x12, 0x7F, 0x10, // 4

0x27, 0x45, 0x45, 0x45, 0x39, // 5

x3C, 0x4A, 0x49, 0x49, 0x30, // 6

x01, 0x71, 0x09, 0x05, 0x03, // 7

x36, 0x49, 0x49, 0x49, 0x36, // 8

x06, 0x49, 0x49, 0x29, 0x1E, // 9

x7E, 0x11, 0x11, 0x11, 0x7E, // A

x7F, 0x49, 0x49, 0x49, 0x36, // B

x3E, 0x41, 0x41, 0x41, 0x22, // C

x7F, 0x41, 0x41, 0x22, 0x1C, // D

x7F, 0x49, 0x49, 0x49, 0x41, // E

x7F, 0x09, 0x09, 0x09, 0x01, // F

x3E, 0x41, 0x49, 0x49, 0x7A, // G

0x7F, 0x08, 0x08, 0x08, 0x7F, // H

x06, 0x09, 0x09, 0x09, 0x06, // градус

x00, 0x36, 0x36, 0x00, 0x00, // :

xC0, 0x00, 0x00, 0x00, 0x00, // .

0x30, 0x48, 0x48, 0x48, 0x30, // o

x00

};

//******************************************************************************

// file keyb.h

//******************************************************************************

#ifndef KEYB_H

#define KEYB_Hunsigned char KEYCODE;void TEST_KEY();void ISR_TimerA1();void ISR_Port_Key();

#endif

;*******************************************************************************

; file keyb.s43

; обслуживание матричной клавиатуры с антидребезгом

;*******************************************************************************

#include "main.h"

;VariablesKEYBOARDKEYBUFKEYCODE

;FunctionsTEST_KEYISR_TimerA1ISR_Port_KeyDATA16_IDS 1DS 1

; матрица кнопок клавиатуры

#define MV_0 BIT6

#define MV_1 BIT7

#define PORTMV P1OUT

#define MH_0 BIT3

#define MH_1 BIT4

#define PORTMH P1IN

#define INTKEYSIGNAL P1IE

#define INTKEYFLAGS P1IFGCODE ; расположить в 'CODE' сегменте

//;------------------------------------------------------------------------------

// установить на линиях столбцов матрицы низкий уровень

// и разрешить прерывания от строк матрицы _KEY:.b &PORTMV,R4 ; сохранить состояние порта R4 ; .b #MV_1+MV_0,&PORTMV ; низкий уровень на столбцы матрицы.b #MH_1+MH_0,&INTKEYSIGNAL ; разрешить прерывания для строк матрицы;.b R4,&PORTMV ; восстановить состояние порта

; _TimerA1:

// окончание задержки антидребезга контактов

// проверить нажатые клавиши.w #CCIE,&TACCTL1 ; запретить прерывания TimerA1R4.b &PORTMV,R4 ; сохранить состояние порта

push R4.b #MV_0,&PORTMV ;

bic.b #MV_1,&PORTMV ; установить один активный столбец.b #MH_1+MH_0,&PORTMH ; проверить все строкиPress_Left_and_Right_key ; ошибка если нажаты две клавиши.b #MH_1,&PORTMH ; проверить одну строкуPress_Right_key ; переход если нажата клавиша.b #MH_0,&PORTMH ; проверить следующуюPress_Left_key ; переход если нажата клавиша.b #MV_0,&PORTMV ; поменять активный столбец.b #MV_1,&PORTMV ; .b #MH_1,&PORTMH ; проверить строкуPress_Enter_key ; переход если нажата клавиша

Press_Left_and_Right_key .b #0x00,&KEYCODE ; код клавиши в буферTimerEndKey_Right_key.b #0x01,&KEYCODE ;TimerEndKey_Left_key.b #0x02,&KEYCODE ;TimerEndKey_Enter_key.b #0x03,&KEYCODE ;

TimerEndKeyR4.b R4,&PORTMV ; восстановит состояние порта

pop R4

;_Port_Key:

// прерывание вызвано нажатыми клавишами

// запрограммировать таймер задержки

// и проверить состояние клавиш в прерывании таймераR4.b #MH_1+MH_0,&INTKEYSIGNAL ; запрет прерываний от строк матрицы&TAR,R4 ; текущее значение таймера.w #TCOMP(50000),R4 ; добавить время на дребезг контактовR4,TACCR1 ; в регистр сравнения новый интервал R4 ;.b #MH_1+MH_0,&INTKEYFLAGS ; сбросить флаги запроса.w #CCIE,&TACCTL1 ; разрешить прерывание от таймера

ret

//******************************************************************************

// file button.h

//******************************************************************************

#ifndef BUTTON_H

#define BUTTON_H

#define MODE_INDICATOR 1

#define MODE_SETUP 2

#define MENU_TERMO 0

#define MENU_WATER 1

#define MENU_TURN 2

#define MENU_PERIOD 3unsigned char state_mode;unsigned char menu_mode;unsigned int Set_Termo_Data;unsigned int Set_Water_Data;unsigned int Set_Turn_Data;unsigned int Set_Period_Data;unsigned int copy_param;unsigned int period_ind_set;unsigned int Cur_Turn_Data;unsigned int Cur_Period_Data;unsigned int Cur_Water_Data;

#endif

//******************************************************************************

// file button.c

// процедуры управления с клавиатуры

//******************************************************************************

#include "main.h"

#include "PCF8812.h"

#include "DS1820.h"

// таблицы кода веса разрядов

// в десятичном приближенииunsigned char Tab_Code_Dec[]=

{0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};unsigned char Tab_Dec_Code[]=

{0x00,0x02,0x03,0x05,0x07,0x08,0x0A,0x0B,0x0D,0x0E};char state_mode;char menu_mode;int Set_Termo_Data= 0x140;int Set_Water_Data=50;int Set_Turn_Data=0;int Set_Period_Data=0;int copy_param;int period_ind_set;int Cur_Turn_Data = 0;int Cur_Period_Data = 0;int Cur_Water_Data = 0;Button_Enter(void)

{_ind_set = 30;(state_mode)

{MODE_INDICATOR:_mode = MODE_SETUP;(menu_mode)

{MENU_TERMO:_param = Set_Termo_Data;_Menu(Set_Termo_Data); // вывести на индикатор;MENU_WATER:_param = Set_Water_Data;_Menu(Set_Water_Data); // вывести на индикатор;MENU_TURN:_param = Set_Turn_Data;

Str_Menu(copy_param << 4); // вывести на индикатор

break;MENU_PERIOD:_param = Set_Period_Data;

Str_Menu(copy_param << 4); // вывести на индикатор

break;

};MODE_SETUP:_mode = MODE_INDICATOR;(menu_mode)

{MENU_TERMO:_Termo_Data = copy_param;_Menu(Cur_Termo_Data);// вывести на индикатор;MENU_WATER:_Water_Data = copy_param;_Menu(Cur_Water_Data);// вывести на индикатор;MENU_TURN:_Turn_Data = copy_param;_Turn_Data = Set_Turn_Data;

Str_Menu(copy_param << 4); // вывести на индикатор

break;MENU_PERIOD:_Period_Data = copy_param;_Period_Data = 0;_Menu(copy_param << 4); // вывести на индикатор;

};

}

}Button_Left(void)

{int data;_ind_set = 30;(state_mode)

{MODE_INDICATOR:_mode--;_mode &= 0x03;(menu_mode)

{MENU_TERMO:_Menu(Cur_Termo_Data); // вывести на индикатор;MENU_WATER:_Menu(Cur_Water_Data); // вывести на индикатор;MENU_TURN:_Menu(Set_Turn_Data << 4); // вывести на индикатор;MENU_PERIOD:_Menu(Set_Period_Data << 4); // вывести на индикатор;

};

MODE_SETUP:(menu_mode)

{MENU_TERMO:= copy_param >> 4;++;(data > 38) data = 20;_param = (copy_param && 0x000F) + (data << 4);

Str_Menu(copy_param); // вывести на индикатор

break;MENU_WATER:= copy_param;(data >= 5) data = data - 5;(data < 5) data = 0;_param = data;_Menu(copy_param << 4); // вывести на индикатор;MENU_TURN:= copy_param;(data >=2) data = data - 2;(data < 2) data = 0;_param = data;_Menu(copy_param << 4); // вывести на индикатор;MENU_PERIOD:= copy_param;(data >= 1) data = data - 1;(data < 1) data = 0;_param = data;_Menu(copy_param << 4); // вывести на индикатор;

};

}

}Button_Right(void)

{char data;_ind_set = 30;(state_mode)

{MODE_INDICATOR:_mode++;_mode &= 0x03;(menu_mode)

{MENU_TERMO:_Menu(Cur_Termo_Data); // вывести на индикатор;MENU_WATER:;MENU_TURN:_Menu(Set_Turn_Data << 4); // вывести на индикатор;MENU_PERIOD:_Menu(Set_Period_Data << 4); // вывести на индикатор;

};MODE_SETUP:(menu_mode)

{MENU_TERMO:= copy_param & 0x00F;= Tab_Code_Dec[data]; ++;(data > 9) data = 0;= Tab_Dec_Code[data];_param = (copy_param && 0x0FF0) + data;

Str_Menu(copy_param); // вывести на индикатор

break;MENU_WATER:= copy_param;= data + 5;(data >= 100){= 100;

Str_Menu(99 << 4); // вывести на индикатор

}else{_Menu(data << 4); // вывести на индикатор

}_param = data;;MENU_TURN:= copy_param;(data > 22) data = 22;_param = data;_Menu(copy_param << 4); // вывести на индикатор;MENU_PERIOD:= copy_param;(data > 22) data = 22;_param = data;

Str_Menu(copy_param << 4); // вывести на индикатор

break;

};

}

}

//******************************************************************************

// file task.h

//******************************************************************************

#ifndef TASK_H

#define TASK_H

//коды событий

#define TASK_NULL 0

#define TASK_TERMO 1

#define TASK_WATER 2

#define TASK_TURN 3

#define TASK_PERIOD 4

#define state_incub 1

#define NULL (void *)0

#define SIZE_BUF 16 //вместимость буфера/очереди событий

extern unsigned char currentState;void TaskInit(void); //инициализацияunsigned char GetTask(void); //взять код события void PlaceTask(unsigned char event); //разместить событиеvoid Dispatch(unsigned char event); //вызов диспетчераunsigned int turnoff;

#define termooff BIT1

#define termodir BIT2

#define vaporizer BIT3

#define turnings BIT4

#define signal BIT5

#define controller P2OUT

#endif

//******************************************************************************

// file task.c

// процедуры управления кольцевым буфером

// дитспетчер задач и облуживаемые им подпрограммы

//******************************************************************************

#include "task.h"

#include "main.h"

#include "DS1820.h"

#include "PCF8812.h"Termostat(void);Moisture(void);Turning(void);Period(void);StopTask(void);Setsignal(void);Stopsignal(void);

//кольцевой буферvolatile unsigned char cycleBuf[SIZE_BUF];volatile unsigned char tailBuf = 0;volatile unsigned char headBuf = 0;volatile unsigned char countBuf = 0;char GetTask(void)

{char event;

if (countBuf > 0){ //если приемный буфер не пустой = cycleBuf[headBuf]; //считать из него событие -; //уменьшить счетчик ++; //инкрементировать индекс головы буфера

if (headBuf == SIZE_BUF) headBuf = 0;event; //вернуть событие

}0;

}PlaceTask(unsigned char event)

{ (countBuf < SIZE_BUF){ //если в буфере еще есть место [tailBuf] = event; //кинуть событие в буфер++; //увеличить индекс хвоста буфера (tailBuf == SIZE_BUF) tailBuf = 0;

countBuf++; //увеличить счетчик

}

{char state; // состояниеchar event; // событие(*pStateFunc)(void);

};TaskInit(void)

{= 0;= 0;= 0;= 0;

}EmptyFunc(void)

{

}struct ROW_TABLE table[] = {

// STATE EVENT STATE_FUNC

{state_incub, TASK_TERMO, Termostat},

{state_incub, TASK_WATER, Moisture},

{state_incub, TASK_TURN, Turning},

{state_incub, TASK_PERIOD, Period},

{ 0 , TASK_TERMO, StopTask},

{ 0 , 0 , EmptyFunc}

};

Dispatch(unsigned char currentEvent)

{char i;(i=0; table[i].state; i++){(table[i].state == currentState && table[i].event == currentEvent){[i].pStateFunc();;

}

}

}int TermRead(void)

{_DS1820(); // получить данные от датчика(state_mode == MODE_INDICATOR){// если в режиме текущих показаний (menu_mode == MENU_TERMO){// температуры ,_Menu(Cur_Termo_Data);// вывести на индикатор

}

}(Cur_Termo_Data);// вернуть текущие данные для обработки

}Termostat(void)

{int temp = TermRead();

if (temp < (Set_Termo_Data - 0x008)){// сигнализировать если меньше на 0,5

Setsignal();

}else Stopsignal();(temp > (Set_Termo_Data + 0x008)){// сигнализировать если больше на 0,5();

}else Stopsignal();(temp < Set_Termo_Data){ // если меньше заданнойenable (termodir + termooff);// включить модуль на нагрев

}else{ // если не меньше

if (temp > Set_Termo_Data){ // если больше заданнойdisable termodir; // направление на охлаждениеenable termooff; // включить модуль

}else{ // если равна заданнойdisable (termodir + termooff);// если равна выключить

}

}

}Moisture(void)

{long Temp;

ADC10CTL0 |= ENC + ADC10SC; // старт выборки и преобразования

_BIS_SR(CPUOFF + GIE); // ожидание окончания преобразования= ADC10MEM;= (Temp * 100) / 0x3FF; // измеренное значение в процентах

Cur_Water_Data = Temp & 0x00FF;(Set_Water_Data >= 5){(Cur_Water_Data < Set_Water_Data - 4){// сигнал();

}else Stopsignal();(Cur_Water_Data > Set_Water_Data + 4){// сигнал();

}else Stopsignal();(Cur_Water_Data < Set_Water_Data){// если влажность малаenable vaporizer; // включить испаритель

}else{ // если велика disable vaporizer; // выключить

}

}

}int turnoff;Turning(void)

{(Cur_Turn_Data > 0){ // если установлен интервал_Turn_Data--; // уменьшить(Cur_Turn_Data == 0){ // если время вышло_Turn_Data = Set_Turn_Data;// востановить интервал

controller enable turnings; // включить двигатель= 5; // время включенного состояния

}

}

}Period(void)

{_Period_Data++; // увеличить текущий день

if (Cur_Period_Data > Set_Period_Data){// если период инкубации окончен

Set_Period_Data = 0; // сбросить установку=0; // выключить активный режим

}

}StopTask(void)

{disable (turnings+vaporizer+termooff);// все исполнительные устройства выключитьint Temp = TermRead();// индикация текущей температуры

}Setsignal(void)

{= TAR + TCOMP(500);

TACCTL2 |= CCIE; // разрешить прерывание таймера А2

}Stopsignal(void)

{&= ~CCIE; // запретить прерывание таймера А2 disable signal;

}

Похожие работы на - Аппаратно-программный комплекс контроля параметров в теплице

 

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